Я могу создать сводную таблицу Excel 2010, используя входную рабочую таблицу длиной более 65536 строк. Когда я пытаюсь сделать это в Python, используя win32com.client и «Excel.Application», это завершается ошибкой с сообщением
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 на моем компьютере.
Спасибо.