111,098
社区成员




private Microsoft.Office.Interop.Excel.Application _xlApplication;
private Workbook _xlWorkBook;
private Worksheet _xlWorkSheet;
private void ExcelDo()
{
_xlApplication = new Microsoft.Office.Interop.Excel.Application {
Visible = true, //Excel应用是否可见
WindowState = XlWindowState.xlMaximized, //Excel窗口弹出状态
DisplayAlerts = false //是否允许Excel弹出警告
};
_xlWorkBook = _xlApplication.Workbooks.Add("xls"); //对应你的Excel模板路径
_xlWorkSheet = _xlWorkBook.Sheets.get_Item(1); //1, 表示要操作第一个Sheet,Excel所有索引都是从1开始编号的
_xlWorkSheet.Select();
_xlWorkSheet.Cells[1, 1].Value = "MyValue"; //设置单元格文字, 或者
_xlWorkSheet.Range["A1"].Value = "MyValue"; //设置单元格文字
string myValue1 = _xlWorkSheet.Range["A1"].Text; //获取单元格文字, 或者
string myValue2 = _xlWorkSheet.Cells[1, 1].Text;//获取单元格文字
ExitApplication(); //这个是关闭最死的方法,死得透透的,直接_xlApplication.Quit();会有残留进程。
}
//先 using System.Runtime.InteropServices;
[DllImport("User32.dll", CharSet = CharSet.Auto)]
public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID);
//完全退出
public void ExitApplication()
{
_xlApplication.Quit();
GetWindowThreadProcessId(new IntPtr(_xlApplication.Hwnd), out int k);
System.Diagnostics.Process.GetProcessById(k).Kill();
}
如采纳,望给分