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

导出到excel:

  1. public override IWorkbook writeExecl(string filePath, DataTable dt)
  2. {
  3. if (File.Exists(filePath))
  4. {
  5. File.Delete(filePath);
  6. }
  7. IWorkbook wk = new XSSFWorkbook(); ;
  8. //创建一个名称为data的表
  9. ISheet tb = wk.CreateSheet("data");
  10. //表头
  11. IRow row1 = tb.CreateRow();
  12. int k = ;
  13. foreach (DataColumn dc in dt.Columns)
  14. {
  15. ICell cell1 = row1.CreateCell(k);
  16.  
  17. cell1.SetCellValue(getChinaName(dc.ColumnName));
  18. k = k + ;
  19. }
  20.  
  21. //表体
  22. for (int i = ; i < dt.Rows.Count; i++)
  23. {
  24. IRow row = tb.CreateRow(i + );
  25. for (int j = ; j < dt.Columns.Count; j++)
  26. {
  27. if (j == )
  28. {
  29. ICell cell = row.CreateCell(j);
  30. string value = dt.Rows[i][j].ToString();
  31. cell.SetCellValue(tranSchoolType(value));
  32. }
  33. else
  34. {
  35. ICell cell = row.CreateCell(j);
  36. string value = dt.Rows[i][j].ToString();
  37. cell.SetCellValue(value);
  38. }
  39. }
  40.  
  41. }
  42.  
  43. string uploadPath = HttpContext.Current.Server.MapPath(filePath);
  44.  
  45. //打开一个xls文件,如果没有则自行创建
  46.  
  47. //如果存在myxls.xls文件则在创建是不要打开该文件!
  48. using (FileStream fs = File.OpenWrite(uploadPath))
  49. {
  50.  
  51. //向打开的这个xls文件中写入mySheet表并保存。
  52. wk.Write(fs);
  53.  
  54. }
  55. }

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

  1. static IWorkbook isExcelType(string filePath)
  2. {
  3. IWorkbook wk = null;
  4. FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
  5. if (filePath.IndexOf(".xlsx") > ) // 2007版本
  6. wk = new XSSFWorkbook(fs);
  7. else if (filePath.IndexOf(".xls") > ) // 2003版本
  8. wk = new HSSFWorkbook(fs);
  9.  
  10. fs.Close();
  11. return wk;
  12.  
  13. }

从excel读取数据:

  1. List<Dictionary<string, string>> readExcel(string filePath)
  2. {
  3. IWorkbook wk = null;
  4. wk = isExcelType(filePath);
  5. ISheet sheet = wk.GetSheetAt();
  6. List<string> names = new List<string>();//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;
        }

  1.  

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

用NPOI完成公司任务(主要就是导入导出操作)的更多相关文章

  1. c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出

    c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出 using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using S ...

  2. Winform开发框架之通用数据导入导出操作的事务性操作完善

    1.通用数据导入导出操作模块回顾 在我的Winfrom开发框架里面,有一个通用的导入模块,它在默默处理这把规范的Excel数据导入到不同的对象表里面,一直用它来快速完成数据导入的工作.很早在随笔< ...

  3. 循序渐进开发WinForm项目(5)--Excel数据的导入导出操作

    随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我 ...

  4. VB中Excel 2010的导入导出操作

    VB中Excel 2010的导入导出操作 编写人:左丘文 2015-4-11 近来这已是第二篇在讨论VB的相关问题,今天在这里,我想与大家一起分享一下在VB中如何从Excel中导入数据和导出数据到Ex ...

  5. NPOI、MyXls、Aspose.Cells 导入导出Excel(转)

    Excel导入及导出问题产生: 从接触.net到现在一直在维护一个DataTable导s出到Excel的类,时不时还会维护一个导入类.以下是时不时就会出现的问题: 导出问题: 如果是asp.net,你 ...

  6. NPOI 2.1.1 系列(1) 使用NPOI读取 Excel文档 ;NpoiExcelHelper 导入导出 2003格式 2007格式的 Excel; Npoi 导出 xlsx 格式

    下载地址 http://npoi.codeplex.com/releases 下面放一个 NPOIHelper 助手类吧,也不是我写的- NpoiExcelHelper 可以生成xlsx格式publi ...

  7. net core WebApi——使用NPOI导入导出操作

    目录 前言 NPOI 测试 小结 @ 前言 时间过得好快,在之前升级到3.0之后,就感觉好久没再动过啥东西了,之前有问到Swagger的中文汉化,虽说我觉得这种操作的意义不是太大,也是多少鼓捣了下,其 ...

  8. NPOI读写Excel组件封装Excel导入导出组件

    后台管理系统多数情况会与Excel打交道,常见的就是Excel的导入导出,对于Excel的操作往往是繁琐且容易出错的,对于后台系统的导入导出交互过程往往是固定的,对于这部分操作,我们可以抽离出公共组件 ...

  9. Sqoop_mysql,hive,hdfs导入导出操作

    前言: 搭建环境,这里使用cdh版hadoop+hive+sqoop+mysql 下载 hadoop-2.5.0-cdh5.3.6.tar.gz hive-0.13.1-cdh5.3.6.tar.gz ...

随机推荐

  1. 7天学完Java基础之0/7

    笔记-7天学完Java基础之0/7 1.常用命令提示符(cmd) 启动:Win+R,输入cmd​

  2. jquery jquery中是否加()的问题

    自己总结的,慢慢修改再: 1带上()代表立即执行 去掉()代表当有事件发生的时候,我再执行

  3. java中方法体的作用

    java中抽象类中可以存在的抽象方法或接口中的方法不允许有方法体,但不属于方法体是空的.java.awt.event包中的适配器类中方法体是空的. 从语法中说,没有方法体必须是空的这一要求,只要是非抽 ...

  4. ajax实现异步请求的过程

    var xhr;        xhr = new XMLHttpRequest(); //创建一个异步对象        xhr.open("Get", "test.a ...

  5. 观察者模式(Observe Pattern)

    观察者模式: 当对象存在一对多关系时,使用观察者模式(Observe Pattern).例如:当一个对象被修改时,会通知它的依赖对象. 介绍: 1.意图:定义对象的一种一对多的依赖关系,当一个对象的状 ...

  6. font:inherit

    font:inherit 字体的设置 设置所有元素的字体保持一致: 所有元素:*{font:inherit;} /* IE8+ */ body体用percent:body{font:100%/1 sa ...

  7. zabbix-3.4 触发器

    3 触发器 概述 触发器是"评估"由项目采集的数据并表示当前系统状况的逻辑表达式. 当监控项用于采集系统的数据时,始终遵循这些数据是非常不切合实际的,因为这些数据始终在等待一个令人 ...

  8. Python对Excel操作详解

      Python对Excel操作详解 文档摘要: 本文档主要介绍如何通过python对office excel进行读写操作,使用了xlrd.xlwt和xlutils模块.另外还演示了如何通过Tcl   ...

  9. Python风格规范-FYI

    Python风格规范 分号 Tip 不要在行尾加分号, 也不要用分号将两条命令放在同一行. 行长度 Tip 每行不超过80个字符 例外: 长的导入模块语句 注释里的URL 不要使用反斜杠连接行. Py ...

  10. 一键备份脚本 backup.sh

    做网站最重要的是什么?数据!数据,是网站之本,备份,是每一个站长都应该重视的事情.但同时,备份也是一件繁琐和重复的事情.所以,这些事情,肯定能做到自动化的.下面来介绍一下这个一键备份脚本 backup ...