使用VB.net取消特定的工作表
我正在使用VB.net删除名称出现在列表框中的工作表列表。
在我的研究中,我find了两种删除项目的方法。
1)CType(objWorkBook.Sheets(“sheetname”),Excel.Worksheet).Delete()
2)objWorkSheets.Delete()
我将使用的循环如下所示:
For i As Integer = 0 To workbook_worksheets.Items.Count - 1 Next
如果我使用1),那么删除不会做任何事情和2)我不知道如何分配名称的function,所以只有特定的工作表被删除。
谢谢
如果你使用COM接口来修改你的工作簿,你可以这样做(从这里 ):
Application.DisplayAlerts=False For Each ws in Sheets If ws.Name = "Master" Then ws.delete Next Application.DisplayAlerts=True
COM与Excel进行交互的速度相当缓慢,而且你必须处理所有的用户界面,比如DisplayAlerts,禁用/启用确认对话框等等。 您应该考虑使用诸如EEPlus之类的库来创build/编辑没有COM的xlsx和xlsm文件。 (这也意味着您的应用程序可以在没有Excel或不同版本的Excel等的机器上运行)
使用EEPlus它看起来像这样:
Dim workbookFileInfo = New FileInfo("Workbook.xlsx") Using excelPackage = New ExcelPackage(workbookFileInfo) Dim worksheet = excelPackage.Workbook.Worksheets.SingleOrDefault(Function(x) x.Name = "Worksheet1") excelPackage.Workbook.Worksheets.Delete(worksheet) excelPackage.Save() End Using