C# c语言中的Excel过程#
我在excel进程ID中遇到问题,无法使用excel互操作杀死im 第一种情况,当我打开excel文件时,我的程序正在访问excel中的数据,我打开excel文件的过程与访问的程序的过程相同。因此,当我终止进程ID时,我在使用该程序时打开的另一个excel将终止 第二种情况,如果我不杀死excel进程ID,当我尝试使用用户在我的程序访问之前打开的进程时,当我的程序工作时,如果用户关闭excel,我的程序将终止 是否有一种方法可以使用新流程并仅限制我的工作簿使用,如果其他excel已打开,我如何让它们由其他流程打开 这是我的密码C# c语言中的Excel过程#,c#,.net,excel,excel-2013,excel-interop,C#,.net,Excel,Excel 2013,Excel Interop,我在excel进程ID中遇到问题,无法使用excel互操作杀死im 第一种情况,当我打开excel文件时,我的程序正在访问excel中的数据,我打开excel文件的过程与访问的程序的过程相同。因此,当我终止进程ID时,我在使用该程序时打开的另一个excel将终止 第二种情况,如果我不杀死excel进程ID,当我尝试使用用户在我的程序访问之前打开的进程时,当我的程序工作时,如果用户关闭excel,我的程序将终止 是否有一种方法可以使用新流程并仅限制我的工作簿使用,如果其他excel已打开,我如何让
public static void getExceltable()
{
Microsoft.Office.Interop.Excel.Application m_app;
m_app = new Microsoft.Office.Interop.Excel.Application();
m_app.DisplayAlerts = false;
object misValue = System.Reflection.Missing.Value;
string filename = Core.Class1.importPath;
Workbook workbook=m_app.Workbooks.Open(filename,Type.Missing,
Type.Missing,Type.Missing, Type.Missing,Type.Missing, Type.Missing,
Type.Missing,Type.Missing,Type.Missing,Type.Missing
,Type.Missing,Type.Missing,Type.Missing, Type.Missing);
Worksheet sheet = m_app.Sheets[1];
//// My Excel Process ////
workbook.Close();
int id;
GetWindowThreadProcessId(m_app.Hwnd, out id);
Process excelProcess = Process.GetProcessById(id);
m_app.Quit();
excelProcess.Kill();
}
在退出子office进程之前,应释放与互操作关联的每个对象。这太痛苦了,所以我建议您寻找其他解决方案。Excel interop很混乱。请考虑使用你给我更多的关于EPPLUS PLZ的信息;我现在更新了我的代码,请给我更多的评论@jstreet