zoukankan      html  css  js  c++  java
  • DateTable利用NPOI导出Excel 公共方法

    protected void Export_Excel(DataTable dt)
            {
                string filename = "学生基本信息.xls";
    
                if (Request.UserAgent.IndexOf("firefox") == -1)
                {
                    filename = HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8);
                }
                Response.ContentType = "application/vnd.ms-excel;charset=UTF-8";
                Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}", filename));
    
                Response.Clear();
                //InitializeWorkbook
                InitializeWorkbook();
                //GenerateData
                ISheet sheet1 = hssfworkbook.CreateSheet("Sheet1");
                //写入总标题,合并居中
                IRow row = sheet1.CreateRow(0);
                ICell cell = row.CreateCell(0);
                cell.SetCellValue("学生基本信息");
                ICellStyle style = hssfworkbook.CreateCellStyle();
                style.Alignment = HorizontalAlignment.CENTER;
                IFont font = hssfworkbook.CreateFont();
                font.FontHeight = 20 * 20;
                style.SetFont(font);
                cell.CellStyle = style;
                sheet1.AddMergedRegion(new CellRangeAddress(0, 0, 0, dt.Columns.Count - 1));   //跨列
    
                int r_count = dt.Rows.Count;
                int c_count = dt.Columns.Count;
                //插入列标题
                row = sheet1.CreateRow(1);
                for (int x = 0; x < c_count; x++)
                {
                    cell = row.CreateCell(x);
                    cell.SetCellValue(dt.Columns[x].ColumnName);   //Excel第一列的标题
    
                    sheet1.SetColumnWidth(x, 15*256);  
                }
    
    
                for (int i = 0; i < r_count; i++)
                {
                    row = sheet1.CreateRow(i + 2);//从第二行开始
                    for (int j = 0; j < c_count; j++)
                    {
                        row.CreateCell(j).SetCellValue(dt.Rows[i][j].ToString());
    
                    }
                    
                }
                MemoryStream file = new MemoryStream();
                hssfworkbook.Write(file);
                Response.BinaryWrite(file.GetBuffer());
                Response.End();
            }
            HSSFWorkbook hssfworkbook;
            void InitializeWorkbook()
            {
                hssfworkbook = new HSSFWorkbook();
                DocumentSummaryInformation dsi = PropertySetFactory.CreateDocumentSummaryInformation();
                dsi.Company = "NPOI Team";
                hssfworkbook.DocumentSummaryInformation = dsi;
                SummaryInformation si = PropertySetFactory.CreateSummaryInformation();
                si.Subject = "NPOI SDK Example";
                hssfworkbook.SummaryInformation = si;
            }
        }
  • 相关阅读:
    DNS域名解析中A、AAAA、CNAME、MX、NS、TXT、SRV、SOA、PTR各项记录的作用
    HTTP数据包
    渗透——网络基础
    渗透——linux基础
    渗透——http协议基础
    渗透——CMS基础
    渗透测试流程
    渗透专用术语
    CodeFoeces GYM 101466A Gaby And Addition (字典树)
    关于Windows10内存随时间不断升高问题
  • 原文地址:https://www.cnblogs.com/yuefengkai/p/3449847.html
Copyright © 2011-2022 走看看