2 / 2 / 3
Регистрация: 30.06.2015
Сообщений: 177
1

COM-объект Сводная таблица Excel

21.07.2016, 11:30. Показов 1183. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток. Вопрос. Не могу разобраться почему не срабатывает код и выдает ошибку в строке disp_e_typemismath
Помогите разобраться, что да как.
Такой же код учувствует в другой программке, и там все ровно работает.




C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
  int lr = wb1.Sheets[1].Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Row;
            string lr1 = "A1:W" + lr.ToString();
            Excel.Range oRange = wsh1.get_Range(lr1,Type.Missing);
 
           
            wshPivot = (Excel.Worksheet)wb1.Worksheets.Add();
 
            wshPivot.Name = "PivotTable";
                   
            Excel.Range oRange2 = wshPivot.Cells[3, 2];
 
 
 
 
            Excel.PivotCache oPivotCache = (Excel.PivotCache)wb1.PivotCaches().Create(Excel.XlPivotTableSourceType.xlDatabase, oRange); //Вот здесь ошибка.       Работет если явно задать координаты "Лист1!$A$1:$W$79584"
            Excel.PivotTable oPivoTable = (Excel.PivotTable)wshPivot.PivotTables().Add(oPivotCache, oRange2, "PivotTable");
            
            Excel.PivotField oPivotField = (Excel.PivotField)oPivoTable.PivotFields("Статус");
            oPivotField.set_Subtotals(1, false);
            oPivotField.Orientation = Excel.XlPivotFieldOrientation.xlRowField;
            oPivotField.Position = 1;         
 
 
            Excel.PivotField OSZPivotField = (Excel.PivotField)oPivoTable.PivotFields("Референс");
            OSZPivotField.set_Subtotals(1, false);
            OSZPivotField.Orientation = Excel.XlPivotFieldOrientation.xlDataField;
            OSZPivotField.Function = Excel.XlConsolidationFunction.xlCount;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.07.2016, 11:30
Ответы с готовыми решениями:

Сводная таблица DataGridView через LINQ
Здраствуйте. Есть 2-е datagridview. Одна общая, другая сводная. При заполнении общей таблицы...

EXCEL 2010 сводная таблица расчетное поле
Добрый день! Возникла следующая проблема -необходимо добавить расчетные строки в сводную...

Режимы Сводная таблица и Сводная диаграмма в access 2013
куда делись режимы Сводная таблица и Сводная диаграмма в access 2013? Остались только режимы...

Как из Range поместить данные в массив, если объект таблица excel создается в VB?
Пусть имеем объект таблицу Excel созданную в VB Set xl = CreateObject('excel.sheet') ...

1
996 / 355 / 135
Регистрация: 27.10.2006
Сообщений: 764
21.07.2016, 20:59 2
1) А почему люди, которые задают вопрос по Excel никогда не выкладывают свой Excel файл, с которым можно было бы потестировать код программы? Важную информацию можно заменить на 1

2) у вас переменная oRange - это объёкт (диапазон ячеек, но это объект). А "Лист1!$A$1:$W$79584" - это строка с адресом диапазона.
Думаю нужно так:
- либо oRange.Address //или возможно так oRange.Address()
- либо oRange.Address(external=True) //здесь добавиться полный путь, т.е. добавиться название листа

но это точно сработало бы в VBA, а в C# не знаю, нужно тестировать, но файла Excel нет. Так что предоставляю эту возможность вам, раз вы хотите, чтобы вам указали направление, а не дали готовое решение.
0
21.07.2016, 20:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.07.2016, 20:59
Помогаю со студенческими работами здесь

Сводная таблица
Необходимо решить простые задания, не могу сделать задания № 3,4,5,6 , пожалуйста помогите.

Сводная таблица
Доброго дня. Подскажите, что нужно сделать, чтобы данные в сводной таблице расположились рядом в...

Сводная таблица
Требуется сверстать таблицу такого вида: Если исключить поля итогов, то все остальное...

Сводная таблица
Добрый день! Подскажите, пожалуйста, как сделать сводную таблицу к данным файла во вложении...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru