saveAs for Excel 文件在 VB.NET 中不起作用

Posted

技术标签:

【中文标题】saveAs for Excel 文件在 VB.NET 中不起作用【英文标题】:saveAs for Excel file not working in VB.NET 【发布时间】:2018-04-19 17:17:48 【问题描述】:

我有一个简单的 VB.NET 路由,可以将文本文件打开到 Excel 中,然后将其另存为 Excel 文件 (.xlsx)。打开的作品文件,但保存失败,出现 NullReference 异常。

 FileName = "C:\Temp\BOM of " & AssyName & ".txt"
    Dim xlApp As New Excel.Application
    Dim xlWorkBook As Excel.Workbook = Nothing
    Dim xlWorkSheet As Excel.Worksheet


    xlApp.Workbooks.OpenText(FileName, _
       StartRow:=1, _
       DataType:=Excel.XlTextParsingType.xlDelimited, _
       TextQualifier:=Excel.XlTextQualifier.xlTextQualifierNone, _
       Comma:=True)
    xlApp.Visible = True

    xlWorkBook.SaveAs("C:\Temp\BOM of " & AssyName & ".xlsx", Excel.XlFileFormat.xlWorkbookNormal)
    xlWorkBook.Close(True)
    xlApp.Quit()

不确定这里发生了什么。图像有失败消息。

谢谢。VB>NET Failure on saving an Excel file.

【问题讨论】:

What is a NullReferenceException, and how do I fix it?的可能重复 【参考方案1】:

看起来Dim xlWorkBook As Excel.Workbook = Nothing 是合乎逻辑的原因。

在您发布的不完整代码中,您没有将xlWorkbook 设置为任何内容。所以当你去保存时,xlWorkbook 字面意思是Nothing

未测试,但考虑:

xlWorkBook = xlApp.Workbooks.OpenText(FileName, _
       StartRow:=1, _
       DataType:=Excel.XlTextParsingType.xlDelimited, _
       TextQualifier:=Excel.XlTextQualifier.xlTextQualifierNone, _
       Comma:=True)

【讨论】:

这就是问题所在。谢谢。

以上是关于saveAs for Excel 文件在 VB.NET 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

多次使用 SaveAs 会冻结 Excel

保存时无法访问 C# excel SaveAs 文件

Excel VBA Saveas 函数损坏文件

如何修改 Excel 2007 的代码以使用 SaveAs

vb.NET SaveAs 不保存所有 Excel 数据

自动填充只读 Excel 2010 xlsm SaveAs 文件名框