zoukankan      html  css  js  c++  java
  • 数据导出至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();

    }
  • 相关阅读:
    C++ 多线程 (4) 互斥量(mutex)与锁(lock)
    C++ 多线程(3)std::thread 详解
    c++ 多线程(2)创建线程对象的方法
    CMake解决c++11的phread库问题:undefined reference to `pthread_create’
    生成对抗网络--Generative Adversarial Networks (GAN)
    语义分割(semantic segmentation)——U-Net
    目标检测SSD: Single Shot MultiBox Detector
    基于内容的图像检索(CBIR) ——以图搜图
    去噪自动编码器
    利用Chrome开发者工具功能进行网页整页截图的方法
  • 原文地址:https://www.cnblogs.com/FavoriteMango/p/10570506.html
Copyright © 2011-2022 走看看