python - 如何使用Python动态将多个excel文件合并为一个包含多个工作表的文件
问题描述
到目前为止,我是手动完成的:
df1 = pd.read_excel('/Users/user/Downloads/1.xlsx')
df2 = pd.read_excel('/Users/user/Downloads/2.xlsx')
df3 = pd.read_excel('/Users/user/Downloads/3.xlsx')
with ExcelWriter('excels.xlsx') as writer:
df1.to_excel(writer, sheet_name='1')
df2.to_excel(writer, sheet_name='2')
df3.to_excel(writer, sheet_name='3')
但最终我想做到这一点,这样我就可以自动从文件夹中提取文件并将它们变成工作表。到目前为止,我有:
excel_names = ["1.xlsx", "2.xlsx", "3.xlsx"]
excels = [pd.ExcelFile(name) for name in excel_names]
但我不知道如何将它们保存为多张纸。
解决方案
您可以使用:
import os
import pandas as pd
folder=r'C:\path_to\your_folder'
path=os.path.join(folder,'excels.xlsx')
writer = pd.ExcelWriter(path, engine='openpyxl')
for i in os.listdir(folder):
pd.read_excel(os.path.join(folder,i)).to_excel(writer, i[:-5], index=False)
writer.save()
这给出了一个在同一文件夹中命名的文件excels.xlsx
,该文件夹将所有文件作为工作表名放在一个文件中。
推荐阅读
- react-native - 检测浏览器后退按钮点击反应原生
- javascript - 如何在 highcharts.js 中更改 RangeSelector 滚动条内的系列图显示
- python - CSV 中的 URL 比较不适用于 Python Pandas
- python - 无限滚动不滚动
- openlayers - 如何从众所周知的文本中获取坐标到 OpenLayers 中的坐标?
- c++ - 如何在 CMake 中下载、编译和链接库作为外部项目?
- node.js - 我正在尝试安装 Angular 8,但它给了我错误我尝试了很多但它不起作用?
- php - Yii2 用户身份在登录后为空
- c# - 打包android资产文件夹的问题
- python - 如何在 Python 中添加循环分组?