当使用c#编程创建Excel数据透视表并向行标签添加字段时,没有数据显示

本文关键字:数据 添加 标签 字段 显示 编程 创建 透视 Excel | 更新日期: 2023-09-27 17:49:18

我试图以编程方式建立一个基于数据库表的excel数据透视表。我能够构建一个电子表格,并且所有数据库表列都可以作为字段使用。但是向"行标签"框中添加字段不会显示任何数据。

如果我查看列过滤器,它在那里有正确的值,如果我在值框中添加一个字段,电子表格将使用正确的数据更新。所以我知道它连接到数据库,可以得到数据。

我可以手工构建一个数据透视表,并将字段添加到行标签框工作得很好,我试图在代码中做同样的事情。知道为什么我看不到任何数据吗?

下面是我使用的代码:
        var excelApp = new Application();
        excelApp.CellDragAndDrop = false;
        excelApp.DisplayAlerts = true;
        Workbook workBook = excelApp.Workbooks.Add(Type.Missing);
        Worksheet worksheet = workBook.Worksheets.Add();
        worksheet.Name = "Test";
        PivotCache pivotCache = workBook.PivotCaches().Add(XlPivotTableSourceType.xlExternal, Type.Missing);
        pivotCache.Connection = myConnectionString;
        pivotCache.MaintainConnection = true;
        pivotCache.CommandText = "SomeTable";
        pivotCache.CommandType = XlCmdType.xlCmdTable;
        PivotTables pivotTables = worksheet.PivotTables();
        PivotTable pivotTable = pivotTables.Add(pivotCache, excelApp.ActiveCell, "TestingPivot", true, Type.Missing);
        excelApp.Visible = true;

谢谢你的帮助!

当使用c#编程创建Excel数据透视表并向行标签添加字段时,没有数据显示

我想我已经成功了。而不是

PivotCache pivotCache = workBook.PivotCaches().Add(XlPivotTableSourceType.xlExternal, Type.Missing);
使用

:

PivotCache pivotCache = workBook.PivotCaches().Create(XlPivotTableSourceType.xlExternal, Type.Missing, Type.Missing);