一、Pythonopenpyxl概述
Pythonopenpyxl是一种在Python中操作Excel文件的库,可以读写xlsx文件,支持Excel 2010及更高版本,可以生成图表、数据透视表以及公式等Excel特性。
Pythonopenpyxl的优点在于其可读性、性能和容错率,因为它基于业界标准的压缩和解压缩库实现,同时可以利用Python的强大脚本处理能力实现更多功能。
下面我们来看看Pythonopenpyxl常用的几个方面。
二、读取Excel文件
Pythonopenpyxl可以读取Excel文件,方法如下:
import openpyxl
wb = openpyxl.load_workbook('example.xlsx')
sheet = wb['Sheet1']
print(sheet['A1'].value)
代码解释:
openpyxl.load_workbook函数读取指定的Excel文件example.xlsx,把所有的sheet载入到内存中,并且把其中一个名为Sheet1的sheet赋值给变量sheet。sheet[‘A1’].value表示获取sheet中A1单元格的值。
三、写入Excel文件
Pythonopenpyxl可以写入Excel文件,方法如下:
import openpyxl
wb = openpyxl.Workbook()
sheet = wb.active
sheet['A1'] = 'Hello'
sheet['B1'] = 'World!'
wb.save('example.xlsx')
代码解释:
openpyxl.Workbook()生成一个内存中的Workbook对象,wb.active赋值为当前对象的第一个sheet。sheet[‘A1’] = ‘Hello’表示在当前sheet的A1单元格中写入Hello,sheet[‘B1’] = ‘World!’表示在当前sheet的B1单元格中写入World!关键代码都写完之后使用wb.save(‘example.xlsx’)把当前对象写入到磁盘的example.xlsx文件中。
四、公式计算
Pythonopenpyxl可以做公式计算,方法如下:
import openpyxl
wb = openpyxl.load_workbook('example.xlsx')
sheet = wb.active
sheet['C1'] = '=SUM(A1:B1)'
wb.save('example.xlsx')
代码解释:
openpyxl.load_workbook函数读取指定的Excel文件example.xlsx,把所有的sheet载入到内存中,并且把当前对象wb.active赋值为当前对象的第一个sheet。sheet[‘C1’] = ‘=SUM(A1:B1)’表示在当前sheet的C1单元格中做一个公式计算,计算A1:B1所有单元格的和。最后使用wb.save(‘example.xlsx’)把当前对象写入到磁盘的example.xlsx文件中。
五、数据透视表
Pythonopenpyxl可以操作数据透视表,方法如下:
import openpyxl
from openpyxl import Workbook
from openpyxl import utils
from openpyxl.utils import column_index_from_string as get_letter
from openpyxl import worksheet
wb = openpyxl.load_workbook('example.xlsx')
ws = wb.active
ws.title = "Pivot"
ws['A1'] = "Region"
ws['B1'] = "Employee"
ws['C1'] = "Sales"
ws['A2'] = "West"
ws['B2'] = "Johann"
ws['C2'] = "100"
ws['A3'] = "West"
ws['B3'] = "Johann"
ws['C3'] = "150"
ws['A4'] = "West"
ws['B4'] = "Mary Sue"
ws['C4'] = "200"
ws['A5'] = "West"
ws['B5'] = "Mary Sue"
ws['C5'] = "175"
ws['A6'] = "East"
ws['B6'] = "Mark"
ws['C6'] = "75"
ws['A7'] = "East"
ws['B7'] = "Mark"
ws['C7'] = "100"
ws['A8'] = "East"
ws['B8'] = "Ryan"
ws['C8'] = "150"
ws['A9'] = "East"
ws['B9'] = "Ryan"
ws['C9'] = "200"
ws = wb.create_sheet("PivotOutput")
ws = worksheet.Worksheet(ws._ workbook, "PivotOutput")
ws.title = "PivotOutput"
pt = ws.pivot_table(ws['A1:C9'], rows='Region', cols='Employee', values='Sales')
wb.save('example.xlsx')
代码解释:
openpyxl.load_workbook函数读取指定的Excel文件example.xlsx,把所有的sheet载入到内存中,并且把当前对象wb.active赋值为当前对象的第一个sheet。代码中hard code一些数据,这部分代码是为了生成测试数据。pt = ws.pivot_table(ws[‘A1:C9′], rows=’Region’, cols=’Employee’, values=’Sales’)表示设置一个数据透视表,行字段是Region,列字段是Employee,值字段是Sales。
六、图表生成
Pythonopenpyxl可以生成图表,方法如下:
import openpyxl
from openpyxl.chart import BarChart, Reference
wb = openpyxl.Workbook()
sheet = wb.active
for i in range(1, 11):
sheet['A' + str(i)] = i
sheet['B' + str(i)] = i
values = Reference(sheet, min_col=2, min_row=1, max_col=2, max_row=10)
chart = BarChart()
chart.add_data(values)
sheet.add_chart(chart, 'D1')
wb.save('example.xlsx')
代码解释:
openpyxl.Workbook()生成一个内存中的Workbook对象,wb.active赋值为当前对象的第一个sheet。使用一个循环把1-10写入第一个sheet的A列和B列。values = Reference(sheet, min_col=2, min_row=1, max_col=2, max_row=10)表示把B列的值赋值给变量values。实例化一个BarChart并且把变量values赋值给图表。使用sheet.add_chart(chart, ‘D1’)在D1单元格位置创建图表。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/252016.html