Почему мой XLSM, XLSX необходимо восстановить после сохранения с помощью EPPLUS? - PullRequest
0 голосов
/ 06 марта 2020

После сохранения файла в EPPLUS, который является XLSM или XLSX, при открытии я получил это сообщение:

Мы обнаружили проблему с некоторым содержимым в YourExcelFile.xlsx. Вы хотите, чтобы мы попытались восстановить столько, сколько мы можем? Если вы доверяете источнику этой книги, нажмите «Да»

. После «Да» мне ответят:

Удаленные записи: Именованный диапазон из /xl/workbook.xml part (Workbook) Error

Как предотвратить появление этих ошибок?

1 Ответ

1 голос
/ 06 марта 2020

Проблема возникла из Именованных диапазонов, найденных здесь:

enter image description here

В моем коде я преобразовываю все ячейки из формул в их значения, поэтому не нужны именованные диапазоны:

foreach (var cell in worksheet.Cells.Where(cell => cell.Formula != null))
{
    cell.Value = cell.Text;
}

Затем я удалил все диапазоны имен. Это решило мою проблему (я больше не получаю всплывающих окон!):

int nameCount = xlPackage.Workbook.Names.Count();
for (int i = 0;i < nameCount;)
{
    xlPackage.Workbook.Names.Remove(xlPackage.Workbook.Names[i].Name.ToString());
    nameCount--;
}

Я, черт возьми, надеюсь, что это кому-нибудь поможет! Я искал дни и дни!

Если есть более эффективный способ сделать это, не стесняйтесь оставлять его ниже.

...