java 读取xlsx文件
public class ReadExcel {
public static void main(String[] args) {
Workbook wb = null;
Sheet sheet = null;
Row row = null;
String filePath = "C:\\Users\\30713\\Desktop\\sg八大领域sql\\采集源数据表\\第八领域表字段.xlsx";
wb = readExcel(filePath);
if (wb != null) {
try {
List<List<List<Object>>> list = new ArrayList<>();
System.err.println("页签数量:" + wb.getNumberOfSheets());
// 循环页签
for (int sheetNum = 0; sheetNum < wb.getNumberOfSheets(); sheetNum++) {
// 指定页签的值
sheet = wb.getSheetAt(sheetNum);
// 定义存放一个页签中所有数据的List
List<List<Object>> sheetList = new ArrayList<>();
System.err.println("行总数:" + sheet.getLastRowNum());
// 循环行
for (int rowNum = 0; rowNum <= sheet.getLastRowNum(); rowNum++) {
// 指定行的值
row = sheet.getRow(rowNum);
// 定义存放一行数据的List
List<Object> rowList = new ArrayList<>();
//下面可以获取具体表格内容
String eng = row.getCell(2).toString();
String ch = row.getCell(4).toString();
// 循环列
//System.err.println("列总数:" + row.getLastCellNum());
for (int cellNum = 0; cellNum < row.getLastCellNum(); cellNum++) {
Cell cell = sheet.getRow(rowNum).getCell(cellNum);
rowList.add(getStringCellValue(cell));
}
sheetList.add(rowList);
}
list.add(sheetList);
}
System.err.println(list.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
//判断文件格式
private static Workbook readExcel(String filePath){
if(filePath==null){
return null;
}
String extString = filePath.substring(filePath.lastIndexOf("."));
try {
@SuppressWarnings("resource")
InputStream is = new FileInputStream(filePath);
if(".xls".equals(extString)){
return new HSSFWorkbook(is);
}else if(".xlsx".equals(extString)){
return new XSSFWorkbook(is);
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@SuppressWarnings("deprecation")
public static String getStringCellValue(Cell cell) {
String cellvalue = "";
if (cell == null) {
return "";
}
switch (cell.getCellType()) {
case Cell.CELL_TYPE_STRING:
cellvalue = cell.getStringCellValue();
break;
case Cell.CELL_TYPE_NUMERIC:
if (DateUtil.isCellDateFormatted(cell)) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = cell.getDateCellValue();
cellvalue = sdf.format(date);
} else {
cellvalue = String.valueOf(cell.getNumericCellValue());
}
break;
case Cell.CELL_TYPE_BOOLEAN:
cellvalue = String.valueOf(cell.getBooleanCellValue());
break;
case Cell.CELL_TYPE_BLANK:
cellvalue = "";
break;
default:
cellvalue = "";
break;
}
if (cellvalue == "") {
return "";
}
return cellvalue;
}
}
java 读取xlsx文件的更多相关文章
- 关于解决java读取excel文件遇空行抛空指针的问题 !
关于解决java读取excel文件遇空行抛空指针的问题 ! package exceRead; import java.io.File; import java.io.FileInputStream; ...
- 读取xlsx文件的内容输入到xls文件中
package com.cn.peitest.excel; import java.io.File; import java.io.FileInputStream; import java.io.Fi ...
- java分享第十六天( java读取properties文件的几种方法&java配置文件持久化:static块的作用)
java读取properties文件的几种方法一.项目中经常会需要读取配置文件(properties文件),因此读取方法总结如下: 1.通过java.util.Properties读取Propert ...
- Java读取Excel文件的几种方法
Java读取 Excel 文件的常用开源免费方法有以下几种: 1. JDBC-ODBC Excel Driver 2. jxl.jar 3. jcom.jar 4. poi.jar 简单介绍: 百度文 ...
- Java读取txt文件
package com.loongtao.general.crawler.slave.utils; import java.io.BufferedReader; import java.io.File ...
- java 读取XML文件作为配置文件
首先,贴上自己的实例: XML文件:NewFile.xml(该文件与src目录同级) <?xml version="1.0" encoding="UTF-8&quo ...
- java 读取TXT文件的方法
java读取txt文件内容.可以作如下理解: 首先获得一个文件句柄.File file = new File(); file即为文件句柄.两人之间连通电话网络了.接下来可以开始打电话了. 通过这条线路 ...
- 用java读取properties文件--转
今天为了通过java读取properties文件,google了很长时间,终于找到了.现在特记录之和大家一起分享. 下面直接贴出代码:java类 public class Mytest pub ...
- java读取xml文件报“org.xml.sax.SAXParseException: Premature end of file” .
背景:java读取xml文件,xml文件内容只有“<?xml version="1.0" encoding="UTF-8"?>”一行 java读取该 ...
随机推荐
- java多态成员变量、成员函数(非静态)、静态函数特点
1 package face_09; 2 3 /* 4 * 多态时, 5 * 成员的特点: 6 * 1,成员变量. 7 * 编译时:参考引用型变量所属类中的是否有调用的成员变量,有,编译通过:没有,编 ...
- 面渣逆袭:Java基础五十三问,快来看看有没有你不会的!
大家好,我是老三, 面渣逆袭 系列继续.这节我们回到梦开始的地方--Java基础,其实过了萌新阶段,面试问基础就问的不多,但是保不齐突然问一下.想一下,总不能张口高并发.闭口分布式,结果什么是面向对象 ...
- 『无为则无心』Python函数 — 40、Python自定义异常
目录 1.使用 raise 语句来抛出异常 (1)抛出异常类 (2)抛出异常类的实例 2.自定义异常类 (1)简单实现 (2)完整实现 在Python中,抛出自定义异常的语法为 raise 异常类对象 ...
- [luoguP4139]上帝与集合的正确用法
\(\text{Description}\) \(\text{Given a number }p(p\leqslant10^7).\) \(\text{Output }2^{2^{2^{2^{\cdo ...
- springboot 配置百里香 thymeleaf?
一.1.1父级工程导入jar包. springboot已经完整把thymeleaf集成进框架中了,可以直接添加使用不需要任何的配置信息 <dependency> <groupId&g ...
- spring学习三:Spring Bean 生命周期
Bean 的生命周期 理解 Spring bean 的生命周期很容易.当一个 bean 被实例化时,它可能需要执行一些初始化使它转换成可用状态.同样,当 bean 不再需要,并且从容器中移除时,可能需 ...
- visual studio版本 宏
转载请注明来源:https://www.cnblogs.com/hookjc/ MSVC++ 12.0 _MSC_VER == 1800 (Visual Studio 2013) MSVC++ 11. ...
- 出现Table ‘./mysql/proc’ is marked as crashed and should be repaired
一般这种表崩溃的问题出现在mysql异常停止,或者使用kill -9命令强行杀掉进程导致,进入MySQL命令行后,执行下面的命令即可修复'./mysql/proc'表 repair table mys ...
- k8s补充
k8s补充 容器云发展及主要内容 1.云计算,交付标准(iaas--openstack) 国内:阿里云一华为云(振兴杯)百度云(私有云) 国外:AWS 2.平台即服务(PAAS) 例如:新浪云(号称免 ...
- Java执行cmd命令、bat脚本、linux命令,shell脚本等
1.Windows下执行cmd命令 如复制 D:\tmp\my.txt 到D:\tmp\my_by_only_cmd.txt 现文件如图示: 执行代码: private static void run ...