使用VB.net选择特定的工作表

时间:2016-04-06 14:04:00

标签: vb.net excel

我正在使用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)我不知道如何将名称分配给函数,因此只删除特定的工作表。

谢谢

1 个答案:

答案 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