将Excel文件工作簿合并到一个文件夹中

磅2019

我是python初学者,我尝试构建一个脚本,将所有现有excel工作簿合并到同一文件夹中的新工作簿中。但是我遇到一个错误,指出找不到excel文件...。 。参见下面的编码:

import win32com.client as win32
import os

excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Add()
path = r"/Users/lb/Desktop/consolidation"
suffix = "xlsx"
dirs = os.listdir(path)

for file in dirs:
    if file.endswith(suffix):
    w = excel.Workbooks.Open(file)
    w.Sheets(1).Copy(wb.Sheets(1))

wb.SaveAs(os.path.join(path, "result.xlsx"))
excel.Application.Quit()

这是我运行脚本时的错误:

文件“ C:/ Users / lb / PycharmProjects / New Project / fusion2.py”,第12行,w = excel.Workbooks.Open(文件)文件“ C:\ Users \ lb \ AppData \ Local \ Temp \ gen_py \ 3.7 \ 00020813-0000-0000-C000-000000000046x0x1x7 \ Workbooks.py“,第78行,位于Open,Converter,AddToMru,Local,CorruptLoad)pywintypes.com_error:(-2147352567,“发生了异常。”,(0,“ Microsoft Excel',“'business_Descriptor.xlsx'找不到。检查文件名的拼写,并验证文件位置是否正确。

如果您尝试从最近使用过的文件列表中打开文件,请确保未重命名,移动或删除该文件。“,'xlmain11.chm,0,-2146827284),无)

热情3d

我相信您的路线可能不对。通常来说,Windows中的users目录应该如下所示:

C:\\Users\\lb\\Desktop\\consolidation

如果不确定路径,也可以通过在python脚本中浏览路径来调试路径,直到使用os.chdir()命令和os.listdir()命令找到文件夹为止。当您在所需的文件夹中时,可以使用os.getcwd()命令。

在此处输入图片说明

我还建议这个如果你想熟悉Python的文件系统读取。

继续上一部分,似乎在您的代码中,

for file in dirs:
    if file.endswith(suffix):
        w = excel.Workbooks.Open(file)
        w.Sheets(1).Copy(wb.Sheets(1))

您正在尝试使用文件本身的字符串名称而不是路径打开文件。如果您通过此链接查看下面的代码片段,您会发现它们将名称附加到路径目录中。这应该可以解决您的问题:P

import os

for filename in os.listdir('path/to/dir'):
    if filename.endswith('.log'):
        with open(os.path.join('path/to/dir', filename)) as f:
            content = f.read()

本质上,您需要做的就是改变您的

w = excel.Workbooks.Open(file)-> w = excel.Workbooks.Open(os.path.join(path,file))

因此,该部分代码的最终结果应如下所示(请注意if处的缩进!如果没有inif语句,它们将不起作用):

for file in dirs:
    if file.endswith(suffix):
        w = excel.Workbooks.Open(os.path.join(path,file))
        w.Sheets(1).Copy(wb.Sheets(1))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Power Shell将Excel工作簿数据合并到文件夹中的CSV文件中

将工作簿合并到一个新文件中

将多个csv文件合并到一个xls工作簿Python 3中

将文件从终端中的不同级别文件夹合并到一个文件夹中

将所有 .dta 文件合并到一个文件夹中?

尝试将不同文件夹中的多个工作簿合并为一个主文件夹

将一个工作簿中的多张工作表保存到单个文件夹

将单独的git仓库合并到一个由文件夹组织的仓库中

将存储库合并到另一个存储库的文件夹中

如何将活动工作簿保存在 Excel VBA 的另一个文件夹中?

将所有PDF合并到一个文件夹中,但始终先合并一个PDF

将子文件夹中各种集成的作曲家供应商文件夹合并到一个根文件夹中

将一个文件夹与源合并到另一个

将一个分支合并到另一个分支的文件夹中

Makefile:循环文件夹并将文件合并到一个新文件中

将工作表从分组在一个文件夹中的多个工作簿复制到主文件

如何将一个文件夹中的多个 Excel 工作簿中除工作表 1 和工作表 2 之外的所有工作表复制到另一个工作簿中

VBA将一个文件夹中多个工作簿的范围复制到另一个文件夹中

将子文件夹中的多个 CSV 文件合并到一个唯一的文件中,并在新列中添加文件名

将多个工作簿中的值合并到一个工作簿

哪种工具可让我根据修改日期将多个文件夹合并到一个文件夹中

使用宏将3个以上的Excel工作表合并到一个工作簿中

从子文件夹递归地将文件读取到列表中,并将每个子文件夹的文件合并到每个子文件夹一个csv中

合并到另一个文件夹时保持子子文件夹结构 [重复的文件夹名称将存在]

将文件夹中多个工作簿中的数据复制到一个工作簿中,仅粘贴特殊值

如何在python中将不同的excel文件合并到一个具有不同工作表名称的工作簿中

将不同文件夹中的同名 CSV 文件合并到一个文件中

如何读取文件夹中的任何 CSV 文件并合并到一个 CSV 文件中

选择多个工作簿,将每个工作簿中的“第一个”选项卡合并到同一工作簿中的“新建”选项卡,“使用文件名重命名”选项卡