VSTO Excel 2007 Сводная таблица, содержащая сводную таблицу в нескольких столбцах - PullRequest
0 голосов
/ 20 сентября 2008

Я использую VSTO с Excel 2007 для динамического создания сводных таблиц и сводных диаграмм. У меня проблема, когда мне нужно иметь сводное поле в нескольких столбцах.

Для этого я создаю сводную таблицу в Excel и сериализую ее свойства в XML-документ, который затем использую для перестройки сводной таблицы.

Т.е.: как значение и как столбец

Это возможно при построении сводной таблицы в Excel. Нашел способ сделать это с помощью C #?

Создание сводной таблицы программным способом

Ответы [ 2 ]

1 голос
/ 20 сентября 2008

Если вы добавите вычисляемое поле в сводную таблицу и сделаете формулу просто именем поля, дубликат которого вам нужен, что позволяет вам использовать одно и то же поле дважды, вычисляемое поле должно быть полем значения.

Возможно, вы можете сделать это программно.

0 голосов
/ 29 сентября 2008

Получив набор данных, вы можете преобразовать его в объект [,] и вставить его в документ 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;
}
...