📊 Excel 模块使用指南
核心场景
生成测试数据
import office
office.excel.fake2excel(
columns=['name', 'phone', 'email', 'address'],
rows=1000,
path='./test_users.xlsx'
)
可用字段:name, phone, email, address, company, job, country, city, postcode, ssn, credit_card_number, user_agent, text, sentence
合并多个 Excel
office.excel.merge2excel(
dir_path='./部门报表/',
output_file='月度汇总.xlsx'
)
拆分多 sheet Excel
office.excel.sheet2excel(
file_path='./multi_sheet.xlsx',
output_path='./拆分后/'
)
合并多个 Sheet
office.excel.merge2sheet(
dir_path='./excels/',
output_sheet_name='汇总',
output_excel_name='all_merged'
)
搜索 Excel 内容
office.excel.find_excel_data(
search_key='客户A',
target_dir='./历史合同/'
)
按列拆分
office.excel.split_excel_by_column(
filepath='./员工信息.xlsx',
column=2
)
Excel 转 PDF
office.excel.excel2pdf(
excel_path='./月报.xlsx',
pdf_path='./月报.pdf',
sheet_id=0
)
完整 API
详见 Excel API 参考
实战案例:自动化生成月度报告
import office
from datetime import datetime
# 1. 生成测试数据
office.excel.fake2excel(
columns=['name', 'company', 'sale'],
rows=200,
path=f'./data/{datetime.now():%Y%m}_data.xlsx'
)
# 2. 合并本月所有分公司的报表
office.excel.merge2excel(
dir_path=f'./data/{datetime.now():%Y%m}/',
output_file=f'./reports/{datetime.now():%Y%m}_合并报表.xlsx'
)
# 3. 转换为 PDF 方便分享
office.excel.excel2pdf(
excel_path=f'./reports/{datetime.now():%Y%m}_合并报表.xlsx',
pdf_path=f'./reports/{datetime.now():%Y%m}_合并报表.pdf'
)
常见问题
Q: 处理大文件速度慢? A: Excel 操作依赖 openpyxl/pandas,建议 Excel 不要超过 10 万行。
Q: 合并后格式错乱? A: 合并仅保留数据,不保留原始格式。如需保留格式请用 VBA 宏。