【发布时间】:2017-05-27 23:13:31
【问题描述】:
编写 vb.net 脚本(作为 SSIS ETL 的一部分)将 xls 转换为 tsv 文件。我试图使用该名称
空格Imports Microsoft.Excel 包含以下代码。但是,它显示没有
这样的命名空间!使用 Excel 打开关闭并另存为时要包含的名称空间
作为 vb.net 一部分的功能
oExcel.Workbooks.Open
oBook.SaveAs(sTsvPath, -4158)
vb.net代码是
Public Sub Main()
Dim oExcel As Object
Dim oBook As Object
Dim sFileName As String
Dim sFileNameOnly As String
Dim sXlsPath As String
Dim sTsvPath As String
sFileName = CStr(Dts.Variables("User::Xls_File_Name").Value)
sXlsPath = "H:\Xls_Files\" + sFileName
sFileNameOnly = Path.GetFileNameWithoutExtension(sFileName)
sTsvPath = "H:\Xls_Files\" + sFileNameOnly + ".Txt"
oExcel = CreateObject("Excel.Application")
oBook = oExcel.Workbooks.Open(sXlsPath)
oBook.SaveAs(sTsvPath, -4158)
oBook.Close(False)
oExcel.Quit()
Dts.TaskResult = ScriptResults.Success
End Sub
【问题讨论】:
-
您是否尝试搜索“vb.net excel 命名空间”?提示:你想要 Interop 的。
-
是的,Microsoft.Office.Interop.Excel 命名空间只适用于Microsoft office,不适用于vb
-
这不是 .Net 内置的。您必须在机器上安装 Excel,并且必须使用互操作程序集打开一个 excel 实例并告诉它执行您想要的操作。是的,这确实意味着实际启动 Excel。