6

我第一次尝试从 VB.net 创建一个 Excel 文件。我已经添加了 Microsoft.Office.Excel 参考,导入 Microsoft.Office.Interop

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim xlApp As Excel.Application
    Dim xlWorkBook As Excel.Workbook
    Dim xlWorkSheet As Excel.Worksheet
    Dim misValue As Object = System.Reflection.Missing.Value

    xlApp = New Excel.ApplicationClass
    xlWorkBook = xlApp.Workbooks.Add(misValue)
    xlWorkSheet = CType(xlWorkBook.Sheets("sheet1"), Excel.Worksheet)
    xlWorkSheet.Cells(1, 1) = "Something here"
    xlWorkSheet.SaveAs("D:\vbexcel.xlsx")

    xlWorkBook.Close()
    xlApp.Quit()
    releaseObject(xlApp)
    releaseObject(xlWorkBook)
    releaseObject(xlWorkSheet)

    MsgBox("Excel file created , you can find the file c:\")

End Sub

错误generetad 在行中:

   xlWorkSheet = CType(xlWorkBook.Sheets("sheet1"), Excel.Worksheet)

   Invalid index. (Exception from HRESULT: 0x8002000B (DISP_E_BADINDEX))
4

2 回答 2

11

也许您的 Excel 版本不会说英语。而“sheet”在当地语言中是一个脏词,它有点用英语;)你的名字暗示英语不是默认语言。使用索引而不是名称来避免这样的事故:

    xlWorkSheet = CType(xlWorkBook.Sheets(1), Excel.Worksheet)
于 2013-02-02T20:11:59.877 回答
2

这也可能发生,因为

Workbook.Worksheets.Count

少于您使用的工作表数量,具体取决于您的 Excel 设置。对我来说,它从 3 张纸开始,但对于同事来说,它从 2 张纸开始。

所以你可以打电话

Workbook.Worksheets.Add()

达到所需的张数

于 2015-06-03T07:23:57.470 回答