我可以使用大于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版本。
谢谢。