0

我在 Excel 2007 中使用 VSTO 来动态生成数据透视表和数据透视图。当我需要在多个列中使用 PivotField 时,我遇到了问题。

为此,我在 Excel 中创建了一个数据透视表,并将其属性序列化为一个 XML 文档,然后我用它来重建数据透视表。

即:作为一个值和一个列

在 Excel 中构建数据透视表时,这是可能的。找到使用 C# 的方法了吗?

以编程方式创建数据透视表

4

2 回答 2

1

如果您将计算字段添加到数据透视表,并使公式只是您需要复制的字段的名称,允许您使用相同的字段两次,则计算字段必须是值字段。

或许您可以通过编程方式执行此操作。

于 2008-09-19T22:09:56.950 回答
0

拥有数据集后,您可以将其转换为 object[,] 并将其插入 Excel 文档。然后,您可以将文档保存到磁盘并将其流式传输给用户。

for (int cIndex = 1; cIndex < 1 + columns; cIndex++)
    sheet.Cells.set_Item(4, cIndex, data.Columns[cIndex - 1].Caption);
if (rows > 0)
{

    //select the range where the data will be pasted
    Range r = sheet.get_Range(sheet.Cells[5, 1], sheet.Cells[5 + (rows - 1), columns]);

    //Convert the datatable to an object array
    object[,] workingValues = new object[rows, columns];

    for (int rIndex = 0; rIndex < rows; rIndex++)
        for (int cIndex = 0; cIndex < columns; cIndex++)
            workingValues[rIndex, cIndex] = data.Rows[rIndex][cIndex].ToString();

    r.Value2 = workingValues;
}
于 2008-09-29T15:04:04.557 回答