【发布时间】:2016-07-01 19:32:47
【问题描述】:
所以我使用 EPPlus 来填充电子表格的数据。在某些情况下,会故意删除一张工作表,只留下一张有数据的工作表。代码在没有错误的情况下运行,并且在所有工作表都留在其中时运行,但是当我删除工作表后,保存并打开工作簿时,我会收到一系列警告和错误。之后工作簿将正常打开,而我的其他进程似乎工作正常。有什么想法吗?是否删除导致 OOXML 无效的工作表,而我错过了一个步骤?谢谢。
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 接受它。
标签: vb.net excel openxml epplus