发布时间:2024-05-22 08:01
学习完如何生成一个 excel 文件之后,接下来我们继续学习一下如何在 excel 文件中写入一个比较简单的图表,先来看一下所需要的几个函数(这些函数都是通过工作簿执行出来的)。
函数名 | 说明 | 参数 |
---|---|---|
add_chart() | 创建图表对象 | {type:样式} |
add_series() | 定义需要展示的数据 | 字典 |
set_title() | 定义图表title | 字符串 |
参数 | 说明 | 值 |
---|---|---|
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 文件的内容写入 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写入图表的资料请关注脚本之家其它相关文章!