我正在使用VB.net删除列表框中出现的工作表列表。
在我的研究过程中,我找到了两种删除项目的方法。
1)CType(objWorkBook.Sheets(" sheetname"),Excel.Worksheet)。删除()
2)objWorkSheets.Delete()
我将使用的循环如下所示:
For i As Integer = 0 To workbook_worksheets.Items.Count - 1
Next
如果我使用1),那删除不会做任何事情2)我不知道如何将名称分配给函数,因此只删除特定的工作表。
谢谢
答案 0 :(得分:1)
如果您使用COM接口修改工作簿,可以执行以下操作(来自here):
Application.DisplayAlerts=False
For Each ws in Sheets
If ws.Name = "Master" Then ws.delete
Next
Application.DisplayAlerts=True
COM与Excel交互的速度相当慢,你必须处理所有的UI,如DisplayAlerts,以禁用/启用确认对话框等。您应该考虑使用诸如EEPlus之类的库来创建/编辑没有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