我正在运行一个创建工作簿的脚本,将一些数据写入其中然后保存它。
在我的剧本结尾处,我有:
workbook.SaveAs('tempfile.xlsx')
但正在发生的事情是它一直保存到一些不起眼的目录,今天早些时候我从sharepoint站点下载了一个excel文件。所以我试过了:
import os
os.chdir('C:/mydir')
然后我运行脚本,它仍然保存到模糊目录。我输入os.getcwd()进入IDLE提示符,然后返回'C:/ mydir。'
无法弄清楚如何正确保存。当我尝试:
workbook.SaveAs('C:/mydir/tempfile.xlsx')
我收到错误:
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, 'Microsoft Office Excel', "Microsoft Office Excel cannot access the file 'C:\\weird dir\\//mydir/FC424E40'. There are several possible reasons:\n\n• The file name or path does not exist.\n• The file is being used by another program.\n• The workbook you are trying to save has the same name as a currently open workbook.", 'C:\\Program Files (x86)\\Microsoft Office\\Office12\\1033\\XLMAIN11.CHM', 0, -2146827284), None)
我知道这可能是一个简单的修复,但我无法弄清楚。有什么想法吗?
答案 0 :(得分:1)
如果您正在使用pywintypes(或pywin32),那么您将了解Excel如何理解您在其COM API上调用的命令。这绝不会链接到python执行的当前目录。如果没有当前目录,Excel将选择一个(使用自己的“最小惊喜规则”...),它似乎是您打开Excel文件的最后一个目录。正如罗德里戈所说,你最好用完整的路径告诉Excel在哪里保存。