1

クリップボードに 20 列以上、500 行以上ある gridview 値をコピーし、その値を 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 ファイル (テンプレートとして使用) に貼り付けたいと考えています。値がセルごとに貼り付けられているコードをいくつか書きましたが、多くの時間がかかります。既存の Excel ファイルに gridview 値を貼り付ける他の方法はありますか?

4

1 に答える 1