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;

        }

    }

你可能感兴趣的:(导出Excel)