如何使用宏将数据从sharepoint导出到xlsm,并且当sharepoint有新数据时数据应该自动处理?
我已经在 xlsm 文件中实现了宏,对于自动过程,我已经使用脚本任务来运行宏代码来实现逻辑 使用ssis。脚本没有给出任何错误,但数据没有刷新。它在 xlsm 文件中显示旧数据。
我已经创建了 xlsm 文件并打开 xlsm 文件,转到那里的查询选项。
我已经给出了如下的 SharePoint 路径详细信息:=SharePoint.Tables("https://share.companyname.com/sites/rdh90e3kh53/rue/customersupport",[Implementation='"2.0",Viewmode="ALL"])
Sub Refresh_Customerconn()
ActiveWorkbook.RefreshALL
End Sub
当我手动执行时,它工作正常,从 SharePoint 获取最新数据并加载到 xlsm 文件中。但是当我在 ssis 中使用脚本任务调用宏时没有获取最新数据。
主要是我想自动处理刷新xlsm文件中的数据。即我已经在 ssis 包中实现了逻辑,并且我将在该包中实现逻辑 使用 sql server 代理作业安排它。但宏在 ssis 脚本任务中不刷新。
string filename = "C:\\Users\\Ravo\\Desktop\\CustomerReport.xlsm";
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook xlWorkBook = xlApp.Workbooks.Open(filename);
xlApp.Visible = false;
xlApp.Run("Customerformat");
xlWorkBook.Close(true);
xlApp.Quit();
Dts.TaskResult = (int)ScriptResults.Success;
确保您的宏完美运行
Sub Refresh_Customerconn()
ThisWorkbook.RefreshAll
End Sub
确保加载 Excel、运行宏和关闭工作簿是按顺序进行的
using System;
using Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;
public void Main()
{
string filename = @"C:\Users\Ravo\Desktop\CustomerReport.xlsm";
Application xlApp = new Application();
Workbook xlWorkBook = null;
try
{
xlWorkBook = xlApp.Workbooks.Open(filename);
xlApp.Visible = false;
// Run the macro to refresh data
xlApp.Run("Refresh_Customerconn");
//Save the workbook if you want to keep the updated data
xlWorkBook.Save();
}
catch (Exception ex)
{
// Handle exceptions
Dts.Events.FireError(0, "Excel Script Task", ex.Message, "", 0);
Dts.TaskResult = (int)ScriptResults.Failure;
return;
}
finally
{
// Clean up
if (xlWorkBook != null)
{
xlWorkBook.Close(true); // Save changes
Marshal.ReleaseComObject(xlWorkBook);
}
xlApp.Quit();
Marshal.ReleaseComObject(xlApp);
}
Dts.TaskResult = (int)ScriptResults.Success;
}