我有一个Excel文件,它从数据库表中获取外部数据。我需要自动刷新文件并通过电子邮件发送。我打算使用SSIS脚本任务来运行一些VB脚本,这些脚本将打开文件、刷新数据、保存和关闭(显然不会打开应用程序)。然后我将使用电子邮件任务通过电子邮件发送文件。我所需要的只是刷新文件的脚本,在VB或C#中完全没有。我必须问是否有人有这样的脚本,我可以为我的文件自定义并在脚本任务中使用。如果有任何提示,我将不胜感激!非常感谢,Vlad
希望这就是您想要的
' Create an Excel instance
Dim oExcel
Set oExcel = CreateObject("Excel.Application")
' Disable Excel UI elements
oExcel.Visible = True
oExcel.DisplayAlerts = False
oExcel.AskToUpdateLinks = False
oExcel.AlertBeforeOverwriting = False
Set oWorkbook = oExcel.Workbooks.Open("absolute path to your file")
oWorkbook.RefreshAll
oWorkbook.Save
oExcel.Quit
Set oWorkbook = Nothing
Set oExcel = Nothing
在我的情况下(连接到MS SQL DB),我必须取消选中"启用后台刷新"选项才能正常工作。
Excel:数据>连接>属性>(取消选中)启用后台刷新
以前的帖子,但4M01的答案帮了我很多。
在我的情况下,我必须在打开工作簿后立即入睡,以确保文件正确加载。
即
oWorkbook = oExcel.Workbooks.Open("absolute path to your file")
Threading.Thread.Sleep(3000)
oWorkbook.RefreshAll
请注意,VS 2015中不再需要设置。因此,只需删除"set"即可使代码正常工作。
这可能不完全符合您的需求,但如果它对您或某人有帮助,我可以使用一个简单的
执行过程任务
使用
- 可执行为/。。路径/Excel.exe和
- 参数作为要打开的所需文件(完整路径)