110,571
社区成员
发帖
与我相关
我的任务
分享
#region excel相关
private string excelpath = @"\\10.10.101.17\工作记录表.xlsx";
private Microsoft.Office.Interop.Excel.Application _xlApplication;
private Workbook _xlWorkBook;
private Worksheet _xlWorkSheet;
private void ExcelDo()
{
_xlApplication = new Microsoft.Office.Interop.Excel.Application
{
Visible = false, //Excel应用是否可见
WindowState = XlWindowState.xlMinimized, //Excel窗口弹出状态
DisplayAlerts = false //是否允许Excel弹出警告
};
_xlWorkBook = _xlApplication.Workbooks.Add(excelpath); //对应你的Excel模板路径
_xlWorkSheet = _xlWorkBook.Sheets.get_Item(1); //1, 表示要操作第一个Sheet,Excel所有索引都是从1开始编号的
_xlWorkSheet.Select();
//_xlWorkSheet.Cells[1, 1].Value = "MyValue"; //设置单元格文字, 或者
_xlWorkSheet.Range["A50"].Value = "MyValue1"; //设置单元格文字
//_xlWorkBook.Save();
string myValue1 = _xlWorkSheet.Range["C3"].Text; //获取单元格文字, 或者
string myValue2 = _xlWorkSheet.Cells[5, 3].Text;//获取单元格文字
MessageBox.Show(myValue1 + "\r\n" + myValue2);
_xlWorkSheet.SaveAs(excelpath);
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();
}
#endregion
private void button1_Click(object sender, EventArgs e)
{
ExcelDo();
MessageBox.Show("excel退出了!");
}