VB.Net如何将每个'n'行从DataGridView导出到Excel中的不同选项卡

时间:2015-07-23 15:59:01

标签: vb.net excel datagridview

我有一个500行和15列的DGV。 我有5个团队成员。 我必须给我的成员分配相同数量的行。 因此,在上面例如,我必须向DGV的每个团队成员发送100行。前100行将进入Emp#1,行101-200将进入Emp#2,依此类推......

我检查了thisthis,但我甚至无法尝试使用某些代码来实现此逻辑。

我只在vb.net寻求帮助。

提前谢谢。

编辑:我们的预算有点紧张,因此暂时无法投资插件。

1 个答案:

答案 0 :(得分:1)

您可以使用EasyXLS Excel library导出一个包含5张和100行的Excel文件:

' Create an instance of the class that exports Excel files, having 5 sheets
Dim xls As New ExcelDocument(5)

Dim n as Integer = dataGridView.Rows.Count()/5        

For sheet As Integer = 0 To 4
    ' Set sheet names
    xls.easy_getSheetAt(sheet).setSheetName("Emp#" & (sheet+1))

    ' Get the sheet table that stores the data
    Dim xlsTab As ExcelWorksheet = xls.easy_getSheetAt(sheet)
    Dim xlsTable = xlsTab.easy_getExcelTable()
    Dim tableRow = 0

    ' Add data in cells
    For row As Integer = 0 To n - 1
        For column As Integer = 0 To dataGridView.Columns.Count() - 1
            xlsTable.easy_getCell(tableRow, column).setValue( _
                         dataGridView.Rows(n*sheet + row).Cells(column).Value.ToString())
        Next
        tableRow = tableRow + 1
    Next
Next

' Export Excel file
xls.easy_WriteXLSXFile("C:\Samples\Excel.xlsx")

有关格式化以及如何使用此库的详细信息,您可以从解释how to export a DataGridView to Excel的此链接开始。