使用 SSIS 脚本任务刷新 Excel

问题描述 投票:0回答:5

我有一个 Excel 文件,它从数据库表中获取外部数据。我需要自动刷新文件并通过电子邮件发送。我打算使用 SSIS 脚本任务来运行一些 VB 脚本,这些脚本将打开文件、刷新数据、保存并关闭(显然不启动应用程序)。然后我将使用电子邮件任务通过电子邮件发送文件。我所需要的只是刷新文件的脚本,并且在 VB 或 C# 中完全是菜鸟,我不得不问是否有人有一个脚本可以做到这一点,我可以为我的文件定制并在我的脚本任务中使用它。 我将不胜感激任何提示! 多谢, 弗拉德

excel vbscript ssis refresh
5个回答
9
投票

希望这是您正在寻找的

 ' 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

1
投票

旧帖子,但 4M01 的答案帮助了我很多。

就我而言,我必须在打开工作簿后立即睡眠,以确保文件正确加载。

oWorkbook = oExcel.Workbooks.Open("absolute path to your file")
Threading.Thread.Sleep(3000)
oWorkbook.RefreshAll

注释在 VS 2015 中也不再需要设置。所以只需删除“set”即可使代码正常工作。


1
投票

就我而言(连接到 MS SQL DB),我必须取消选中“启用后台刷新”选项才能正常工作。

Excel:数据 > 连接 > 属性 >(取消选中)启用后台刷新


0
投票

这可能不完全符合您的需求,但如果它对您或某人有帮助,我就可以使用一个简单的

执行流程任务

  • 可执行为 /..path../Excel.exe 和
  • 参数为要打开的所需文件(完整路径)

0
投票

需要将其添加到 SSIS 的导入部分:

导入 Microsoft.Office.Interop.Excel

© www.soinside.com 2019 - 2024. All rights reserved.