Java 解析Excel(xls、xlsx两种格式)

一、环境

  JDK 1.8

二、JAR

  1.commons-collections4-4.1.jar

  2.poi-3.9-20121203.jar

  3.poi-examples-3.9-20121203.jar

  4.poi-excelant-3.9-20121203.jar

  5.poi-ooxml-3.9-20121203.jar

  6.poi-ooxml-schemas-3.9-20121203.jar

  7.poi-scratchpad-3.9-20121203.jar

  8.xmlbeans-2.3.0.jar

  注意:jar版本为3.9

三、主要API

  1.import org.apache.poi.ss.usermodel.Workbook,对应Excel文档;

  2.import org.apache.poi.hssf.usermodel.HSSFWorkbook,对应xls格式的Excel文档;

  3.import org.apache.poi.xssf.usermodel.XSSFWorkbook,对应xlsx格式的Excel文档;

  4.import org.apache.poi.ss.usermodel.Sheet,对应Excel文档中的一个sheet;

  5.import org.apache.poi.ss.usermodel.Row,对应一个sheet中的一行;

  6.import org.apache.poi.ss.usermodel.Cell,对应一个单元格。

四、示例

package poi;import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;public class Testpoi {public static void main(String[] args) {Workbook wb =null;Sheet sheet = null;Row row = null;List<Map<String,String>> list = null;String cellData = null;String filePath = "D:\\test.xlsx";String columns[] = {"name","age","score"};wb = readExcel(filePath);if(wb != null){//用来存放表中数据list = new ArrayList<Map<String,String>>();//获取第一个sheetsheet = wb.getSheetAt(0);//获取最大行数int rownum = sheet.getPhysicalNumberOfRows();//获取第一行row = sheet.getRow(0);//获取最大列数int colnum = row.getPhysicalNumberOfCells();for (int i = 1; i<rownum; i++) {Map<String,String> map = new LinkedHashMap<String,String>();row = sheet.getRow(i);if(row !=null){for (int j=0;j<colnum;j++){cellData = (String) getCellFormatValue(row.getCell(j));map.put(columns[j], cellData);}}else{break;}list.add(map);}}//遍历解析出来的listfor (Map<String,String> map : list) {for (Entry<String,String> entry : map.entrySet()) {System.out.print(entry.getKey()+":"+entry.getValue()+",");}System.out.println();}}//读取excelpublic static Workbook readExcel(String filePath){Workbook wb = null;if(filePath==null){return null;}String extString = filePath.substring(filePath.lastIndexOf("."));InputStream is = null;try {is = new FileInputStream(filePath);if(".xls".equals(extString)){return wb = new HSSFWorkbook(is);}else if(".xlsx".equals(extString)){return wb = new XSSFWorkbook(is);}else{return wb = null;}} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return wb;}public static Object getCellFormatValue(Cell cell){Object cellValue = null;if(cell!=null){//判断cell类型switch(cell.getCellType()){case Cell.CELL_TYPE_NUMERIC:{cellValue = String.valueOf(cell.getNumericCellValue());break;}case Cell.CELL_TYPE_FORMULA:{//判断cell是否为日期格式if(DateUtil.isCellDateFormatted(cell)){//转换为日期格式YYYY-mm-ddcellValue = cell.getDateCellValue();}else{//数字cellValue = String.valueOf(cell.getNumericCellValue());}break;}case Cell.CELL_TYPE_STRING:{cellValue = cell.getRichStringCellValue().getString();break;}default:cellValue = "";}}else{cellValue = "";}return cellValue;}}

转载于:https://www.cnblogs.com/lizm166/p/10643923.html

Java 解析Excel(xls、xlsx两种格式)相关推荐

  1. java excel api xlsx_Java 解析Excel(xls、xlsx两种格式)

    Java 解析Excel(xls.xlsx两种格式) 一.环境 JDK 1.8 二.JAR 1.commons-collections4-4.1.jar 2.poi-3.9-20121203.jar ...

  2. Java使用poi导出数据到excel(包括xls和xlsx两种格式)并通过浏览器下载

    情景:将数据导出到excel是java开发常用的功能,数据量不大的时候,xls和xlsx两种格式的文件都行,但是数据量太大的时候就有区别了,xls格式的文件一个sheet页最多只能存六万多条数据,而x ...

  3. Python 不改变Excel单元格样式—xls和xlsx两种格式

    因为xls和xlsx两种格式,xlsx是被加密了传统的方式读取修改不了 下面是xls格式读取修改 # -*- coding: utf-8 -*-# # ------------------------ ...

  4. java操作excel常用的两种方式

    转载自:https://www.cnblogs.com/wangyang108/p/6030420.html Excel是我们平时工作中比较常用的用于存储二维表数据的,JAVA也可以直接对Excel进 ...

  5. POI EXCEL(.xls/.xlsx)转CSV格式

    难点在于Date日期类型的转化,需要采用 //.xls: numrec.getXFIndex() == 62//.xlsx: this.formatIndex == 31 判断日期类型,并结合 Dat ...

  6. java excel解析视频教程_java解析Excel(xls、xlsx两种格式)

    一.需要导入的jar 1.commons-collections4-4.1.jar 2.poi-3.17-beta1.jar 3.poi-ooxml-3.17-beta1.jar 4.poi-ooxm ...

  7. excel 解析 java_java解析Excel(xls、xlsx两种格式)

    https://www.cnblogs.com/hhhshct/p/7255915.html ***************************************************** ...

  8. java解析excel报错,poi解析excel文件报错

    getFileMagic() only operates on streams which support mark(int) 使用 bis 解决 BufferedInputStream bis = ...

  9. java将excel文件转换成txt格式文件

    在实际应用中,我们难免会遇到解析excel文件入库事情,有时候为了方便,需要将excel文件转成txt格式文件.下面代码里面提供对xls.xlsx两种格式的excel文件解析,并写入到一个新的txt文 ...

最新文章

  1. 两个点 定位_深圳Mark点定位的一般原理与步骤
  2. SQL Server 复制需要有实际的服务器名称才能连接到服务器
  3. tf.cast() 张量数据类型转换
  4. 入选Gartner全球AI魔力象限,阿里云解读AI工程化为什么需具备这三大基础能力?...
  5. 江南山区腊味香 年味浓
  6. [特征工程系列一] 论特征的重要性
  7. Google发布用于Google Cloud的.Net API
  8. HBase 文件合并
  9. dp、sp 转换为 px 的工具类
  10. 人们一说赚钱,都会说赢利摸式
  11. Android使用adb命令查看CPU信息
  12. 通过windows远程访问linux桌面的方法(简单)
  13. arcgis制作空间变化图怎么做_Arcgis专题地图的编制
  14. 贪吃蛇c语言代码 链表,链表贪吃蛇 附代码
  15. 架构真经深有体会、感触很深
  16. 如何解决u盘不能拷贝超过4G的大文件
  17. linux crontab零点,Linux中20个crontab例子
  18. 帝国cms生成html网站地图的教程步骤
  19. python用表格中的数据画柱状图_Python数据可视化:5种绘制柱状图表的方法(附源码)...
  20. comsol如何定义狄利克雷边界_有限元分析(FEA)是个什么东东

热门文章

  1. python 对redis key的基本操作
  2. [转载]手工安全测试方法修改建议
  3. Spark机器学习(3):保序回归算法
  4. LA 6047 Perfect Matching 字符串哈希
  5. 使用 Jquery 来实现可以输入值的下拉选单 雏型
  6. Flutter 日期选择器与时间选择器
  7. Ta Muid(Dreams 梦幻)
  8. Oracle查询指定表里的触发器
  9. 【JAVA多线程】interrupted() 和 isInterrupted() 的区别
  10. erlang csv