读写xlsx文件的方法
python中可以使用openpyxl
或pandas
库来读写xlsx文件。
以下是两种方法的详细说明:
使用openpyxl库
- 安装openpyxl:
pip install openpyxl
- 写入xlsx文件:
from openpyxl import workbook # 创建工作簿 wb = workbook() ws = wb.active # 写入数据 ws['a1'] = "姓名" ws['b1'] = "年龄" ws['a2'] = "张三" ws['b2'] = 25 # 保存文件 wb.save("example.xlsx")
- 读取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库
- 安装pandas:
pip install pandas openpyxl
- 写入xlsx文件:
import pandas as pd # 创建dataframe data = {'姓名': ['张三', '李四'], '年龄': [25, 30]} df = pd.dataframe(data) # 写入文件 df.to_excel("example.xlsx", index=false)
- 读取xlsx文件:
import pandas as pd # 读取文件 df = pd.read_excel("example.xlsx") print(df)
处理大型xlsx文件
对于大型xlsx文件,可以使用openpyxl
的read_only
模式或pandas
的chunksize
参数:
- 使用openpyxl读取大型文件:
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)
- 使用pandas分块读取:
import pandas as pd # 分块读取 chunk_size = 1000 for chunk in pd.read_excel("large_file.xlsx", chunksize=chunk_size): print(chunk)
格式化单元格
- 使用openpyxl格式化单元格:
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)
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论