查看完整版本: VB.net 創建具有多個工作表編程的Excel文件 求助(急)
頁: [1]

hildaz 發表於 2014-11-2 06:27 PM

VB.net 創建具有多個工作表編程的Excel文件 求助(急)

下面是我匯出EXCEL的按鈕指令 可是 debug沒錯誤 可是執行時出現附件畫面 不知如何修正 3張表單匯到同一EXCEL

Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click
        Dim xlApp As Microsoft.Office.Interop.Excel.Application
        Dim xlWorkBook As Microsoft.Office.Interop.Excel.Workbook
        Dim xlWorkSheet1 As Microsoft.Office.Interop.Excel.Worksheet
        Dim xlWorkSheet2 As Microsoft.Office.Interop.Excel.Worksheet
        Dim xlWorkSheet3 As Microsoft.Office.Interop.Excel.Worksheet
        Dim misValue As Object = System.Reflection.Missing.Value
        Dim i As Integer
        Dim j As Integer

        xlApp = New Microsoft.Office.Interop.Excel.Application
        xlWorkBook = xlApp.Workbooks.Add(misValue)
        xlWorkSheet1 = xlWorkBook.Sheets("sheet1")
        xlWorkSheet1 = xlWorkBook.Sheets("sheet2")
        xlWorkSheet1 = xlWorkBook.Sheets("sheet3")


        For i = 0 To DataTable1DataGridView.RowCount - 1
            For j = 0 To DataTable1DataGridView.ColumnCount - 1
                For k As Integer = 1 To DataTable1DataGridView.Columns.Count
                    xlWorkSheet1.Cells(1, k) = DataTable1DataGridView.Columns(k - 1).HeaderText
                    xlWorkSheet1.Cells(i + 2, j + 1) = DataTable1DataGridView(j, i).Value.ToString()
                Next
            Next
        Next
        For i = 0 To DataTable2DataGridView.RowCount - 1
            For j = 0 To DataTable2DataGridView.ColumnCount - 1
                For k As Integer = 1 To DataTable2DataGridView.Columns.Count
                    xlWorkSheet1.Cells(1, k) = DataTable2DataGridView.Columns(k - 1).HeaderText
                    xlWorkSheet1.Cells(i + 2, j + 1) = DataTable2DataGridView(j, i).Value.ToString()
                Next
            Next
        Next
        For i = 0 To DataTable3DataGridView.RowCount - 1
            For j = 0 To DataTable3DataGridView.ColumnCount - 1
                For k As Integer = 1 To DataTable3DataGridView.Columns.Count
                    xlWorkSheet1.Cells(1, k) = DataTable3DataGridView.Columns(k - 1).HeaderText
                    xlWorkSheet1.Cells(i + 2, j + 1) = DataTable3DataGridView(j, i).Value.ToString()
                Next
            Next
        Next
        xlWorkSheet1.SaveAs("D:\報表\銷貨明細單.xlsx")
        xlWorkBook.Close()
        xlApp.Quit()

        releaseObject(xlApp)
        releaseObject(xlWorkBook)
        releaseObject(xlWorkSheet1)

        Dim res As MsgBoxResult
        res = MsgBox("檔案匯出完成,是否預覽?", MsgBoxStyle.YesNo)
        If (res = MsgBoxResult.Yes) Then
            Process.Start("D:\報表\銷貨明細單.xlsx")
        End If
    End Sub
    Private Sub releaseObject(ByVal obj As Object)
        Try
            System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
            obj = Nothing
        Catch ex As Exception
            obj = Nothing
        Finally
            GC.Collect()
        End Try
    End Sub


...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>
頁: [1]