Excel 2007 で VSTO を使用して、ピボットテーブルとピボットグラフを動的に生成しています。複数の列に PivotField が必要な場合に問題が発生します。
これを実現するために、Excel でピボットテーブルを作成し、そのプロパティを XML ドキュメントにシリアル化し、それを使用してピボットテーブルを再構築します。
すなわち: 値および列として
これは、Excel でピボットテーブルを作成するときに可能です。C# を使用してこれを行う方法を見つけましたか?
Excel 2007 で VSTO を使用して、ピボットテーブルとピボットグラフを動的に生成しています。複数の列に PivotField が必要な場合に問題が発生します。
これを実現するために、Excel でピボットテーブルを作成し、そのプロパティを XML ドキュメントにシリアル化し、それを使用してピボットテーブルを再構築します。
すなわち: 値および列として
これは、Excel でピボットテーブルを作成するときに可能です。C# を使用してこれを行う方法を見つけましたか?
計算フィールドをピボット テーブルに追加し、同じフィールドを 2 回使用できるようにするための複製が必要なフィールドの名前だけを数式にする場合、計算フィールドは値フィールドである必要があります。
プログラムでこれを行うことができます。
データセットを取得したら、それをオブジェクト [,] に変換し、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;
}