【问题标题】:VB.Net How to export every 'n' number of rows from DataGridView to different tabs in ExcelVB.Net如何将DataGridView中的每'n'行导出到Excel中的不同选项卡
【发布时间】:2015-10-14 01:27:31
【问题描述】:

我有一个 500 行 15 列的 DGV。 我有5个团队成员。 我必须为我的成员分配等量的行。 所以,在上面例如我必须从 DGV 向我的每个团队成员发送 100 行。前 100 行将转到 Emp#1,第 101 - 200 行将转到 Emp#2,依此类推..

我检查了thisthis,但我什至不能完全尝试一些代码来使这个逻辑工作。

我只在 vb.net 中寻求帮助。

提前谢谢。

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

【问题讨论】:

    标签: vb.net excel datagridview


    【解决方案1】:

    您可以使用EasyXLS Excel library 导出一个 Excel 文件,其中包含 5 个工作表和每个 100 行:

    ' 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的链接开始。

    【讨论】:

    • 嗨,Alex,你的解决方案是一个很好的解决方案 - 我忘了提到我们的预算也有点紧,这次无法投资 EasyXLS 库。我目前缺少的任何开源逻辑?不过,感谢您的努力和帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-15
    • 2013-10-14
    • 1970-01-01
    • 2013-07-04
    • 1970-01-01
    • 2013-09-28
    相关资源
    最近更新 更多