python - 如何打开文件夹中的所有 excel 文件创建并创建由这些文件中的特定工作表组成的新电子表格
问题描述
我有一个包含几个 excel 文档的文件夹。
对于列表中的每个文件,我想转到 3 个特定工作表(每个文件中都存在)并将这些工作表复制到一个新工作簿中。
所以它看起来像这样
Folder:
File1
Sheet1
Sheet2
...
Sheetn
File2
Sheet1
Sheet2
...
Sheetn
...
Filen
Sheet1
Sheet2
...
Sheetn
工作表名称不是这样命名的,但都有类似的命名结构,所以我想写这样的东西:
new_file = excel workbook # create a new workbook (not sure the syntax)
for file in folder:
open file
for sheet in file:
if sheetname like 'foobar1' or sheetname like 'foobar2'....:
copy sheet into new_file
save new_file
问题是我不知道要使用哪些库或确切地如何正确编写它。
我不熟悉使用 python 与 excel 文档进行交互。
有任何想法吗?
解决方案
首先,安装从目录中读取所有 excel 文件所需的所有库。
pip install xlrd
pip install pandas
pip install xlsxwriter
然后,将这些导入到您的代码中:
import os
import xlrd
import pandas as pd
import xlsxwriter
address='E:\\DataFrames\\CSV\\'
List_SubFolders=os.listdir(address)
number=0
with pd.ExcelWriter('E:/DataFrames/output.xlsx') as writer: # doctest: +SKIP
for folders in List_SubFolders:
temp_folder=folders
List_XLS_In_Directory=os.listdir(address+str(temp_folder))
for xls in List_XLS_In_Directory:
#print(address+str(temp_folder)+'\\'+str(xls))
df = pd.read_excel(address+str(temp_folder)+'\\'+str(xls), sheet_name='Sheet1')
#df = pd.read_excel('E:/DataFrames/CSV/1/EZ Apply GPA Calculator.xlsx', sheet_name='Sheet1')
number+=1
df.to_excel(writer, sheet_name='Sheet_name_'+str(number))
最后,您有一个 excel 文件,每个文件都有一张工作表。我阅读了此目录中的所有 excel 文件(或 csv)。
推荐阅读
- java - 如何在 Java 中将图像/文件上传到 Firebase 存储?
- oracle - 在 oracle 的触发器中声明和调用变量
- ios - 在 Swift 4.2 中反转字符串
- azure - 在 proxies.json 中使用 Azure 函数设置自定义响应标头
- android - 无法在 Kotlin 中创建 Observable
- javascript - 防止我的所有页面内容调整大小
- caching - 无法让 CloudFront 提供缓存控制标头
- python-2.7 - 如何将 Python Dataframe 加载到 cloudera Impala?
- javascript - 如何使用ajax上传多张图片?
- material-ui - 为什么 Material UI 根据生产使用不同的构建配置