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;
        }
    }
原文地址:https://www.cnblogs.com/yuefengkai/p/3449847.html