C# :Excel导入导出

   引入NuGet包 NPOI 进行操作

//导入Excel
        public int ImportExcel()
        {
            var i = 0;
            // 1.从Excel文件中读取数据
            #region
            var path = "E:/Pro.xlsx";  
            IWorkbook workbook = null;
            using (FileStream file = new FileStream(path, FileMode.Open, FileAccess.Read))
            {
                workbook = WorkbookFactory.Create(file);
                //使用接口,自动识别excel2003/2007格式主要就是这句话
            }
            var sheet = workbook.GetSheet("sheet1"); // 读取Excel中的sheet1表
            var rowNum = sheet.LastRowNum;//总行数

            System.Collections.IEnumerator rows = sheet.GetRowEnumerator();  // 取所有行集合

            List<Product> list = new List<Product>();  // 容器
            int indexNum = 0;
            while (rows.MoveNext())
            {
                if (indexNum == 0)
                {
                    indexNum += 1;
                    continue;
                }
                IRow row = rows.Current as XSSFRow;
                if (row == null)
                {
                    row = rows.Current as HSSFRow;
                }
                Product s = new Product();

                s.PName = row.GetCell(0).ToString();
                s.Price = row.GetCell(1).ToString();
                s.PCount = Convert.ToInt32(row.GetCell(2).ToString());

                db.Product.Add(s);
                i = db.SaveChanges();
            }
            workbook.Close();
            #endregion
            // 2.添加到表中

            return i;
        }

  Excel导入的代码,进行本地指定路径导入,假如要选择文件上传导入,自行插入代码,上传文件,跟路径接一下就行了。

//Excel导出
        public void OutPut()
        {
            //1 获取产品信息的查询结果【集合】
            var plist = db.Product.ToList();

            //2 创建excel对象
            #region
            IWorkbook workbook = new XSSFWorkbook();
            ISheet sheet = workbook.CreateSheet("some comments");

            var row0 = sheet.CreateRow(0);
            row0.CreateCell(0).SetCellValue("产品编号");
            row0.CreateCell(1).SetCellValue("产品名称");
            row0.CreateCell(2).SetCellValue("产品单价");
            row0.CreateCell(3).SetCellValue("产品数量");

            int rowNum = 1;
            foreach (var item in plist)
            {
                var new_row = sheet.CreateRow(rowNum);
                new_row.CreateCell(0).SetCellValue(item.PID);
                new_row.CreateCell(1).SetCellValue(item.PName);
                new_row.CreateCell(2).SetCellValue(item.Price);
                new_row.CreateCell(3).SetCellValue(item.PCount);
                rowNum++;
            }

            #endregion

            //3 把excle对象反馈给请求者
            #region
            string filename = "产品信息表.xlsx";

            Response.Clear();
            Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
            Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}", filename));
            //http://social.msdn.microsoft.com/Forums/en-US/3a7bdd79-f926-4a5e-bcb0-ef81b6c09dcf/responseoutputstreamwrite-writes-all-but-insetrs-a-char-every-64k?forum=ncl
            workbook.Write(Response.OutputStream); // cannot be used 
            Response.Flush();
            Response.End();
            #endregion
        }

  Excel导出,请自行参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值