none
請問以下的Datagridview轉EXCEL出現錯誤該如何修改 RRS feed

  • 問題

  • 請問各位大大:

          我從Datagridview直接轉存EXCEL 但產生以下錯誤請問該如何解?

    Public Sub ExportDataGridViewToExcel(ByVal DataGridView1 As DataGridView)
            Dim xlApp As Microsoft.Office.Interop.Excel.Application
            Dim xlWorkBook As Microsoft.Office.Interop.Excel.Workbook
            Dim xlWorkSheet 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)
            xlWorkSheet = xlWorkBook.Sheets("sheet1")----->在此出現錯誤


            For i = 0 To DataGridView1.RowCount - 2
                For j = 0 To DataGridView1.ColumnCount - 1
                    For k As Integer = 1 To DataGridView1.Columns.Count
                        xlWorkSheet.Cells(1, k) = DataGridView1.Columns(k - 1).HeaderText
                        xlWorkSheet.Cells(i + 2, j + 1) = DataGridView1(j, i).Value.ToString()
                    Next
                Next
            Next

            xlWorkSheet.SaveAs("D:\test1.xls")
            xlWorkBook.Close()
            xlApp.Quit()

            releaseObject(xlApp)
            releaseObject(xlWorkBook)
            releaseObject(xlWorkSheet)

            MsgBox("You can find the file D:\test1.xls")
        End Sub

    謝謝各位大大

    2015年1月29日 上午 06:32

解答

所有回覆

  • 出錯的那一行程式是在取得名稱為sheet1的工作表, 所以您要確定Excel文件中有沒有名稱為sheet1的工作表, 如果是中文版, 工作表的名稱可能是:工作表1, 或是其他的名稱
    2015年1月29日 上午 06:57
  • 也可以傳索引方式取得,例如:

    .Sheets(1) '第一個工作表, 索引從 1 開始.

    2015年1月29日 上午 07:39
  • 由於不同語系版本標籤名可能會區域化,例如新版的 Excel 是用 工作表1 取代 Sheet1 ,所以照上面建議用 索引值 (index) 取代 會比較保險。

    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2015年1月29日 下午 12:34