SSIS与Excel表(SSIS with Excel sheets)

2019-10-17 07:52发布

我创建SSIS包从Excel洛达数据到数据库中。 我的问题是那些擅长与密码(我知道密码)在一分钟我正在码的手动删除密码proteced文件。 有没有办法在SSIS实现自动化,因为我有200个Excel文件。

Answer 1:

这可能会或可能无法正常工作根据贵公司的安全策略(或其监控),但你可以写打开所有200个文件,并在一个临时的“无保护”目录保存他们没有密码的快速宏。 然后运行您的SSIS脚本,并完成时,删除所有200个文件(与安全缺失者如橡皮擦 )

Sub ManagePWords()

Dim f(1 To 200) As Variant
Dim i As Integer
Dim origpath As String, temppath As String
Dim wb As Excel.Workbook

   origpath = "c:\where_files_are_now\"
   temppath = "c:\where_files_are_now\unprotected\"

   f(1) = Array("filename1", "password1")
   f(2) = Array("filename2", "password2")
   'keep going for all 200 files

   For i = 1 To UBound(f)
      Set wb = Application.Workbooks.Open(origpath & f(i)(0), , , , f(i)(1))
      wb.SaveAs temppath & f(i)(0) & ".xlsx", , ""
      wb.Close
   Next i

End Sub


Answer 2:

根据MSDN,“你不能连接到一个受密码保护的Excel文件。”

http://msdn.microsoft.com/en-us/library/ms139836(v=sql.105).aspx

有可能是通过在那里你读出的excel表到CSV什么要处理自定义脚本来访问它的方式。 或者,也许到一个对象。 但是,我还没有发现任何帮助呢。

下面是从SQL Server中央一个论坛的帖子可能会有所帮助。 它有一个PowerShell脚本样本(需要登录)

http://www.sqlservercentral.com/Forums/Topic885800-148-1.aspx

不管是什么,我认为你将不得不获取数据进出受保护的Excel工作表,然后才能对其进行处理。

UPDATE:CozyRoc销售连接管理器,可以让你用密码保护的Excel工作表的连接。

http://www.cozyroc.com/ssis/excel-connection



Answer 3:

Vinnies答案给了我另一种思路 - 如果你会用什么样的Excel文件的apdater。

打开用Excel(VBA)保护的文件很容易,然后,你可以导入你的文件中的所有本工作簿或创建它们的副本,是不受保护的,你甚至可以将数据直接复制到SSIS / SQL服务器。

然而,这将是我的建议。 使用Excel来创建你输入一个新的数据源,然后使用任何导入这个新的数据。



文章来源: SSIS with Excel sheets