• 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;
            }
        }
  • 相关阅读:
    C++第11课 迭代器与仿函数 (二)
    C++第11课 迭代器与仿函数 (一)
    Python语法的应用
    Python面试
    02_Python之基础编程
    01_Python之_学前准备
    Sorting It All Out (拓扑排序) poj1094
    Codeforces Global Round 13 Editorial补题
    今天做题做到了并查集相关的内容~简单介绍一下关于并查集的东西
    留言板
  • 原文地址:https://www.cnblogs.com/yuefengkai/p/3449847.html
Copyright © 2020-2023  润新知