度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 3045|回复: 3

[分享] net mvc 利用NPOI导入导出excel

[复制链接]

182

主题

2120

帖子

4842

积分

论坛元老

Rank: 8Rank: 8

积分
4842
发表于 2020-6-28 18:15:53 | 显示全部楼层 |阅读模式
1、导出Excel
首先引用NPOI包(Action一定要用FileResult)
/// <summary>  
            /// 批量导出需要导出的列表  
            /// </summary>  
            /// <returns></returns>  
            public FileResult ExportStu2()  
            {  
                //获取list数据  
                var checkList = (from oc in db.OrganizeCustoms  
                                join o in db.Organizes.DefaultIfEmpty() on oc.custom_id equals o.id  
                                where oc.organize_id == 1  
                                select new  
                                {  
                                    customer_id = o.id,  
                                    customer_name = o.name  
                                }).ToList();  

                //创建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("编号");  
                row1.CreateCell(1).SetCellValue("姓名");  
                //....N行  

                //将数据逐步写入sheet1各个行  
                for (int i = 0; i < checkList.Count; i++)  
                {  
                    NPOI.SS.UserModel.IRow rowtemp = sheet1.CreateRow(i + 1);  
                    rowtemp.CreateCell(0).SetCellValue(checkList.customer_id.ToString());  
                    rowtemp.CreateCell(1).SetCellValue(checkList.customer_name.ToString());  
                    //....N行  
                }  
                // 写入到客户端   
                System.IO.MemoryStream ms = new System.IO.MemoryStream();  
                book.Write(ms);  
                ms.Seek(0, SeekOrigin.Begin);  
                DateTime dt = DateTime.Now;  
                string dateTime = dt.ToString("yyMMddHHmmssfff");  
                string fileName = "查询结果" + dateTime + ".xls";  
                return File(ms, "application/vnd.ms-excel", fileName);  
            }
前台直接写
@Html.ActionLink("点击导出Excel", "ExportStu2")  

回复

使用道具 举报

182

主题

2120

帖子

4842

积分

论坛元老

Rank: 8Rank: 8

积分
4842
 楼主| 发表于 2020-6-28 18:16:59 | 显示全部楼层
回复

使用道具 举报

235

主题

2547

帖子

5834

积分

论坛元老

Rank: 8Rank: 8

积分
5834
发表于 2020-6-29 14:15:56 | 显示全部楼层
回复

使用道具 举报

542

主题

5916

帖子

1万

积分

作者

Rank: 7Rank: 7Rank: 7

积分
13589
发表于 2020-6-30 14:13:45 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-3-29 04:23 , Processed in 0.128968 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表