目录:
openpyxl 是一个专门用于读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的 Python 库,提供了全面的Excel操作功能,包括单元格数据读写、样式格式化、公式应用、图表插入等。
$ pip3 install openpyxl
验证安装成功:
import openpyxl
print(openpyxl.__version__)
from openpyxl import Workbook
# 创建新的工作簿
wb = Workbook()
# 获取活动工作表
ws = wb.active
# 写入数据到单元格
ws['A1'] = '姓名'
ws['B1'] = '年龄'
ws['A2'] = '张三'
ws['B2'] = 23
ws['A3'] = '李四'
ws['B3'] = 30
# 使用 cell 方法通过行列索引写入
# row=4 第四行,column=1 第一列
ws.cell(row=4, column=1, value="王五")
ws.cell(row=4, column=2, value=28)
# 使用 append 方法添加整行数据,自动追加到下一行
ws.append([1, 2, 3])
# 保存文件
wb.save('test.xlsx')
from openpyxl import load_workbook
# 加载工作簿
wb = load_workbook('test.xlsx')
ws = wb.active # 获取活动工作表
# 读取单个单元格
cell_a1 = ws['A1'].value
print(f"A1单元格的值: {cell_a1}")
# 通过行列索引读取
cell_value = ws.cell(row=2, column=1).value
print(f"第二行第一列的值: {cell_value}")
# 遍历所有行数据
for row in ws.iter_rows(values_only=True):
print(row) # 输出每行的元组
from openpyxl import Workbook
# 创建新的工作簿
wb = Workbook()
# 选择工作表的不同方式
ws_by_index = wb.worksheets[0] # 通过索引
ws_by_name = wb["NewTitle"] # 通过名称
ws_by_active = wb.active # 获取活动工作表
from openpyxl import Workbook
# 创建新的工作簿
wb = Workbook()
# 创建新工作表
ws1 = wb.create_sheet("Sheet2") # 在末尾创建
ws2 = wb.create_sheet("MySheet", 0) # 在第一个位置创建
from openpyxl import Workbook
# 创建新的工作簿
wb = Workbook()
# 获取活动工作表
ws = wb.active
# 重命名工作表
ws.title = "NewTitle"
from openpyxl import Workbook
# 创建新的工作簿
wb = Workbook()
# 删除工作表
del wb["Sheet2"] # 方法一
wb.remove(wb["MySheet"]) # 方法二
from openpyxl import Workbook
# 创建新的工作簿
wb = Workbook()
# 获取所有工作表名称
print(wb.sheetnames)
from openpyxl.styles import Font, Alignment, PatternFill, Border, Side
# 设置字体
font = Font(name='Arial', size=14, bold=True, italic=True, color="FF0000")
ws['A1'].font = font
# 设置对齐方式
alignment = Alignment(horizontal='center', vertical='center')
ws['A1'].alignment = alignment
# 设置填充颜色
fill = PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid")
ws['A1'].fill = fill
# 设置边框
border = Border(left=Side(style='thin'),
right=Side(style='thin'),
top=Side(style='thin'),
bottom=Side(style='thin'))
ws['A1'].border = border
# 设置数字格式
ws['B1'].number_format = '0.00%' # 百分比格式
ws['C1'].number_format = 'YYYY-MM-DD' # 日期格式
↶ 返回首页 ↶