NPOI兼容 excel2003,2007版本

根据项目需要,需要对excel进行导入导出,所以选择NPOI,优点在这里就不详细介绍了,下面进入正题。

 1 public int Import(string path)
 2         {
 3              IList<Student> list = new List<Student>();
 4
 5             try
 6             {
 7                 string strFileName = path;
 8                 using (FileStream file = new FileStream(strFileName, FileMode.Open, FileAccess.Read))
 9                 {
10
11                     IWorkbook workbook = WorkbookFactory.Create(file);////使用接口,自动识别excel2003/2007格式主要就是这句话
12
13                         //获取所有的工作簿
14                         for (int i = 0; i < workbook.NumberOfSheets; i++)
15                         {
16                             //获取所有的工作表
17                             ISheet st = workbook.GetSheetAt(i);
18
19                                 //读取每一行
20                                 for (int k = 1; k < st.LastRowNum + 1; k++)
21                                 {
22                                     //获取当前行
23                                     IRow r = st.GetRow(k);
24
25                                     if (r != null)
26                                     {
27
28                                         if (r.GetCell(0) != null)
29                                         {
30                                             //if (r.GetCell(0).ToString().Length == 8)//验证考号是不是9位
31                                             //{
32                                             MarkingSchool.Model.Student stu = new MarkingSchool.Model.Student();
33                                             if (r.GetCell(0) != null)
34                                             {
35                                                 stu.studentCode = r.GetCell(0).ToString();
36                                             }
37                                             if (r.GetCell(1) != null)
38                                             {
39                                                 stu.studentName = r.GetCell(1).ToString();
40
41                                             }
42                                             if (r.GetCell(2) != null) stu.schoolCode = r.GetCell(2).ToString();
43                                             if (r.GetCell(3) != null) stu.gradeCode = r.GetCell(3).ToString();
44                                             if (r.GetCell(4) != null) stu.classesCode = r.GetCell(4).ToString();
45
46                                             if (r.GetCell(5) != null) stu.period = r.GetCell(5).ToString();
47                                             if (r.GetCell(6) != null) stu.nationChineseIdentifyCode = r.GetCell(6).ToString();
48                                             if (r.GetCell(7) != null) stu.scienceOrArtIdentifyCode = r.GetCell(7).ToString();
49
50                                             list.Add(stu);
51                                             //}
52                                         }
53
54                                     }
55                                 }
56
57
58                         }
59
60                 }

以上是同excel导入到list,Studnet为学生实体类 ,然后通过通过Student在导入数据库,

也可以通过Bulk Insert批量插入 。

Bulk Insert 简介:http://blog.chinaunix.net/uid-12427199-id-3413752.html

npoi官方最新下载地址:http://npoi.codeplex.com

Npoi 学习系列教程推荐:http://tonyqus.sinaapp.com

时间: 2024-08-29 17:50:49

NPOI兼容 excel2003,2007版本的相关文章

使用NPOI 2.1.1读取EXCEL2003/2007返回DataTable

一,不借助插件读取Excel2003.2007: string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "Data Source=" + path + ";" + "Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'"; OleDbConnection conn = new OleDbConnection(strConn)

c#NPOI导出2007版本excel

2003和2007版本区别: HSSFWorkbook(2003) IWorkbook(2007版本) 写完之后会有个问题,导出会报错[流已关闭]. NPOI生产.xlsx文件件时,在使用book.Write(ms);后,会关闭流,这样导致再次使用Respons输出流的时候就出错了. 我看到一些网友提供的解决办法是: public class NPOIMemoryStream:MemoryStream { /// <summary> /// 获取流是否关闭 /// </summary&g

【Java】无须额外的包,把Java中的内容输出到Excel中,无乱码,绝对兼容Excel2003与2007

Java输出一段文本到txt中大家基本都会了,这已经是学习Java的必修课了,不会也没有问题,具体可以看<[Java]输入与输出与JDK1.5之后的新型字符串StringBuilder>(点击打开链接).网上对于Java内容转化成Excel的内容大多数都是需要什么poi包,jsl包,一堆奇奇怪怪的jar插件.其实仅仅利用java.io.*;这个基本包就能够把Java中的内容输出到Excel表中,当然,如果你是要处理Mysql数据库不要这样做了,直接一条Mysql的查询命令就能把Mysql的查询

POI 读取Excel文档中的数据——兼容Excel2003和Excel2007

Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. HSSF - 提供读写Microsoft Excel格式档案的功能. XSSF - 提供读写Microsoft OOXML格式档案的功能.  以下是项目工程结构图: 使用POI解析EXCEL文件需要用到POI相关的jar包,这些jar包可以在apache官网上去下载:http://poi.apache.org/download.html: 这里我使

通用的web系统数据导出功能设计实现(导出excel2003/2007 word pdf zip等)

转自:http://www.cnblogs.com/xqin/p/3165258.html 前言 我们在做web系统中,导出也是很常用的一个功能,如果每一个数据列表都要对应写一个导出的方法不太现实.现在就想设计一个共通的功能来实现这个导出. 需求分析 在开始之前我们先要明白我们要实现怎样一个功能 1.支持导出excel2003/excel2007 word pdf等文件格式 2.支持数据分页,可以导出全部页或指定页 3.支持导出的文档再压缩zip rar 7z 4.支持导出多行的题头 5.支持格

Visual Studio 2012出现“无法访问T-SQL组件和安装了不兼容伯 DacFx版本”的解决办法

参考:Visual Studio 2012出现“无法访问T-SQL组件和安装了不兼容伯 DacFx版本”的解决办法 Vs2012的下载地址: https://msdn.microsoft.com/en-us/jj650015

AngularJS开发指南7:AngularJS本地化,国际化,以及兼容IE低版本浏览器

AngularJS本地化,国际化 国际化,简写为i18n,指的是使产品快速适应不同语言和文化. 本地化,简称l10n,是指使产品在特定文化和语言市场中可用. 对开发者来说,国际化一个应用意味着将所有的文字和其他因地区而异的数据从应用中抽离出来. 本地化意味着为这些抽离的数据和文字提供翻译和转变成本地的格式. 目前,AngularJS支持日期,数字和货币的国际化和本地化. 另外,AngularJS还通过ngPluralize指令支持本地多元化. 所有的AngularJS本地化组件都依赖于$loca

Chrome桌面提醒功能,兼容新老版本,firefox最新版本也通过

Chrome新版升级api,与w3一致,为了兼容,代码如下: //桌面提醒 function notify(title, content) { if(!title && !content){ title = "桌面提醒"; content = "您看到此条信息桌面提醒设置成功"; } var iconUrl = "/images/send_ok.png"; if (window.webkitNotifications) { //c

兼容早期IE版本的 Ajax 实例

1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="UTF-8"> 5 <title>ajax</title> 6 </head> 7 <body> 8 <script> 9 // 把intranet安全级别改成中低,把网站加入可信站点,把可信站点安全级别改成中低,在IE中就不会被拒绝访