Java 解析Excel(xls、xlsx两种格式)
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两种格式)相关推荐
- 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 ...
- Java使用poi导出数据到excel(包括xls和xlsx两种格式)并通过浏览器下载
情景:将数据导出到excel是java开发常用的功能,数据量不大的时候,xls和xlsx两种格式的文件都行,但是数据量太大的时候就有区别了,xls格式的文件一个sheet页最多只能存六万多条数据,而x ...
- Python 不改变Excel单元格样式—xls和xlsx两种格式
因为xls和xlsx两种格式,xlsx是被加密了传统的方式读取修改不了 下面是xls格式读取修改 # -*- coding: utf-8 -*-# # ------------------------ ...
- java操作excel常用的两种方式
转载自:https://www.cnblogs.com/wangyang108/p/6030420.html Excel是我们平时工作中比较常用的用于存储二维表数据的,JAVA也可以直接对Excel进 ...
- POI EXCEL(.xls/.xlsx)转CSV格式
难点在于Date日期类型的转化,需要采用 //.xls: numrec.getXFIndex() == 62//.xlsx: this.formatIndex == 31 判断日期类型,并结合 Dat ...
- 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 ...
- excel 解析 java_java解析Excel(xls、xlsx两种格式)
https://www.cnblogs.com/hhhshct/p/7255915.html ***************************************************** ...
- java解析excel报错,poi解析excel文件报错
getFileMagic() only operates on streams which support mark(int) 使用 bis 解决 BufferedInputStream bis = ...
- java将excel文件转换成txt格式文件
在实际应用中,我们难免会遇到解析excel文件入库事情,有时候为了方便,需要将excel文件转成txt格式文件.下面代码里面提供对xls.xlsx两种格式的excel文件解析,并写入到一个新的txt文 ...
最新文章
- 两个点 定位_深圳Mark点定位的一般原理与步骤
- SQL Server 复制需要有实际的服务器名称才能连接到服务器
- tf.cast() 张量数据类型转换
- 入选Gartner全球AI魔力象限,阿里云解读AI工程化为什么需具备这三大基础能力?...
- 江南山区腊味香 年味浓
- [特征工程系列一] 论特征的重要性
- Google发布用于Google Cloud的.Net API
- HBase 文件合并
- dp、sp 转换为 px 的工具类
- 人们一说赚钱,都会说赢利摸式
- Android使用adb命令查看CPU信息
- 通过windows远程访问linux桌面的方法(简单)
- arcgis制作空间变化图怎么做_Arcgis专题地图的编制
- 贪吃蛇c语言代码 链表,链表贪吃蛇 附代码
- 架构真经深有体会、感触很深
- 如何解决u盘不能拷贝超过4G的大文件
- linux crontab零点,Linux中20个crontab例子
- 帝国cms生成html网站地图的教程步骤
- python用表格中的数据画柱状图_Python数据可视化:5种绘制柱状图表的方法(附源码)...
- comsol如何定义狄利克雷边界_有限元分析(FEA)是个什么东东