在VB.Net中,可以使用以下代码来按条件拆分工作表:
Dim excelApp As New Excel.Application
Dim workbook As Excel.Workbook = excelApp.Workbooks.Open("路径\文件名.xlsx")
Dim worksheet As Excel.Worksheet = workbook.Worksheets("工作表名")
Dim conditionColumn As Integer = 1 '条件所在的列号
Dim lastRow As Long = worksheet.Cells(worksheet.Rows.Count, conditionColumn).End(Excel.XlDirection.xlUp).Row '最后一行
Dim conditionValue As String '条件的值
Dim newWorksheet As Excel.Worksheet '新的工作表对象
For i As Integer = 2 To lastRow '从第2行开始,因为第1行通常是表头
conditionValue = worksheet.Cells(i, conditionColumn).Value
newWorksheet = workbook.Sheets.Add(After:=workbook.Sheets(workbook.Sheets.Count)) '在最后添加一个新的工作表
newWorksheet.Name = conditionValue '以条件的值作为工作表的名称
worksheet.Rows(i).Copy(newWorksheet.Rows(newWorksheet.Rows.Count)) '复制整行数据到新的工作表
Next
workbook.Save()
workbook.Close()
excelApp.Quit()
完整的示例代码如下:
Imports Excel = Microsoft.Office.Interop.Excel
Module Module1
Sub Main()
Dim excelApp As New Excel.Application
Dim workbook As Excel.Workbook = excelApp.Workbooks.Open("路径\文件名.xlsx")
Dim worksheet As Excel.Worksheet = workbook.Worksheets("工作表名")
Dim conditionColumn As Integer = 1
Dim lastRow As Long = worksheet.Cells(worksheet.Rows.Count, conditionColumn).End(Excel.XlDirection.xlUp).Row
Dim conditionValue As String
Dim newWorksheet As Excel.Worksheet
For i As Integer = 2 To lastRow
conditionValue = worksheet.Cells(i, conditionColumn).Value
newWorksheet = workbook.Sheets.Add(After:=workbook.Sheets(workbook.Sheets.Count))
newWorksheet.Name = conditionValue
worksheet.Rows(i).Copy(newWorksheet.Rows(newWorksheet.Rows.Count))
Next
workbook.Save()
workbook.Close()
excelApp.Quit()
End Sub
End Module
请注意,以上代码使用了Excel对象库,因此需要在项目中添加对"Microsoft Office 16.0 Object Library"的引用。另外,路径、文件名、工作表名可以根据实际情况进行修改。
上一篇:按天、月和周级别进行汇总
下一篇:按条件拆分和配对子字符串