openpyxl模块的日常使用

openpyxl是另一个我觉得比较好用的xlsx操作模块,支持读和写,功能也比较丰富 。

下面是一个读的例子:

import openpyxl

# 打开工作簿
workbook = openpyxl.load_workbook('示例.xlsx')

# 获取工作表
sheet = workbook.active

# 读取指定单元格的数据
cell_value = sheet['A1'].value
print("A1单元格的数值为:", cell_value)

# 读取指定行和列的单元格数据
row_num = 1
col_num = 1
cell_value = sheet.cell(row=row_num, column=col_num).value
print(f"第{row_num}行,第{col_num}列的数值为: {cell_value}")

# 按行读取数据,返回row是一个tuple
for row in sheet.iter_rows(values_only=True):
    print(row)

# 关闭工作簿
workbook.close()

下面是一个写的例子,包括填充数据和设置格式:

from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, Border, Side

# 创建一个新的工作簿
workbook = Workbook()

# 获取活动的工作表
sheet = workbook.active

# 写入数据
sheet['A1'] = '姓名'
sheet['B1'] = '年龄'

# 设置字体大小和加粗
sheet['A1'].font = Font(size=14, bold=True)
sheet['B1'].font = Font(size=14, bold=True)

# 写入数据行
data = [('Alice', 30), ('Bob', 25), ('Charlie', 35)]

for row_num, row_data in enumerate(data, start=2):
    sheet[f'A{row_num}'] = row_data[0]
    sheet[f'B{row_num}'] = row_data[1]

# 设置列宽
sheet.column_dimensions['A'].width = 20
sheet.column_dimensions['B'].width = 10

# 设置背景颜色
for row in sheet.iter_rows(min_row=1, max_row=len(data)+1, min_col=1, max_col=2):
    for cell in row:
        cell.fill = PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid")

# 设置边框为细实线
thin_border = Border(left=Side(style='thin'), 
                     right=Side(style='thin'), 
                     top=Side(style='thin'), 
                     bottom=Side(style='thin'))

for row in sheet.iter_rows(min_row=1, max_row=len(data)+1, min_col=1, max_col=2):
    for cell in row:
        cell.border = thin_border

# 保存工作簿
workbook.save('example.xlsx')

 

posted @ 2024-11-22 08:38  黑月教主  阅读(10)  评论(0编辑  收藏  举报