Исключение при создании сводной таблицы из-за обновления версии Excel

Я разработал приложение в vb.net, которое создает сводную таблицу Excel в отчете.

Версия Excel на моей машине была обновлена ​​до 2010 с 2003 года, и функциональность сводной таблицы не работает.

Я просмотрел звонки для версий 2003 и 2010 и не нашел никакой разницы, кроме 2003 года WkbResult.PivotCaches.Add и 2012 года WkbResult.PivotCaches.Create

Dim WksPivot As Excel.Worksheet = WkbResult.Worksheets("Summary")
Dim WksResult As Excel.Worksheet = WkbResult.Worksheets("Test_Details")
Dim PC As Excel.PivotCache = Nothing
Dim PTS As Excel.PivotTables = Nothing
Dim PT As Excel.PivotTable = Nothing

' This is where it fails even after i changed Add to Create method

PC = WkbResult.PivotCaches.Create(Excel.XlPivotTableSourceType.xlDatabase, WksResult.Range("A:D"))

Я попытался посмотреть ссылки и изменил ссылку на более позднюю версию, которая отображается на моей машине, но я все еще получаю то же исключение.

Вот некоторая часть исключения

System.ArgumentException was unhandled
  Message="The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG))"
  Source=""
  StackTrace:
       at System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)
       at Microsoft.Office.Interop.Excel.PivotCaches.Create(XlPivotTableSourceType SourceType, Object SourceData, Object Version)
       at QCLite.PivotTableManager.CreateResultsPivotTable(Workbook& WkbResult, ListView lstResults) in C:\userdata\Framework\src\06 Utilities\QCLite\QCLite\PivotTableManager.vb:line 23

person Shrikant Khadilkar    schedule 19.09.2012    source источник


Ответы (1)


Похоже, что для Excel 2010 спецификация диапазона как ("A:D") не работает

Я изменил вызов на

Dim TotalRows As Integer = WksResult.UsedRange.Rows.Count

PC = WkbResult.PivotCaches.Add(Excel.XlPivotTableSourceType.xlDatabase, WksResult.Range("A1:D" & TotalRows))

и это сработало как шарм.

Вызов Add также сработал на удивление нормально.

person Shrikant Khadilkar    schedule 19.09.2012