python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python读写xlsx文件

在python中读写xlsx文件的实现方式

作者:高级测试工程师欧阳

Python中可使用openpyxl或pandas读写XLSX文件,openpyxl适合处理格式及大型文件(支持read_only模式),pandas适用于数据操作与分块读取(通过chunksize参数),两者均可处理多工作表

读写XLSX文件的方法

Python中可以使用openpyxlpandas库来读写XLSX文件。

以下是两种方法的详细说明:

使用openpyxl库

pip install openpyxl
from openpyxl import Workbook

# 创建工作簿
wb = Workbook()
ws = wb.active

# 写入数据
ws['A1'] = "姓名"
ws['B1'] = "年龄"
ws['A2'] = "张三"
ws['B2'] = 25

# 保存文件
wb.save("example.xlsx")
from openpyxl import load_workbook

# 加载工作簿
wb = load_workbook("example.xlsx")
ws = wb.active

# 读取数据
for row in ws.iter_rows(values_only=True):
    print(row)

使用pandas库

pip install pandas openpyxl
import pandas as pd

# 创建DataFrame
data = {'姓名': ['张三', '李四'], '年龄': [25, 30]}
df = pd.DataFrame(data)

# 写入文件
df.to_excel("example.xlsx", index=False)
import pandas as pd

# 读取文件
df = pd.read_excel("example.xlsx")
print(df)

处理大型XLSX文件

对于大型XLSX文件,可以使用openpyxlread_only模式或pandaschunksize参数:

from openpyxl import load_workbook

# 以只读模式加载
wb = load_workbook("large_file.xlsx", read_only=True)
ws = wb.active

# 逐行读取
for row in ws.iter_rows(values_only=True):
    print(row)
import pandas as pd

# 分块读取
chunk_size = 1000
for chunk in pd.read_excel("large_file.xlsx", chunksize=chunk_size):
    print(chunk)

格式化单元格

from openpyxl.styles import Font, Alignment

wb = Workbook()
ws = wb.active

# 设置字体和对齐
ws['A1'].font = Font(bold=True)
ws['A1'].alignment = Alignment(horizontal="center")

wb.save("formatted.xlsx")

处理多个工作表

from openpyxl import Workbook

wb = Workbook()

# 创建工作表
ws1 = wb.create_sheet("Sheet1")
ws2 = wb.create_sheet("Sheet2")

# 写入不同工作表
ws1['A1'] = "Sheet1数据"
ws2['A1'] = "Sheet2数据"

wb.save("multi_sheet.xlsx")
from openpyxl import load_workbook

wb = load_workbook("multi_sheet.xlsx")
ws = wb["Sheet2"]  # 获取指定工作表
print(ws['A1'].value)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文