这几天碰到一个打开Excel并刷新其中数据的问题,研究了下,贴出代码分享下!
static void OpenExcelAndRefreshData(bean.ObjectMonitor om,string fileName)
{
Excel.Application xApp = null;
int k = 0;
try
{
xApp = new Excel.ApplicationClass();
xApp.AskToUpdateLinks = false;
xApp.DisplayAlerts = false;
Excel.Workbook xBook = xApp.Workbooks._Open(fileName,
1, false, Missing.Value, Missing.Value
, Missing.Value, Missing.Value, Missing.Value, Missing.Value
, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
xBook.UpdateLinks = Excel.XlUpdateLinks.xlUpdateLinksAlways;
xApp.Visible = true;
//加载宏关键方法
var addin = xApp.AddIns.Add(@"加载宏的地址");//C:\ProgramData\FCStation\FCExcel.xla
addin.Installed = true;
xBook.RefreshAll();//刷新关键方法
Thread.Sleep(SpaceTime*1000);
xBook.Save();
xBook = null;
IntPtr t = new IntPtr(xApp.Hwnd);
GetWindowThreadProcessId(t, out k);
}
catch (Exception ex)
{
string msg = ex.ToString();
}
finally
{
System.Diagnostics.Process p = System.Diagnostics.Process.GetProcessById(k);
p.Kill();
}
}