zoukankan      html  css  js  c++  java
  • 导出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
                }
    
            }
    

      

  • 相关阅读:
    软件工程(2018)结对编程第二次作业
    软件工程(2019)结对编程第一次作业
    软件工程(2019)第三次个人作业
    软件工程(2019)第二次作业
    软件工程(2019)第一次作业
    实用的小工具
    php中需要注意的函数(持续更新)
    sql 防注入(更新问题)
    laravel 中将一对多关联查询的结果去重处理
    调试location指令时,直接让location输出文本
  • 原文地址:https://www.cnblogs.com/zhang9418hn/p/2932502.html
Copyright © 2011-2022 走看看