我有一个 Excel 文件,它从数据库表中获取外部数据。我需要自动刷新文件并通过电子邮件发送。我打算使用 SSIS 脚本任务来运行一些 VB 脚本,这些脚本将打开文件、刷新数据、保存并关闭(显然不启动应用程序)。然后我将使用电子邮件任务通过电子邮件发送文件。我所需要的只是刷新文件的脚本,并且在 VB 或 C# 中完全是菜鸟,我不得不问是否有人有一个脚本可以做到这一点,我可以为我的文件定制并在我的脚本任务中使用它。 我将不胜感激任何提示! 多谢, 弗拉德
希望这是您正在寻找的
' 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
旧帖子,但 4M01 的答案帮助了我很多。
就我而言,我必须在打开工作簿后立即睡眠,以确保文件正确加载。
即
oWorkbook = oExcel.Workbooks.Open("absolute path to your file")
Threading.Thread.Sleep(3000)
oWorkbook.RefreshAll
注释在 VS 2015 中也不再需要设置。所以只需删除“set”即可使代码正常工作。
就我而言(连接到 MS SQL DB),我必须取消选中“启用后台刷新”选项才能正常工作。
Excel:数据 > 连接 > 属性 >(取消选中)启用后台刷新
这可能不完全符合您的需求,但如果它对您或某人有帮助,我就可以使用一个简单的
执行流程任务
与
需要将其添加到 SSIS 的导入部分:
导入 Microsoft.Office.Interop.Excel