使用 VB.NET 在导出的文档上创建枢轴 Table

Using VB.NET to create a Pivot Table on an Exported Document

我有一个竖线分隔的文本文件,我需要阅读它,将其转换为预先格式化的 Excel 文档 - 完成单独的数据透视表 table sheet - 然后保存。

读取文件并将其另存为 Excel 文档已解决,但我似乎无法使枢轴 table 工作。我在网上找到了各种教程,但 none 实际上对我有用。

I've reordered the arguments in the order they present, but I get the exact same late binding error.

当 VS 抱怨并声明:"Option Strict On disallows late binding" 时,它告诉您您正在尝试引用某些方法或 属性 在它只能识别为类型 [=13= 的对象上] 或执行无效的隐式转换。

现在来看问题代码

Dim ptTable As Excel.PivotTable = xlPivotSheet.PivotTables.Add(ptCache, ptLocation, "Pivot")

您之前定义的:

Dim xlPivotSheet As Excel.Worksheet

因此,xlPivotSheet 不是罪魁祸首,因为 VS 知道它是类型 Excel.Worksheet

下一个合乎逻辑的嫌疑人是 PivotTables returns。当您键入该代码时,您应该已经看到类似这样的内容:

您是否注意到在您输入代码时 Intellisense 给您的小小帮助?你确实输入了代码,对吧?还是您 copy-paste 来自某个使用 Option Strict Off 发布代码的互联网地雷站点的示例?

无论如何,您现在知道应该将 xlPivotSheet.PivotTables 的结果转换为 Excel.PivotTables 接口以启用早期绑定,从而使用 Add 方法而不会出现该讨厌的错误。

Dim ptTable As Excel.PivotTable = DirectCast(xlPivotSheet.PivotTables,Excel.PivotTables).Add( ....

推荐阅读:Using IntelliSense

我最终通过将问题行更改为以下内容来完成此任务。

Dim Table As Excel.PivotTable = xlPivotSheet.PivotTableWizard(Excel.XlPivotTableSourceType.xlDatabase,
 Range,Location, "Title Here",True, True, True, False)