首页 > 解决方案 > 如何打开文件夹中的所有 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 文档进行交互。

有任何想法吗?

标签: pythonexcelpython-3.x

解决方案


首先,安装从目录中读取所有 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)。


推荐阅读