• 数据导出至excle


    
    

    ASP.NET MVC导出Excel

    首先下载  NPOI.dll 引用到项目中

    建议下载地址:http://download.csdn.net/detail/pukuimin1226/5851747

    前台代码:

    <a href='/Admin/NurseUser/Excel' target='_blank'>导出Excel</a>

    后台代码:


    public FileResult Excel() { //获取list数据 var list = bll.NurseUserListExcel("", "ID asc"); //创建Excel文件的对象 NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook(); //添加一个sheet NPOI.SS.UserModel.ISheet sheet1 = book.CreateSheet("Sheet1"); //给sheet1添加第一行的头部标题 NPOI.SS.UserModel.IRow row1 = sheet1.CreateRow(0); row1.CreateCell(0).SetCellValue("ID"); row1.CreateCell(1).SetCellValue("用户姓名"); row1.CreateCell(2).SetCellValue("电话"); row1.CreateCell(3).SetCellValue("注册时间"); row1.CreateCell(4).SetCellValue("邀请人ID"); row1.CreateCell(5).SetCellValue("邀请人名称"); row1.CreateCell(6).SetCellValue("邀请人电话"); row1.CreateCell(7).SetCellValue("总积分"); row1.CreateCell(8).SetCellValue("已使用积分"); row1.CreateCell(9).SetCellValue("可用积分"); //将数据逐步写入sheet1各个行 for (int i = 0; i < list.Count; i++) { NPOI.SS.UserModel.IRow rowtemp = sheet1.CreateRow(i + 1); rowtemp.CreateCell(0).SetCellValue(list[i].ID); rowtemp.CreateCell(1).SetCellValue(list[i].Name); rowtemp.CreateCell(2).SetCellValue(list[i].Phone); rowtemp.CreateCell(3).SetCellValue(list[i].CreateTime.Value.ToString()); rowtemp.CreateCell(4).SetCellValue(list[i].InviterID.Value); rowtemp.CreateCell(5).SetCellValue(list[i].iName); rowtemp.CreateCell(6).SetCellValue(list[i].iPhone); rowtemp.CreateCell(7).SetCellValue(list[i].IntegralSum); rowtemp.CreateCell(8).SetCellValue(list[i].IntegralSy); rowtemp.CreateCell(9).SetCellValue(list[i].IntegralKy); } // 写入到客户端 System.IO.MemoryStream ms = new System.IO.MemoryStream(); book.Write(ms); ms.Seek(0, SeekOrigin.Begin); return File(ms, "application/vnd.ms-excel", "用户信息.xls"); }

    2.动态生成Excle

    public MemoryStream GetExecelByDT(DataTable dt) //返回的是文件流
    {
    HSSFWorkbook book = new HSSFWorkbook();
    ISheet sheet = book.CreateSheet("2019项目列表情况表");
    IRow ColumnsName = sheet.CreateRow(0);
    //获取列名并且向Excel中填充列
    for (int i = 0; i < dt.Columns.Count; i++)
    {
    ColumnsName.CreateCell(i).SetCellValue(dt.Columns[i].ColumnName);
    }
    //向Excel中填充数据
    //循环每一行
    for (int i = 0; i < dt.Rows.Count; i++)
    {
    IRow DataRow = sheet.CreateRow(i + 1);
    //循环每一列
    for (int j = 0; j < dt.Columns.Count; j++)
    {
    DataRow.CreateCell(j).SetCellValue(dt.Rows[i][j].ToString());
    }
    }
    MemoryStream ms = new MemoryStream();
    book.Write(ms);
    ms.Seek(0, SeekOrigin.Begin);
    return ms;
    }

    public void main()

    {

    //保存文件路径
    string fullPath = System.IO.Path.Combine("文件路径" + 文件名.xlsx);

    //根据数据生成文件流
    MemoryStream exportData = new ExcelRanderBLL().GetExecelByDT(dt);

    FileStream file = new FileStream(fullPath, FileMode.Create, FileAccess.Write);
    //将文件流写入指定的文件里
    exportData.WriteTo(file);
    file.Close();

    }
  • 相关阅读:
    Python基础语法 第2节课(数据类型转换、运算符、字符串)
    python基础语法 第5节课 ( if 、 for )
    python基础语法 第4节课 (字典 元组 集合)
    Python基础语法 第3节课 (列表)
    A. Peter and Snow Blower 解析(思維、幾何)
    C. Dima and Salad 解析(思維、DP)
    D. Serval and Rooted Tree (樹狀DP)
    C2. Balanced Removals (Harder) (幾何、思維)
    B. Two Fairs 解析(思維、DFS、組合)
    D. Bash and a Tough Math Puzzle 解析(線段樹、數論)
  • 原文地址:https://www.cnblogs.com/FavoriteMango/p/10570506.html
Copyright © 2020-2023  润新知