Как отключить опцию пересчета в Excel с помощью EPPLUS

Мне нужна помощь.

У меня есть очень простой код: http://pastebin.com/xc9xNHLQ

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

Я знаю, что проблема в формуле SUM, но есть ли способ ее отключить?

Использование EPPLU и Studio 2015

Спасибо


person TomTommyTom    schedule 22.11.2016    source источник
comment
Кажется, в книге есть свойство FullCalcOnLoad. Вы проверили, установлено ли для него значение true, и попытались установить для него значение false?   -  person Charles Mager    schedule 22.11.2016
comment
установка его в false не имела никакого значения. Все еще просит сохранить изменения.   -  person TomTommyTom    schedule 23.11.2016


Ответы (1)


должен использовать

package.Workbook.CalcMode = ExcelCalcMode.Manual;

и для расчета вручную вызовите:

package.Workbook.Calculate();

ОБНОВЛЕНИЕ: из комментария «Чарльз Магер» и этого поста вы можете установить для FullCalcOnLoad значение false, а затем рассчитать вручную. это ваш измененный пример кода:

        package.Workbook.FullCalcOnLoad = false;
        worksheet.Cells[RowNumber, 2].Value = "Total:";
        worksheet.Cells[RowNumber, 3].Formula = "SUM(C12:C" + (RowNumber - 1) + ")";
        worksheet.Cells[RowNumber, 2, RowNumber, 3].Style.Font.Name = "Arial";
        worksheet.Cells[RowNumber, 2, RowNumber, 3].Style.Font.Size = 12;
        worksheet.Cells[RowNumber, 2, RowNumber, 3].Style.Font.Bold = true;
        worksheet.Row(RowNumber).Height = 20;
        worksheet.Cells[RowNumber, 2, RowNumber, 3].Style.Border.Right.Style = ExcelBorderStyle.Thin;
        worksheet.Calculate();
        package.Save();
person Alireza Esrari    schedule 22.11.2016
comment
Отлично. попробует и отчитается. - person TomTommyTom; 22.11.2016
comment
к сожалению, не работает так, как я хотел. Больше не просит сохранить его, но тогда содержимое моей ячейки пусто. Я думаю, что мне нужно будет сохранить его в виде возрастающего целого числа, а не использовать SUM. Спасибо за оба предложения. - person TomTommyTom; 23.11.2016
comment
Это сработало для меня. Просто помните, что вы должны вызывать Calculate() ПОСЛЕ добавления данных на лист. - person VDWWD; 23.11.2016
comment
не работает для меня. Это то, что у меня есть на данный момент. pastebin.com/tV6ADQx8 - person TomTommyTom; 24.11.2016
comment
@ Том, я использую package.Workbook.CalcMode = ExcelCalcMode.Manual;, а не package.Workbook.FullCalcOnLoad = false; - person VDWWD; 24.11.2016
comment
@VDWWD отличный материал. Работал как шарм. Большое спасибо. - person TomTommyTom; 24.11.2016