python openpyxl
目录
openpyxl 简介
openpyxl 创建表格
openpyxl 加载已经存在的表格
openpyxl 创建sheet
openpyxl 获取sheet
openpyxl 单元格
openpyxl 单元格使用公式
openpyxl 合并/取消单元格
openpyxl 插入图片
openpyxl 简介
openpyxl 是一个 Python 库,用于读取/写入 Excel 2010 xlsx/xlsm/xltx/xltm 文件。
操作Excel表格的模式,只支持03版本以后的表格。03之前Excel表格的后缀名xls,03之后的Excel表格的后缀名xlsx。
openpyxl 创建表格
from openpyxl import Workbook
wb = Workbook()
# get the active worksheet
ws = wb.active
# active worksheel的名字
ws.title = "New Title"
# 数据直接存入表格中
ws['A1'] = 42
# 行添加数据
ws.append([1, 2, 3])
# 覆盖原A2中的数据
ws['A2'] = 66
# 保存表格的名字
wb.save("sample.xlsx")
openpyxl 加载表格
from openpyxl import load_workbook
wb = load_workbook("test/sample.xlsx")
# get all sheetnames from workbook
print(wb.sheetnames)
openpyxl cells
一个单元格
1. 给单元格赋值
ws["A1"] = 1
2. 获取单元格对象
c = ws["A1"]
3. 给单元格赋值并获取对象
c = ws.cell(row=2, column=3, value=10)
多个单元格
1. 获取多个单元格对象
cell_range = ws["A1": "B2"] # cell_range 是一个元组,其中包含两个元组,分别是第一行和第二行的单元格对象
or
for row in ws.iter_rows(min_row=1, max_col=3, max_row=2):
for cell in row:
print(cell)
"""
<Cell Sheet1.A1>
<Cell Sheet1.B1>
<Cell Sheet1.C1>
<Cell Sheet1.A2>
<Cell Sheet1.B2>
<Cell Sheet1.C2>
"""
or
for col in ws.iter_cols(min_row=1, max_col=3, max_row=2):
for cell in col:
print(cell)
"""
<Cell Sheet1.A1>
<Cell Sheet1.A2>
<Cell Sheet1.B1>
<Cell Sheet1.B2>
<Cell Sheet1.C1>
<Cell Sheet1.C2>
"""
2. 获取一列单元格
colC = ws["A"]
3. 获取多列单元格
col_range = ws["A:B"]
4. 获取行单元格
row2 = ws[2]
5. 获取多行单元格
row_range = ws[2:4]
6. 获取表格中的所有行和列
ws.rows
# or
ws.columns
7. 获取表格中所有的值
for row in ws.values:
for value in row:
print(value)
or
for row in ws.iter_rows(min_row=1, max_col=3, max_row=2, values_only=True):
print(row)
openpyxl 创建sheet
ws = wb.create_sheet(title="chrome")
openpyxl 获取sheet
ws = wb["chrome"]
print(ws["A1"].value)
for row in ws.values:
for value in row:
print(value)
openpyxl 公式
ws["A3"] = "=SUM(A1, A2)"
openpyxl 合并/取消单元格
ws.merge_cells("B3:C3")
ws.unmerge_cells("B3:C3")

浙公网安备 33010602011771号