Как получить сумму нескольких столбцов динамически? - PullRequest
0 голосов
/ 05 февраля 2019

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

У меня есть данные в виде данных, и я записываю их в файл Excel.

Я попытался создать диапазон Excel на основе строк, а затем суммировать его, но это не работает.

Excel.Range formatRange3 = (Excel.Range)xlsNewSheet.Range[xlsNewSheet.Cells[2, 6], xlsNewSheet.Cells[rw, 6]].Cells; (Range of rows in one column) 

xlsNewSheet.Cells[rw + 1, 6] = "=sum(" + formatRange3 + " )";

Я получаю это в результате строки =SUM(System.__ComObject), поэтому я думаю, что это невозможно сделать это.

Есть ли способ суммировать столбцы в таблице данных, и они помещают результаты в список, который я затем могу записать в таблицу Excel?

1 Ответ

0 голосов
/ 05 февраля 2019

Проблема в том, что вы строите свою функцию как строку и пытаетесь передать объект Excel.Range, который вызовет ToString(), который в конечном итоге просто даст вам имя типа (в данном случае System.__ComObject).

Вам необходимо получить адрес диапазона, и для этого вы используете метод диапазона Address.Например:

xlsNewSheet.Cells[rw + 1, 6] = "=sum(" + formatRange3.Address + " )";

А если вы используете современную версию C #, вы можете использовать интерполяцию строк, чтобы сделать ее более читабельной:

xlsNewSheet.Cells[rw + 1, 6] = $"=sum({formatRange3.Address})";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...