Невозможно сохранить после удаления строк с помощью EPPlus - PullRequest
0 голосов
/ 25 июня 2019

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

В примере кода я пропустил код добавления данных и просто сохранил функцию удаления строки. Когда я запускаю этот код, я получаю сообщение об ошибке, если я пытаюсь удалить строки после 1025.

static void Main(string[] args)
        {
            try
            {
                FileInfo fis = new FileInfo(@"D:\ExcelTest\TestFile.xlsx");
                FileInfo fi = new FileInfo(Path.Combine(fis.DirectoryName, Guid.NewGuid() + fis.Extension));
                fis.CopyTo(fi.FullName);

                using (ExcelPackage excelPackage = new ExcelPackage(fi))
                {
                    ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets["C3R"];

                    int rowstodelete = (171 * 6) - 23;
                    worksheet.DeleteRow(24, rowstodelete, true);
                    excelPackage.Save();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }

System.InvalidOperationException: Ошибка при сохранении файла D: \ ExcelTest \ fabf5a3f-714f-4422-a760-73190f34b951.xlsx ---> System.Collections.Generic.KeyNotFoundException: Указанный ключ отсутствует в словаре. \ R \ n в System.Collections.Generic.Dictionary`2.get_Item (ключ TKey) \ r \ n в OfficeOpenXml.ExcelWorksheet.UpdateRowCellData (StreamWriter sw) \ r \ n в OfficeOpenXml.ExcelWorksheet.SaveXml (потоковый поток) \ r \ n в OfficeOpenXml.ExcelWorksheet.SaveHandler (поток ZipOutputStream, уровень сжатия CompressionLevel, имя строки String) \ r \ n в OfficeOpenXml.Packaging.ZipPackagePart.WriteZip (ZipOutputStream os) \ r \ n в потоке OfficeOpenXml.Pack. \ n в OfficeOpenXml.ExcelPackage.Save () \ r \ n --- Конец трассировки стека внутренних исключений --- \ r \ n в OfficeOpenXml.ExcelPackage.Save () \ r \ n в ConsoleApplication1.Program.Main (String [] args) в C: \ Users \ sm511 \ Documents \ Visual Studio 2015 \ Projects \ ConsoleApplication1 \ Program.cs: строка 27

Файл Excel вызывает проблему

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