通过SSIS转换文件扩展名

时间:2014-05-06 14:52:32

标签: sql-server excel ssis

我有一个通过SAP后端作业传送到文件夹的文件。 它以.MHTML文件的形式提供。我没有在SSIS中看到任何接受此扩展的Source Connections。

如何在启动SSIS包之前转换此扩展名。我只想将其转换为.xls或.xlxs,以便我可以设置Excel Source连接。

该文件每月保存现有文件,因此无需担心文件名更改或类似内容。文件简单以export.mhtml

的形式出现

2 个答案:

答案 0 :(得分:1)

如果您确定只是将扩展名更改为.xls或.xlsx会让您使用数据,那么您可以使用文件系统任务使用不同的扩展名重命名该文件,或使用该任务将文件复制到具有不同扩展名的不同目标文件夹。

答案 1 :(得分:1)

这是一个可能的解决方案。

要将文件从mhtml文档转换为更友好的SSIS格式,您可以使用此VBS脚本(改编自Convert XLS to CSV on command line)。

if WScript.Arguments.Count < 2 Then
    WScript.Echo "Please specify the source and the destination files. Usage: ExcelToCsv <xls/xlsx source file> <csv destination file>"
    Wscript.Quit
End If

csv_format = 50 '50 for normal xls or 6 for csv

Set objFSO = CreateObject("Scripting.FileSystemObject")

src_file = objFSO.GetAbsolutePathName(Wscript.Arguments.Item(0))
dest_file = objFSO.GetAbsolutePathName(WScript.Arguments.Item(1))

Dim oExcel
Set oExcel = CreateObject("Excel.Application")

Dim oBook
Set oBook = oExcel.Workbooks.Open(src_file)

oBook.SaveAs dest_file, csv_format

oBook.Close False
oExcel.Quit

将此文件另存为mhttoxls.vbs或类似文件,您可以按如下所示运行它。

mhttoxls.vbs [sourcemhtFile].mhtml [destinationxlsfile].xls

您可以使用&#34;执行流程&#34;在SSIS中运行它。将可执行文件设置为cmd.exe并将参数设置为

的任务
/c "mhttoxls.vbs [sourcemhtFile].mhtml [destinationxlsfile].xls"

确保您还为文件设置了正确的工作目录。

获得xls文件后,您可以在数据流任务中设置Excel源连接以导入数据。

我希望这有帮助!