【发布时间】:2023-02-10 05:36:09
【问题描述】:
我正在构建一个程序来使用 xlwings 在 Excel 中自动化一个过程。
我必须访问的文件包括 .xlsx、.xlsb 和 .xlsm 格式
我有以下命令:
wb = xw.Book(r"some_directory\file1.xlsx")
运行良好。
但是当我运行接下来的两个命令中的任何一个时:
wb = xw.Book(r"some_directory\file2.xlsb")
我收到以下错误:
在 [10] 中输入 <cell line: 1>() ----> 1 wb = xw.Book(r"some_directory\file2.xlsb")
文件 ~\Anaconda3\lib\site-packages\xlwings\main.py:682,在 书。在里面(self, fullname, update_links, read_only, format, 密码,write_res_password,ignore_read_only_recommended,来源, 定界符,可编辑,通知,转换器,add_to_mru,本地, corrupt_load, impl) 680 如果不是应用程序: 第681章 --> 682 impl = app.books.open(fullname, update_links, read_only, format, password, write_res_password, 第683章 第684章 685 elif len(候选人)> 1: 686 引发异常(“工作簿 '%s' 在多个 Excel 实例中打开。” % fullname)
文件 ~\Anaconda3\lib\site-packages\xlwings\main.py:4278,在 Books.open(self, fullname, update_links, read_only, format, password, write_res_password, ignore_read_only_recommended, origin, delimiter, 可编辑、通知、转换器、add_to_mru、本地、corrupt_load)4276 尝试:4277 impl = self.impl(name) -> 4278 如果不是 os.path.samefile(impl.fullname, fullname): 4279 raise ValueError( 4280 "无法打开两个名为 '%s',即使它们保存在不同的位置。" % name 4281
) 4282 除了 KeyError:文件 ~\Anaconda3\lib\genericpath.py:100,在同一个文件中(f1,f2) 94 def 相同文件(f1,f2): 95 """测试两个路径名是否引用同一个实际文件或目录 96 97 这是由设备号和i节点号决定的 如果对任一路径名的 os.stat() 调用失败,98 将引发异常。 99 """ --> 100 s1 = os.stat(f1) 101 s2 = 操作系统统计(f2) 102 返回 samestat(s1, s2)
OSError: [WinError 123] 文件名、目录名或卷标 语法不正确:'some_directory\file2.xlsb'
如何使用 xlwings 访问 file2.xlsb?
【问题讨论】:
-
@BigBen,这些命令仅适用于 .xlsx 文件。当我尝试使用 .xlsb 文件甚至 .xlsm 文件时,出现此错误
-
我刚刚编辑了我的问题并包含了完整的堆栈跟踪
-
此工作簿是否保存在 OneDrive 位置?
-
是的,连同我提到的其他文件。
-
我从本地目录中读取了一个
.xlsb就好了,我怀疑你的 OneDrive 的某些东西导致了这个错误。
标签: python-3.x excel xlwings xlsb