1 读取与写入单元格内容
单元格是 Excel 中存储数据的基本单位。在 openpyxl
中,可以通过 Worksheet
对象的 cell()
方法来访问和操作单元格。
写入单元格内容
可以使用 cell().value
属性向单元格写入数据。
import openpyxl
# 创建一个新的工作簿
workbook = openpyxl.Workbook()
# 获取当前活动工作表
sheet = workbook.active
# 在A1单元格写入字符串
sheet['A1'] = 'Hello, OpenPyXL!'
# 在B1单元格写入整数
sheet['B1'] = 42
# 在C1单元格写入浮点数
sheet['C1'] = 3.14
# 在D1单元格写入布尔值
sheet['D1'] = True
# 保存工作簿
workbook.save('cell_write_example.xlsx')
代码解释
sheet['A1'] = 'Hello, OpenPyXL!'
:直接使用单元格坐标向单元格写入字符串。sheet.cell(row=2, column=2, value='Python')
:另一种写入数据的方式,使用row
和column
指定单元格位置。
读取单元格内容
可以使用 cell().value
属性来读取单元格内容。
import openpyxl
# 打开现有工作簿
workbook = openpyxl.load_workbook('cell_write_example.xlsx')
# 获取当前活动工作表
sheet = workbook.active
# 读取A1单元格的内容
a1_value = sheet['A1'].value
# 读取B1单元格的内容
b1_value = sheet.cell(row=1, column=2).value
print(f"A1单元格的内容是: {a1_value}")
print(f"B1单元格的内容是: {b1_value}")
代码解释
sheet['A1'].value
:使用单元格坐标读取单元格内容。sheet.cell(row=1, column=2).value
:通过行号和列号访问单元格内容。
2 单元格的格式化
格式化是 Excel 中常用的功能,用于更改单元格的外观以突出显示数据。openpyxl
提供了对单元格字体、对齐方式、边框和填充颜色等进行格式化的功能。
设置字体
可以通过 Font
类设置单元格的字体样式。
import openpyxl
from openpyxl.styles import Font
# 创建一个新的工作簿
workbook = openpyxl.Workbook()
sheet = workbook.active
# 写入数据到A1单元格
sheet['A1'] = 'Bold Text'
# 设置A1单元格为粗体
sheet['A1'].font = Font(size=12, bold=True)
# 写入数据到B1单元格
sheet['B1'] = 'Italic Text'
# 设置B1单元格为斜体
sheet['B1'].font = Font(size=12, italic=True)
# 保存工作簿
workbook.save('cell_font_format.xlsx')
代码解释
Font(size=12, bold=True)
:创建一个字体对象,指定字体大小为12,字体样式为粗体。sheet['A1'].font = font_object
:将字体样式应用于单元格。
设置单元格对齐方式
可以使用 Alignment
类来设置单元格的对齐方式。
import openpyxl
from openpyxl.styles import Alignment
# 创建一个新的工作簿
workbook = openpyxl.Workbook()
sheet = workbook.active
# 写入数据到C1单元格
sheet['C1'] = 'Centered Text'
# 设置C1单元格内容居中
sheet['C1'].alignment = Alignment(horizontal='center', vertical='center')
# 保存工作簿
workbook.save('cell_alignment_format.xlsx')
代码解释
Alignment(horizontal='center', vertical='center')
:创建一个对齐对象,水平和垂直对齐方式均设置为居中。sheet['C1'].alignment = alignment_object
:将对齐方式应用于单元格。
设置单元格边框
可以使用 Border
类和 Side
类设置单元格的边框样式。
import openpyxl
from openpyxl.styles import Border, Side
# 创建一个新的工作簿
workbook = openpyxl.Workbook()
sheet = workbook.active
# 写入数据到D1单元格
sheet['D1'] = 'Text with Border'
# 设置单元格边框
thin_border = Border(left=Side(style='thin'),
right=Side(style='thin'),
top=Side(style='thin'),
bottom=Side(style='thin'))
sheet['D1'].border = thin_border
# 保存工作簿
workbook.save('cell_border_format.xlsx')
代码解释
Side(style='thin')
:创建边框边缘的样式,thin
表示细线边框。Border(left=side_object, right=side_object, ...)
:设置四个方向的边框。sheet['D1'].border = border_object
:将边框样式应用于单元格。
设置单元格填充颜色
使用 PatternFill
类可以设置单元格的背景填充颜色。
import openpyxl
from openpyxl.styles import PatternFill
# 创建一个新的工作簿
workbook = openpyxl.Workbook()
sheet = workbook.active
# 写入数据到E1单元格
sheet['E1'] = 'Text with Background'
# 设置单元格背景颜色
fill = PatternFill(fill_type='solid', start_color='FFFF00', end_color='FFFF00')
sheet['E1'].fill = fill
# 保存工作簿
workbook.save('cell_fill_format.xlsx')
代码解释
PatternFill(fill_type='solid', start_color='FFFF00', end_color='FFFF00')
:创建一个填充对象,填充类型为实心,颜色为黄色(FFFF00
)。sheet['E1'].fill = fill_object
:将填充颜色应用于单元格。