1.添加依赖jar包

maven配置:

  1. <!-- poi being -->
  2. <dependency>
  3. <groupId>org.apache.poi</groupId>
  4. <artifactId>poi</artifactId>
  5. <version>3.9</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>org.apache.poi</groupId>
  9. <artifactId>poi-ooxml</artifactId>
  10. <version>3.9</version>
  11. </dependency>
  12. <dependency>
  13. <groupId>org.apache.poi</groupId>
  14. <artifactId>poi-ooxml-schemas</artifactId>
  15. <version>3.9</version>
  16. </dependency>
  17. <!-- poi end -->

或者,不是maven项目的话,直接在buildpath中添加jar包:

2.读取excel简单例子

  1. package com.demo.excel.execute;
  2.  
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. import java.util.ArrayList;
  6. import java.util.Iterator;
  7. import java.util.List;
  8.  
  9. import org.apache.poi.ss.usermodel.Cell;
  10. import org.apache.poi.ss.usermodel.Row;
  11. import org.apache.poi.ss.usermodel.Sheet;
  12. import org.apache.poi.ss.usermodel.Workbook;
  13. import org.apache.poi.ss.usermodel.WorkbookFactory;
  14.  
  15. import com.demo.excel.modle.example.Book;
  16.  
  17. /**
  18. *
  19. * @ClassName: ReadBooks
  20. * @Description: 读取图书列表excel
  21. * @author LCL
  22. * @date 2016年9月2日
  23. *
  24. */
  25. public class ReadBooks {
  26. private Workbook workbook;
  27. private Sheet sheet;
  28. private Row row;
  29. private List<Book> books = new ArrayList<Book>();
  30.  
  31. /**
  32. *
  33. * @Title: readFile
  34. * @Description: 将文件读入内存
  35. * @param @param
  36. * filePath 文件路径
  37. * @return void null
  38. */
  39. public void readFile(String filePath) {
  40. try {
  41. File excelFile = new File(filePath);
  42. FileInputStream is = new FileInputStream(excelFile);
  43. workbook = WorkbookFactory.create(is);
  44. sheet = workbook.getSheetAt(0);
  45. } catch (Exception e) {
  46. e.printStackTrace();
  47. }
  48. }
  49.  
  50. /**
  51. *
  52. * @Title: readLine
  53. * @Description: 读取每一行的图书信息
  54. * @return void null
  55. */
  56. public void readLine() {
  57. Iterator<Row> rows = sheet.rowIterator();
  58. while (rows.hasNext()) {
  59. row = (Row) rows.next();
  60. if (row.getRowNum() ==0 ) {
  61. continue;
  62. }
  63. Book book = new Book();
  64. Iterator<Cell> cells = row.cellIterator();
  65. while (cells.hasNext()) {
  66. Cell cell = (Cell) cells.next();
  67. if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC && cell.getColumnIndex() == 0) {
  68. book.setCode((int)cell.getNumericCellValue());
  69. continue;
  70. }
  71. if (cell.getColumnIndex() == 1) {
  72. book.setName(cell.getStringCellValue());
  73. continue;
  74. }
  75. if (cell.getColumnIndex() == 2) {
  76. book.setPress(cell.getStringCellValue());
  77. continue;
  78. }
  79. if (cell.getColumnIndex() == 3) {
  80. book.setDate(cell.getDateCellValue());
  81. }
  82. }
  83. books.add(book);
  84. }
  85. }
  86.  
  87. public List<Book> getBooks() {
  88. return books;
  89. }
  90. }

Book.java

  1. package com.demo.excel.modle.example;
  2.  
  3. import java.text.DateFormat;
  4. import java.text.SimpleDateFormat;
  5. import java.util.Date;
  6.  
  7. public class Book {
  8. private int code;
  9. private String name;
  10. private String press;
  11. private Date date;
  12. public int getCode() {
  13. return code;
  14. }
  15. public void setCode(int code) {
  16. this.code = code;
  17. }
  18. public String getName() {
  19. return name;
  20. }
  21. public void setName(String name) {
  22. this.name = name;
  23. }
  24. public String getPress() {
  25. return press;
  26. }
  27. public void setPress(String press) {
  28. this.press = press;
  29. }
  30. public Date getDate() {
  31. return date;
  32. }
  33. public void setDate(Date date) {
  34. this.date = date;
  35. }
  36. @Override
  37. public String toString() {
  38. return "Book [code=" + code + ", name=" + name + ", press=" + press + ", date=" + formatDate(date) + "]";
  39. }
  40.  
  41. private String formatDate(Date date) {
  42. DateFormat format = new SimpleDateFormat("yyyy/MM/dd");
  43. return format.format(date);
  44. }
  45. }

测试:

  1. package com.demo.excel.db;
  2.  
  3. import com.demo.excel.execute.ReadBooks;
  4.  
  5. import junit.framework.TestCase;
  6.  
  7. public class ReadBooksTest extends TestCase {
  8. private final String path = "E:/lichenli/storage/file/book.xlsx";
  9. public void testReadBook() {
  10. ReadBooks readbooks = new ReadBooks();
  11. readbooks.readFile(path);
  12. readbooks.readLine();
  13. assertEquals(6, readbooks.getBooks().size());
  14. }
  15. }

