您现在的位置是:网站首页> 编程资料编程资料
Python实现在Excel文件中写入图表_python_
2023-05-26
484人已围观
简介 Python实现在Excel文件中写入图表_python_
学习完如何生成一个 excel 文件之后,接下来我们继续学习一下如何在 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-8 import xlsxwriter import 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 result def 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-8 import xlsxwriter import 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 result def 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文件中写入图表的详细内容,更多关于Python Excel写入图表的资料请关注其它相关文章!
您可能感兴趣的文章:
相关内容
- python学习之列表的运用_python_
- python中文文本切词Kmeans聚类_python_
- Python自动化办公之创建PPT文件_python_
- Python函数值传递引用传递及形式参数和实际参数的区别_python_
- Python中else怎么用?else的用法总结_python_
- python引入requests报错could not be resolved解决方案_python_
- Python枚举类定义和使用方法_python_
- 如何在python中用os模块实现批量移动文件_python_
- Python解析CDD文件的代码详解_python_
- python中常见进制之间的转换方式_python_
