在Python和Excel 2010中使用Win32时如何克服65536 Excel行限制

时间:2019-11-07 15:33:37

标签: python excel win32com

我可以使用大于65536行的输入工作表来创建Excel 2010数据透视表。当我使用win32com.client和'Excel.Application'在Python中尝试此操作时,失败并显示消息

Exception: Type mismatch.

这仍然是一个模糊的消息,但是65536是最佳选择,这一事实向我表明,代码无法处理超过此行数的Excel工作表范围。

import win32api
import win32com.client
import pythoncom
Excel   = win32com.client.gencache.EnsureDispatch('Excel.Application')

wb = Excel.Workbooks.Open("output.xlsx")
sh_data = wb.Worksheets("DATA")
cl1 = sh_data.Cells(1,1)
cl2 = sh_data.Cells(65537,6)

PivotSourceRange = sh_data.Range(cl1,cl2)

sh_output = wb.Worksheets("OUTPUT")
outlc=sh_output.Cells(1,1)
PivotTargetRange=  sh_output.Range(outlc,outlc)
PivotTableName = 'ReportPivotTable'
try:
    PivotCache = wb.PivotCaches().Create(SourceType=win32c.xlDatabase, SourceData=PivotSourceRange, Version=win32c.xlPivotTableVersion14)
except pythoncom.com_error as error:
    print(error)
    print("Exception: " + win32api.FormatMessage(error.excepinfo[5]))

这不是完整的代码段,并且代码在PivotCache行失败,并带有:

(-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2147352571), 3)
Exception: Type mismatch.

我可以强制其将output.xlsx文件视为Excel 2010文件来解决此问题吗? Excel 2010是计算机上唯一的Excel版本。

谢谢。

0 个答案:

没有答案