博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用NPOI完成公司任务(主要就是导入导出操作)
阅读量:4469 次
发布时间:2019-06-08

本文共 2972 字,大约阅读时间需要 9 分钟。

注意要先添加程序集的引用

导出到excel:

   

public override IWorkbook writeExecl(string filePath, DataTable dt)        {            if (File.Exists(filePath))            {                File.Delete(filePath);            }            IWorkbook wk = new XSSFWorkbook(); ;            //创建一个名称为data的表            ISheet tb = wk.CreateSheet("data");            //表头            IRow row1 = tb.CreateRow(0);            int k = 0;            foreach (DataColumn dc in dt.Columns)            {                ICell cell1 = row1.CreateCell(k);                cell1.SetCellValue(getChinaName(dc.ColumnName));                k = k + 1;            }            //表体            for (int i = 0; i < dt.Rows.Count; i++)            {                IRow row = tb.CreateRow(i + 1);                for (int j = 0; j < dt.Columns.Count; j++)                {                    if (j == 3)                    {                        ICell cell = row.CreateCell(j);                        string value = dt.Rows[i][j].ToString();                        cell.SetCellValue(tranSchoolType(value));                    }                    else                    {                        ICell cell = row.CreateCell(j);                        string value = dt.Rows[i][j].ToString();                        cell.SetCellValue(value);                    }                }            }           string uploadPath = HttpContext.Current.Server.MapPath(filePath);             //打开一个xls文件,如果没有则自行创建            //如果存在myxls.xls文件则在创建是不要打开该文件!            using (FileStream fs = File.OpenWrite(uploadPath))            {              //向打开的这个xls文件中写入mySheet表并保存。                wk.Write(fs);             }        }

 

是用excel2003还是excel2007可以用下面这个方法:

      

static IWorkbook isExcelType(string filePath)        {            IWorkbook wk = null;            FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);            if (filePath.IndexOf(".xlsx") > 0) // 2007版本                wk = new XSSFWorkbook(fs);            else if (filePath.IndexOf(".xls") > 0) // 2003版本                wk = new HSSFWorkbook(fs);            fs.Close();            return wk;        }

 

 

从excel读取数据:

 

List
> readExcel(string filePath) { IWorkbook wk = null; wk = isExcelType(filePath); ISheet sheet = wk.GetSheetAt(0); List
names = new List
();//LastRowNum 是当前表的总行数

            for (int j = 1; j <= sheet.LastRowNum; j++) 

            {
  for (int j = 1; j <= sheet.LastRowNum; j++) 
            {

                 //读取当前行数据

                IRow row = sheet.GetRow(j); 
                if (row != null)
                {
                      //LastCellNum 是当前行的总列数
                    for (int k = 0; k <= row.LastCellNum; k++) 
                    {

 

                          //当前表格

                        ICell cell = row.GetCell(k); 
                        if (cell != null)
                        {
                            string name = cell.ToString();  
                            names.Add(name);
                        }
                    }
                }
            }
            List<Dictionary<string, string>> lists = new List<Dictionary<string, string>>();
            return lists;
        }

 

 

 

好了,以上就简单的完成导入导出了!

转载于:https://www.cnblogs.com/IT-Goddess/p/4680206.html

你可能感兴趣的文章
如何使用BAT文件批量运行SQL语句,并保存执行结果
查看>>
JS中==和===的区别
查看>>
python—命名规范
查看>>
CSS- 控制图片显示指定大小 并超过大小自动缩小
查看>>
[转]weui-wxss WeUI for 小程序 为微信小程序量身设计
查看>>
[转]使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【八】——Web Api的安全性...
查看>>
[转] sqlserver 中查看trigger的disabled/enabled情况
查看>>
3.29课·········表单验证和事件
查看>>
多级菜单 menu
查看>>
JS代码将数据导入Excel
查看>>
json数组排序
查看>>
Python通过future处理并发
查看>>
光盘安装win7系统教程
查看>>
(算法)稳定婚姻匹配
查看>>
苹果审核状态
查看>>
整数分解
查看>>
第一篇随笔
查看>>
OpenSSL 拒绝服务漏洞
查看>>
遇到“未能从程序集XXXX...加载类型XXX”的问题
查看>>
微信小游戏入门
查看>>