110,533
社区成员
发帖
与我相关
我的任务
分享
/// <summary>
/// 关闭excel
/// </summary>
/// <param name="processName">excel进程名</param>
protected static void KillProcess(string processName)
{
System.Diagnostics.Process myproc = new System.Diagnostics.Process();
//得到所有打开的进程
try
{
foreach (Process thisproc in Process.GetProcessesByName(processName))
{
if (!thisproc.CloseMainWindow())
{
thisproc.Kill();
}
}
}
catch (Exception Exc)
{
//throw new Exception("", Exc);
}
}
/// <summary>
/// 输出到excel
/// </summary>
/// <param name="dt">内容所在的DataTable</param>
/// <param name="savepath">保存的地址</param>
/// <param name="nu">无意义</param>
public static void WriteExcel(System.Data.DataTable dt, string savepath, int nu)
{
ApplicationClass appexcel = new ApplicationClass();
Microsoft.Office.Interop.Excel.Application objexcel = new Microsoft.Office.Interop.Excel.Application();
objexcel.Visible = false;
object missing = System.Reflection.Missing.Value;
Workbook wb = objexcel.Workbooks.Add(missing);
Worksheet ws = (Worksheet)wb.Worksheets.get_Item(1);
//Range objRange;
for (int i = 0; i < dt.Columns.Count; i++)
{
ws.Cells[1, i + 1] = dt.Columns[i].ColumnName;
}
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Columns.Count; j++)
{
ws.Cells[i + 2, j + 1] = dt.Rows[i][j].ToString();
}
}
wb.Saved = true;
wb.SaveCopyAs(savepath);
wb.Close();
objexcel.Quit();
appexcel.Quit();
KillProcess("Excel");
}
需要引用Microsoft.Office.Interop.Excel