【问题标题】:Exception from HRESULT: 0x800A03EC when adding a sheet to Excel workbookHRESULT 异常:将工作表添加到 Excel 工作簿时出现 0x800A03EC
【发布时间】:2015-01-21 17:21:40
【问题描述】:

当我尝试将我的 datagridview 组件保存到 excel 时出现错误

Exception from HRESULT: 0x800A03EC

围绕这条线:xlWorkSheet = xlWorkBook.Sheets.Add("[Sheet1]")

这是我的代码的一部分:

    Dim xlWorkBook As Microsoft.Office.Interop.Excel.Workbook
    Dim xlApp As Microsoft.Office.Interop.Excel.Application
    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.Add("[Sheet1]")


    For i = 0 To DataGridView1.RowCount - 1
        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
            Next
        Next
    Next

    xlWorkSheet.SaveAs("c:\users\500998877\documents\bg\dtgv1.xlsx")
    xlWorkBook.Close()
    xlApp.Quit()

    Process.Start("c:\users\500998877\documents\bg\dtgv1.xlsx")

【问题讨论】:

  • 好的,查看Worksheets.Add() method的参数类型
  • 反正我是 vb 新手,不知道应该添加什么到 xlWorkSheet = xlWorkBook.Sheets.Add("Sheet1", , ,)
  • 我不知道为什么要添加更多参数,因为默认值是货物
  • 问题是你传递的是"Sheet1"的字符串名称,而不是Sheet类型的对象。

标签: vb.net excel


【解决方案1】:

未经测试,但请尝试以下操作:

xlWorkSheet = xlWorkBook.Sheets.Add
xlWorksheet.Name = "MyNewSheet"

请注意,可能还有一个默认的“Sheet1”,其中包含默认的 Excel 实例。

您不妨从this MSDN reference page开始您的研究

【讨论】:

  • 谢谢,它工作! :) 无论如何,我找到了另一种方式:xlWorkBook = xlApp.Workbooks.Add(misValue) xlWorkSheet = xlWorkBook.Sheets.Add()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-05
  • 1970-01-01
  • 1970-01-01
  • 2017-12-21
  • 2015-04-08
相关资源
最近更新 更多