Python win32com中的workbook.SaveAs出现“参数数量无效”的错误。

3

我已经成功地运行了一个Python脚本数个月。该脚本使用win32com命令编辑模板Excel电子表格,然后将编辑后的工作簿保存为新的.xlsx文件。

results_path = "C:\\Users\\...\\"   
results_title = results_path + input + "_Results.xlsx"

if os.path.exists(template_path):
    xl= win32com.client.gencache.EnsureDispatch("Excel.Application")
    xl.Application.DisplayAlerts = False

    xl.Workbooks.Open(Filename= template_path)
    xl.Application.Cells(2,6).Value = input
    r = 17
    for row in y_test:
        row = str(row)
        row = row[1:]
        row = row[:-1]
        xl.Application.Cells(r,2).Value = row
        r += 1
#           xl.Application.CalculateFullRebuild
#           xl.ActiveWorkbook.SaveAs(Filename = save_title)
#           time.sleep(20)
    r = 17
    for row in prediction:
        row = str(row)
        row = row[1:]
        row = row[:-1]
        xl.Application.Cells(r,3).Value = row
        r += 1
    xl.ActiveWorkbook.SaveAs(Filename = results_title)

脚本没有做出任何更改,但它不再起作用了。有一天它突然停止工作。

这是错误信息:

Traceback (most recent call last):

File "<ipython-input-5-aaef40198ed6>", line 1, in <module>
runfile('C:/Users/Alex/Desktop/Stocks/Python Stock Code/BizNet.py', wdir='C:/Users/Alex/Desktop/Stocks/Python Stock Code')

File "C:\Users\Alex\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 710, in runfile
execfile(filename, namespace)

File "C:\Users\Alex\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 101, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)

File "C:/Users/Alex/Desktop/Stocks/Python Stock Code/BizNet.py", line 99, in <module>
BizNet_test.accuracy_Test(companyInputOrderArray,input,model)

File "C:\Users\Alex\Desktop\Stocks\Python Stock Code\BizNet_test.py", line 125, in accuracy_Test
xl.ActiveWorkbook.SaveAs(results_title)

File "C:\Users\Alex\AppData\Local\Temp\gen_py\3.5\00020813-0000-0000-C000-000000000046x0x1x9\_Workbook.py", line 284, in SaveAs
, AccessMode, ConflictResolution, AddToMru, TextCodepage, TextVisualLayout

com_error: (-2147352562, 'Invalid number of parameters.', None, None)

欢迎来到本站!请查看tourhow-to-ask page,了解更多有关提问的信息,以吸引高质量的回答。您可以编辑您的问题以包含更多信息。由于这是一个COM错误,我想知道是否更新了Windows组件,win32com正在寻找旧版本。您最近更改了Excel版本吗? - cxw
1个回答

2

明白了!!!

我需要删除一个临时缓存文件夹"gen_py",它是错误信息中所提到的文件路径引用的那个。

"C:\Users\Alex\AppData\Local\Temp\gen_py\3.5\00020813-0000-0000-C000-000000000046x0x1x9\_Workbook.py"

我不知道为什么这个方法能够起作用或者错误最初是如何发生的,但现在一切都正常了。


我曾经遇到同样的问题,这个解决方案解决了这个问题。 - tanaque

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接