将数据附加到vb.net中的现有excel文件中

时间:2013-05-22 10:17:16

标签: vb.net

我正在复制gridview值,该值在剪贴板中有超过20列和500多行,并将该值复制到excel文件中。

    Dim excelApp As New Excel.Application
    Dim aWorkbook As Excel.Workbook
    aWorkbook = excelApp.Workbooks.Add()
    excelApp.Visible = False
    Dim strWorkSheetName As String = "MyData"
    Dim aWorkSheet As Excel.Worksheet

    aWorkSheet = aWorkbook.Sheets.Add()


    aWorkSheet.name = TextBox1.Text

    aWorkSheet.Activate()

    Dim intRows As Integer = DataGridView1.SelectedRows.Count
    Dim strRangeString As String = "C4:G" & intRows.ToString



    'Open the existing Template
    Dim _Tpath As String = Application.StartupPath & "\Template.xlsx"
    aWorkbook = excelApp.Workbooks.Add(_Tpath)

    Dim alpha As String
    Dim num As Integer
    Dim cell As String
    Dim count As Integer = 0

    For Each col As DataGridViewColumn In DataGridView1.Columns
        alpha = Convert.ToChar(65 + count)
        num = Convert.ToInt32(7)
        cell = Convert.ToString(alpha & "7")

        aWorkSheet.Range(cell).Value = col.HeaderText.ToString
        count = count + 1
    Next

    For row As Integer = 0 To dt2.Rows.Count - 1
        For col As Integer = 0 To dt2.Columns.Count - 1
            alpha = Convert.ToChar(65 + col)
            num = Convert.ToInt32(8 + row)
            cell = Convert.ToString(alpha & num)

            aWorkSheet.Range(cell).Value = dt2(row)(col).ToString
        Next
    Next

但是现在我想将该剪贴板值粘贴到现有的excel文件(用作模板)上,从第7行及以上的特定位置开始。我已经编写了一些代码,其中值逐个单元地粘贴,这需要花费很多时间。有没有其他方法可以在现有的Excel文件中粘贴gridview值?

1 个答案:

答案 0 :(得分:0)

如果您知道GridView中有多少列和行,那么您可以使用覆盖适当大小区域的Range来使用Worksheet.Paste()。因此,如果您的GridView有5列和500行,并且您希望选择开始向下2行和2列,则可以执行

aWorksheet.Paste(aWorksheet.Range(aWorksheet.Cells(2,2),aWorksheet.Cells(502,7)))