导出Excel

 private void ToExcel(System.Data.DataTable dt_Data, string fileName)
        {
            fileName = fileName + ".xls";
            try
            {
                HttpResponse resp;
                resp = Page.Response;

                resp.Buffer = true;
                resp.ClearContent();
                resp.ClearHeaders();
                resp.Charset = "utf-8";
                resp.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
       resp.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));//否则在IE8下乱码
                resp.ContentEncoding = System.Text.Encoding.Default;//设置输出流为简体中文   
                resp.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。 
                string colHeaders = "", ls_item = "";

                for (int i = 0; i < dt_Data.Columns.Count; i++)
                {
                    if (i == (dt_Data.Columns.Count - 1))//最后一列,加n
                    {
                        colHeaders += dt_Data.Columns[i].Caption.ToString() + "\n";
                    }
                    else {
                        colHeaders += dt_Data.Columns[i].Caption.ToString() + "\t";
                    }
                }

              
                resp.Write(colHeaders);

                //向HTTP输出流中写入取得的数据信息
                //逐行处理数据 
                for (int i = 0; i < dt_Data.Rows.Count; i++)
                {

                    for (int j = 0; j < dt_Data.Columns.Count; j++)
                    {
                        //  ls_item += dt_Data.Rows[i][dt_Data.Columns[i].Caption].ToString().Trim() + "\n";

                        //  ls_item += dt_Data.Rows[i][dt_Data.Columns[i].Caption].ToString().Trim() + "\t";
                        if (j == dt_Data.Columns.Count - 1)//最后一列,加n
                        {
                            ls_item += dt_Data.Rows[i][dt_Data.Columns[j].Caption].ToString().Trim() + "\n";
                        }
                        else
                        {
                            ls_item += dt_Data.Rows[i][dt_Data.Columns[j].Caption].ToString().Trim() + "\t";
                        }
                    }
                    resp.Write(ls_item);
                  
                    ls_item = "";
                }
             
                resp.End();


            }
            catch (Exception ex)
            {
            }
            finally
            {

                #region 强行杀死最近打开的Excel进程

                System.Diagnostics.Process[] excelProc = System.Diagnostics.Process.GetProcessesByName("EXCEL");
                System.DateTime startTime = new DateTime();
                int m, killId = 0;
                for (m = 0; m < excelProc.Length; m++)
                {
                    if (startTime < excelProc[m].StartTime)
                    {
                        startTime = excelProc[m].StartTime;
                        killId = m;
                    }
                }
                if (excelProc.Length > 0)
                {
                    if (excelProc[killId].HasExited == false)
                    {
                        excelProc[killId].Kill();
                    }
                }
                #endregion
            }

        }

  

原文地址:https://www.cnblogs.com/zhang9418hn/p/2932502.html