Python实现在Excel文件中写入图表
短信预约 -IT技能 免费直播动态提醒
学习完如何生成一个 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写入图表的资料请关注编程网其它相关文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341