工作中經常會用到excel表格,在python中,我們可以利用openpyxl很方便地操作它。本文先以兩個示例快速介紹openpyxl的基本用法。
示例1
展示了創建新的工作薄、激活默認表單、以行的形式賦值並保存文件。
from openpyxl import Workbook wb = Workbook() # 激活默認表單 ws = wb.active # 以行為單位輸入 row = ["A1", "B1", "C1"] ws.append(row) # 保存文件 wb.save("1.xlsx")
此時會得到名為"1.xlsx"的excel文件,該excel文件中只有一個默認表單,默認表單的第一行被賦值了。
示例2
展示了加載工作薄、創建新表單、以單元格的形式賦值並保存文件。
from openpyxl import load_workbook # 加載文件 wb = load_workbook("1.xlsx") # 創建新的表單 ws = wb.create_sheet("my sheet") # 給A3單元格賦值 ws['A3'] = 10 # 保存文件 wb.save("2.xlsx")
此時會得到名為"2.xlsx"的excel文件,該excel文件含有默認和新建的兩個表單,其中新建的表單中A3單元格被賦值了。
通過上述兩個示例,對openpyxl有了大概的了解后。下面將開始介紹openpyxl更多的基本用法。
修改表單名
ws.title = "new title"
操作指定名字的表單
ws1 = wb["new title"] ws1['A3'] = 10
遍歷工作薄中的表單名
for sheet in wb: print(sheet.title)
復制表單
source = wb.active
target = wb.copy_worksheet(source)
給單元格賦值
# 方法1 ws['A4'] = 10 # 方法2 ws.cell(row=4, column=1, value=10)
使用datetime格式賦值
import datetime from openpyxl import Workbook wb = Workbook() ws = wb.active # set date using a Python datetime ws['A1'] = datetime.datetime(2010, 7, 21) print(ws['A1'].number_format) print(ws['A1'].value)
運行結果如下:
yyyy-mm-dd h:mm:ss
2010-07-21 00:00:00
使用公式賦值
from openpyxl import Workbook wb = Workbook() ws = wb.active # add a simple formula ws["A1"] = "=SUM(1, 1)" wb.save("formula.xlsx")
合並/取消合並單元格
from openpyxl.workbook import Workbook wb = Workbook() ws = wb.active # 方法1 ws.merge_cells('A2:D2') ws.unmerge_cells('A2:D2') # 方法2 ws.merge_cells(start_row=2, start_column=1, end_row=4, end_column=4) ws.unmerge_cells(start_row=2, start_column=1, end_row=4, end_column=4) wb.save("merge.xlsx")
添加圖表
from openpyxl import Workbook from openpyxl.chart import BarChart, Reference wb = Workbook() ws = wb.active for i in range(10): ws.append([i]) values = Reference(ws, min_col=1, min_row=1, max_col=1, max_row=10) chart = BarChart() chart.add_data(values) ws.add_chart(chart, "E15") wb.save("SampleChart.xlsx")
除了上述常見用法外,openpyxl更多更強大的功能還需移步官方文檔去了解。
參考資料