千家信息网

Python怎么实现在Excel文件中写入图表

发表于:2024-11-19 作者:千家信息网编辑
千家信息网最后更新 2024年11月19日,这篇"Python怎么实现在Excel文件中写入图表"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一
千家信息网最后更新 2024年11月19日Python怎么实现在Excel文件中写入图表

这篇"Python怎么实现在Excel文件中写入图表"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"Python怎么实现在Excel文件中写入图表"文章吧。

先来看一下所需要的几个函数(这些函数都是通过工作簿执行出来的)。

函数名说明参数
add_chart()创建图表对象{type:样式}
add_series()定义需要展示的数据字典
set_title()定义图表title字符串

add_series 参数

参数说明
categories展示的标题=Sheet1!$A$1:$A$4
Shert1:工作簿名称
$A1 : 1:1:A$4 表示从第A行的第一个值到第四个值去展示标题
values展示的数据=Sheet1!$B1 : 1:1:B$4
Shert1:工作簿名称
$B1 : 1:1:B$4 表示从第A行的第一个值到第四个值去展示标题
name表名

$A$1:$A$4 表示从第A行的第一个值到第四个值去展示标题

图表的样式

样式名说明
area区域样式表
bar条形样式表
column柱状样式表
line线条样式表
pie饼图样式表
doughnut圆环样式表
scatter散点样式表
stock库存样式表
rader雷达样式表

结合 study.xlsx 文件 将学生成绩以表图形式展示

这里继续使用上一章节的 "将项目中的 study.xlsx 文件的内容写入 write.xlsx" 的案例;

代码示例如下:

# coding:utf-8import xlsxwriterimport xlrd# excel = xlsxwriter.Workbook('write.xlsx')       # 初始化 excel 对象# book = excel.add_worksheet('study')             # 添加工作簿## title = ['姓名', '性别', '年龄', '成绩', '等级']   # 定义 write.xlsx 的首行内容## for index, data in enumerate(title):        # for循环 利用枚举函数将 title 的内容写入 "write.xlsx" 的首行#     book.write(0, index, data)# excel.close()def read():             # 定义一个 read 函数读取 "study.xlsx" 文件    result = []    excel = xlrd.open_workbook('study.xlsx')    book = excel.sheet_by_name('学生手册')    for i in book.get_rows():        content = []        for j in i:            content.append(j.value)        result.append(content)    return resultdef write(content):     # 定义一个 write 函数 将读取到 "study.xlsx" 的内容写入到 "write.xlsx" 文件    excel = xlsxwriter.Workbook('write.xlsx')    book = excel.add_worksheet('study')    for index, data in enumerate(content):        print(data)        for sub_index, sub_data in enumerate(data):            # print(sub_index, sub_data)            book.write(index, sub_index, sub_data)    book1 = excel.add_worksheet('学生等级')     # 定义 "学生等级" 工作簿    data = [                                   # 定义 data 列表 用以存放学生成绩所处等级与数量        ['优秀', '良好', '中', '差'],        [15, 25, 55, 5]    ]    book1.write_column('A1', data[0])       # write_column() 函数,按行添加(即 A1 行添加 data 列表的 0 索引的内容)    book1.write_column('B1', data[1])    chart = excel.add_chart({'type': 'column'})     # 定义图表样式为 柱状样式表    chart.add_series({                              # 添加需要展示的数据        'categories': '=学生等级!$A1:$A4',        'values': '=学生等级!$B1:$B4',        'name': '成绩占比'    })    chart.set_title({'name': '成绩占比图表'})         # 定义图表title    book1.insert_chart('A10', chart)                # 将 chart 放在 excel 表格对应工作簿的 A10 位置    excel.close()if __name__ == '__main__':    result = read()    write(result)

运行结果如下:

拓展:再试试饼状图与条形样式图

代码示例如下:

# coding:utf-8import xlsxwriterimport xlrd# excel = xlsxwriter.Workbook('write.xlsx')       # 初始化 excel 对象# book = excel.add_worksheet('study')             # 添加工作簿## title = ['姓名', '性别', '年龄', '成绩', '等级']   # 定义 write.xlsx 的首行内容## for index, data in enumerate(title):        # for循环 利用枚举函数将 title 的内容写入 "write.xlsx" 的首行#     book.write(0, index, data)# excel.close()def read():             # 定义一个 read 函数读取 "study.xlsx" 文件    result = []    excel = xlrd.open_workbook('study.xlsx')    book = excel.sheet_by_name('学生手册')    for i in book.get_rows():        content = []        for j in i:            content.append(j.value)        result.append(content)    return resultdef write(content):     # 定义一个 write 函数 将读取到 "study.xlsx" 的内容写入到 "write.xlsx" 文件    excel = xlsxwriter.Workbook('write.xlsx')    book = excel.add_worksheet('study')    for index, data in enumerate(content):        print(data)        for sub_index, sub_data in enumerate(data):            # print(sub_index, sub_data)            book.write(index, sub_index, sub_data)    book1 = excel.add_worksheet('学生等级')     # 定义 "学生等级" 工作簿    data = [                                   # 定义 data 列表 用以存放学生成绩所处等级与数量        ['优秀', '良好', '中', '差'],        [15, 25, 55, 5]    ]    book1.write_column('A1', data[0])       # write_column() 函数,按行添加(即 A1 行添加 data 列表的 0 索引的内容)    book1.write_column('B1', data[1])    chart = excel.add_chart({'type': 'column'})     # 定义图表样式为 柱状样式表    chart.add_series({                              # 添加需要展示的数据        'categories': '=学生等级!$A1:$A4',        'values': '=学生等级!$B1:$B4',        'name': '成绩占比'    })    chart.set_title({'name': '成绩占比图表'})         # 定义图表title    book1.insert_chart('A10', chart)                # 将 chart 放在 excel 表格对应工作簿的 A10 位置    chart = excel.add_chart({'type': 'bar'})    chart.add_series({        'categories': '=学生等级!$A1:$A4',        'values': '=学生等级!$B1:$B4',        'name': '成绩占比'    })    chart.set_title({'name': '成绩占比图表'})    book1.insert_chart('A25', chart)    chart = excel.add_chart({'type': 'pie'})    chart.add_series({        'categories': '=学生等级!$A1:$A4',        'values': '=学生等级!$B1:$B4',        'name': '成绩占比'    })    chart.set_title({'name': '成绩占比图表'})    book1.insert_chart('A40', chart)    excel.close()if __name__ == '__main__':    result = read()    write(result)

运行结果如下:

以上就是关于"Python怎么实现在Excel文件中写入图表"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

0