Как создать формулу (SUBTOTAL) под таблицей - PullRequest
0 голосов
/ 08 февраля 2019

Я использую EPPLus для создания файла Excel с таблицей в нем.Создание файла Excel и таблицы работает как чудо, используя:

worksheet.Cells["A1"].LoadFromCollection(rows, true, TableStyles.Light12);

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

Я использую эту строку кода для создания формулы:

worksheet.Cells["E"+(rows.Count+2).ToString()].Formula = "=SUBTOTAL(109;[TurnoverCurrent])";

Я уже подтвердил, что янацеливаясь на правильную ячейку, и если я вставлю просто строку вместо формулы, это сработает.Поэтому я чувствую, что не правильно использую метод формулы.Как мне получить СУБТОТАЛЬНУЮ формулу после моего стола?

Ответы [ 2 ]

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

Три вещи выпрыгивают из меня, и я не уверен, исправлю ли или исправлю это, но я подумал предложить.

1) Ваша формула subtotal находится прямо рядом с таблицей -- когда Excel рендерит XML, он пытается добавить это в таблицу и волнуется, потому что он ссылается на себя?Другими словами, формула промежуточного итога теперь является частью таблицы и добавляет себя?

2) когда я использую промежуточный итог, я использую запятую, а не точку с запятой

3) вы не делалиссылка на имя таблицы в вашей формуле.Так как это новый лист, можно попробовать Table1.Если вы действительно хотите быть модным, вы можете посмотреть таблицу и найти ее название.Я бы не стал.

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

worksheet.Cells[rows.Count + 3, 5].Formula = "=SUBTOTAL(109,Table1[TurnoverCurrent])";
0 голосов
/ 08 февраля 2019

Изменить

worksheet.Cells["E" + (rows.Count+2).ToString()].Formula = "=SUBTOTAL(109;[TurnoverCurrent])";

на

worksheet.Cells["E" + (rows.Count+2).ToString()].Formula = "SUBTOTAL(109;[TurnoverCurrent])";

Используйте гайку "="

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...