文件内容

简单poi读取excel的更多相关文章

  1. JAVA使用POI读取EXCEL文件的简单model

    一.JAVA使用POI读取EXCEL文件的简单model 1.所需要的jar commons-codec-1.10.jarcommons-logging-1.2.jarjunit-4.12.jarlo ...

  2. java用poi读取Excel表格中的数据

    Java读写Excel的包是Apache POI(项目地址:http://poi.apache.org/),因此需要先获取POI的jar包,本实验使用的是POI 3.9稳定版.Apache POI 代 ...

  3. 项目一:第四天 1、快递员的条件分页查询-noSession,条件查询 2、快递员删除(逻辑删除) 3、基于Apache POI实现批量导入区域数据 a)Jquery OCUpload上传文件插件使用 b)Apache POI读取excel文件数据

    1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) ...

  4. 使用jxl,poi读取excel文件

    作用:在java后台添加一个方法,读取导入的excel内容,根据需要返回相应的sql语句,以完成对临时表的插入操作. 使用jxl读取excel文件 package com.sixthf.bi.sapp ...

  5. POI读取Excel内容格式化

    在用POI读取Excel内容时,经常会遇到数据格式化的问题. 比如:数字12365会变为12365.0;字符串数字123也会变为123.0,甚至会被变为科学计数法.另外日期格式化也是一个头疼的问题.其 ...

  6. java使用poi读取ppt文件和poi读取excel、word示例

    java使用poi读取ppt文件和poi读取excel.word示例 http://www.jb51.net/article/48092.htm

  7. Java开发小技巧(六):使用Apache POI读取Excel

    前言 在数据仓库中,ETL最基础的步骤就是从数据源抽取所需的数据,这里所说的数据源并非仅仅是指数据库,还包括excel.csv.xml等各种类型的数据接口文件,而这些文件中的数据不一定是结构化存储的, ...

  8. 使用POI 读取 Excel 文件,读取手机号码 变成 1.3471022771E10

    使用POI 读取 Excel 文件,读取手机号码 变成 1.3471022771E10 [问题点数:40分,结帖人xieyongqiu]             不显示删除回复             ...

  9. Java之POI读取Excel的Package should contain a content type part [M1.13]] with root cause异常问题解决

    Java之POI读取Excel的Package should contain a content type part [M1.13]] with root cause异常问题解决 引言: 在Java中 ...

随机推荐

  1. JS闭包导致循环给按钮添加事件时总是执行最后一个

    加入如下脚本代码: <script> var list_obj = document.getElementsByTagName('li'); for (var i = 0; i <= ...

  2. 第三章 对象(JavaScript:语言精粹)

      对象是属性的容器,其中每个属性都有名字和值.   3.0. 概览:对象字面量 | 检索 | 更新 | 引用 | 原型 | 反射 | 枚举 | 删除 | 减少全局变量污染   3.1. 对象字面量 ...

  3. Android first---文件读取(登录案例编写为主)

    以android登录案例来介绍文件的读取与androidAPI给予的方法 第一步:绘制界面 绘制方法:在线性布局下面设置相对布局 代码部分: <LinearLayout xmlns:androi ...

  4. CentOS的网络配置(终端环境)

    在虚拟机中安装了Server版的CentOS,用于做Hadoop相关的实验.Server版的CentOS默认是没有桌面环境的,eth0的网络默认也没有开启,需要我们手动启动网络. 关键配置说明 网络和 ...

  5. 2.4G高频PCB天线设计

    2.4G高频PCB天线设计 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.   参考链接: http://bbs.rfeda.cn/read-htm-t ...

  6. Java 中的 static 使用之静态方法

    与静态变量一样,我们也可以使用 static 修饰方法,称为静态方法或类方法.其实之前我们一直写的 main 方法就是静态方法.静态方法的使用如: 运行结果: 需要注意: 1. 静态方法中可以直接调用 ...

  7. Codeforces Round #316 (Div. 2) D. Tree Requests dfs序

    D. Tree Requests time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...

  8. powerdesinger中建立一个表后,出现Existence of index的警告

    可以不检查 Existence of index 这项,也就没有这个警告错误了!意思是说没有给表建立索引,而一个表一般至少要有一个索引,这是一个警告,不用的话对执行没有影响~ 转载:http://bl ...

  9. 开启curl扩展(转)

    一.win7系统32位, apache2.2, php5.2升级到5.4. 这个比较容易: 1. phpinfo发现没有加载curl; 2. 在php.ini中设置extension_dir 指向e: ...

  10. akka笔记

    Actor UntypedActor actor的基类,继承并实现onReceive方法就可以得到一个Actor. Props 配置类,用Props.create可以创建一个按指定配置生成的Actor ...