python openpyxl三行代码将列表数据依次加入excel单元格并生成图表

OpenPyXL

OpenPyXl 几乎可以实现所有的 Excel 功能,而且接口清晰,文档丰富,学习成本相对较低。

安装

用 pip 安装

pip install openpyxl

使用

使用python的openpyxl模块,可以非常方便的将列表或元组数据依次加入excel单元格,可竖排也可横排,以下代码为最简单的横排:

from openpyxl import Workbook

l = 123, 154, 165, 144, 265, 365, 376, 223, 162

wb = Workbook()
ws = wb.active
ws.append([l])
wb.save('文件名.xlsx')

需要注意的是:

  • 新创建的 workbook 对象,会自带一个名为 Sheet 的表单,Office Excel 新建会创建 3 个
  • 创建的 workbook 会将第一个 表单 激活,通过 wb.active 获取引用
  • 像 python-docx work 库一样,save 方法会立即保存,不会有任何提示,建议选择不同文件名来保存

生成图表

图表是 Excel 中很重要的部分,作为数据可视化的高效工具,利用 OpenPyXl 可以用编程的方式,在 Excel 中制作图表,创建过程和直接在 Excel 中差不多,下面以柱状图和圆饼图为例做演示。

from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference

wb = Workbook()
ws = wb.active

rows = [
    ('月份', '苹果', '香蕉'),
    (1, 43, 25),
    (2, 10, 30),
    (3, 40, 60),
    (4, 50, 70),
    (5, 20, 10),
    (6, 10, 40),
    (7, 50, 30),
]

for row in rows:
    ws.append(row)

chart1 = BarChart()
chart1.type = "col"
chart1.style = 10
chart1.title = "销量柱状图"
chart1.y_axis.title = '销量'
chart1.x_axis.title = '月份'

data = Reference(ws, min_col=2, min_row=1, max_row=8, max_col=3)
series = Reference(ws, min_col=1, min_row=2, max_row=8)
chart1.add_data(data, titles_from_data=True)
chart1.set_categories(series)
ws.add_chart(chart1, "A10")
  • 引入柱状图类 BarChart 和 数据应用类 Reference
  • 创建 Workbook,并为活动 Sheet 添加数据
  • 创建柱状图对象,设置图表属性,type 为 col 为列状图,bar 为水平图
  • 创建数据引用对象,指定从那个 sheet 以及数据范围
  • 创建系列数据引用对象
  • 将数据和系列加入到图表对象中
  • 最后将图表对象用 add_chart 添加到 sheet 里

总结

今天以 OpenPyXl 库为例,了解了 Python 操作 Excel 的基本方法,限于篇幅,无法全面的清晰的介绍更多功能,期望通过这篇短文,激发起您多程序化操作 Excel 的兴趣,让让工作、学习更高效,就如那句名言一样:“ 人生苦短,我用 Python”

你可能感兴趣的:(Python,#,openpyxl,python,pygame,numpy,scrapy,pip)