0
그래서 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
시간이 지체되어이 게시물을 포맷하면 Stack에서이를 수락합니다. – Steve