0

我正在尝试以编程方式构建基于数据库表的 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;

感谢您的帮助!

4

1 回答 1

0

我想我得到了它的工作。代替

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

用这个:

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

这为我解决了我的问题。

于 2012-12-21T17:24:29.827 回答