Так что я использую EPPlus для заполнения электронной таблицы данными. При определенных условиях лист будет намеренно удален, оставив только один лист с данными. Код работает без ошибок и запускается, когда все листы остаются, но когда после удаления листов сохраняю и открываю книгу, я получаю серию предупреждений и ошибок. Рабочая книга будет нормально открыта после этого, и мой процесс, похоже, работает нормально. Есть предположения? Удаляет ли листы, вызывающие ошибку OOXML, и мне не хватает шага? Благодарю.EPPlus и удаление листов
Using template As New MemoryStream(My.Resources.POWER_DOCKET_V2_Template)
Using excel As New ExcelPackage(template)
For worksheet = excel.Workbook.Worksheets.Count To 1 Step -1
Dim grid = CType(radPageViewList.Find(Function(page) page.Name = pageGridSheetMap.Find(Function(sheet) sheet.WorksheetName = excel.Workbook.Worksheets(worksheet).Name).PageViewPageName).Controls(0), RadGridView)
Dim workSheetForSelectedGrid As ExcelWorksheet = excel.Workbook.Worksheets(pageGridSheetMap.Find(Function(g) g.RadGridViewName = selectedGid.Name).WorksheetName)
Dim rowRange As String = pageGridSheetMap.Find(Function(r) r.RadGridViewName = grid.Name).RowRange
Dim sheetRange As String = pageGridSheetMap.Find(Function(r) r.RadGridViewName = grid.Name).SheetRange
Dim rightMostColumn As Integer = pageGridSheetMap.Find(Function(r) r.RadGridViewName = grid.Name).RightMostColumn
If exportSelectedGridOnly = True And excel.Workbook.Worksheets(worksheet).Name <> workSheetForSelectedGrid.Name Then
excel.Workbook.Worksheets.Delete(worksheet)
Else
WriteRows(excel.Workbook.Worksheets(worksheet), grid, rowRange, sheetRange, rightMostColumn)
End If
Next worksheet
If Not Directory.Exists(ConfigurationManager.AppSettings("OutlawTempFolder")) Then Directory.CreateDirectory(ConfigurationManager.AppSettings("OutlawTempFolder"))
excel.SaveAs(New FileInfo(filename))
Process.Start(filename)
End Using
End Using
Имея адское время, форматируя это сообщение, поэтому Стек его примет. – Steve