import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
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 PoiExcelUtil {
/**
* 获取Excel文件的内容
* @param in 文件流
* @param isXls xls 或 Xlsx
* @return
*/
public static List<String[]> readExcel(InputStream in, boolean isXls) {
List<String[]> list = new ArrayList<String[]>();
Workbook workbook = null;
try {
if (isXls) {
workbook = new HSSFWorkbook(in);//97-2003 Excel工作簿对象
} else {
workbook = new XSSFWorkbook(in);//2007 Excel工作簿对象
}
for (int i = 0; i < workbook.getNumberOfSheets(); i++) {
Sheet sheet = workbook.getSheetAt(i);//Excel工作表对象
for (int j = sheet.getFirstRowNum(); j <= sheet.getLastRowNum(); j++) {
if(j == 0){
continue;//跳过Header
}
Row row = sheet.getRow(j);//Excel工作表的行
String[] cellValues = new String[row.getLastCellNum()];
for (int k = row.getFirstCellNum(); k < row.getLastCellNum(); k++) {
Cell cell = row.getCell(k, Row.RETURN_BLANK_AS_NULL);//Excel工作表指定行的单元格
if(null == cell){
cellValues[k] = "";
}else{
//判断单元格值类型
switch(cell.getCellType()){
case Cell.CELL_TYPE_STRING://字符串类型
cellValues[k] = cell.getRichStringCellValue().getString();
break;
case Cell.CELL_TYPE_NUMERIC://数值类型
if(HSSFDateUtil.isCellDateFormatted(cell)){
cellValues[k] = cell.getDateCellValue().toString();
}else{
DecimalFormat decimalFormat = new DecimalFormat("#");
cellValues[k] = decimalFormat.format(cell.getNumericCellValue());
}
break;
case Cell.CELL_TYPE_FORMULA://公式
cellValues[k] = cell.getCellFormula();
break;
case Cell.CELL_TYPE_ERROR|Cell.CELL_TYPE_BLANK:
cellValues[k] = "";
break;
case Cell.CELL_TYPE_BOOLEAN:
cellValues[k] = String.valueOf(cell.getBooleanCellValue());
break;
default:
cellValues[k] = "";
}
}
}
list.add(cellValues);
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
public static void main(String[] args) {
File file = new File("C:\\Users\\Administrator\\Desktop\\LOLO DATA\\majia20150515.xls");
boolean isXls = file.getName().endsWith(".xls")||file.getName().endsWith(".XLS");
InputStream in = null;
try {
in = new FileInputStream(file);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
List<String[]> list = PoiExcelUtil.readExcel(in, isXls);
for(Object[] obj : list){
StringBuffer buffer = new StringBuffer();
for (Object object : obj) {
buffer.append(object).append(" ");
}
System.out.println(buffer.toString());
}
System.out.println("list size : " + list.size());
}
}
- 浏览: 58138 次
- 性别:
- 来自: 武汉
最新评论
-
sd445419855:
有一个小坑,Calendar.HOUR, 是设置 12 小时制 ...
获取年、季度、周的开始日期和结束日期工具类 -
Saro:
尝试下Joda-Time或者JAVA8吧。
获取年、季度、周的开始日期和结束日期工具类 -
hardneedl:
是时候用JAVA 8 新的日期时间类了
获取年、季度、周的开始日期和结束日期工具类 -
Asia1752:
[/img][/img][/img][/img][/img][ ...
在Eclipse中部署Maven项目的几种方法 -
HogwartsRow:
FLFLFLFLFLS 写道 5555555
什么情况,需要帮 ...
文本编辑器(KindEditor v.4x)使用说明书
相关推荐
java上传并读取excel工具类 涉及到MultiFile转FIle 以及多个sheet页
Java读取Excel内容 v Java读取Excel内容 Java读取Excel内容
拿着这个工具类,再也不用每天问度娘java怎么快速读取excel了,本人Jayden,欢迎批评指正。
操作Excel工具类,导出Excel方法,读取Excel中的数据,导入导出采用excel2003 版本
使用poi读取写入复杂excel内容包括样式,工具类
读取Excel表格内容为数组,并对读取内容做处理,找了好几个资料整合了起来,测试可以跑通,需导入libs中的包 1.通过excel fx函数获取值 2.列表中为空的行去掉(这里自己写的循环,没想到别的方法)
读取环境为Win10+VS2015,个人参考资料封装的excel读取模块用来读取Excel2007中的数据,文件为压缩文件,亲测可用。
jquery读取excel组件,可读取excel表格中的内容
java 读取Excel文件中的内容 java 读取Excel文件中的内容
读取Excel内容实例VB6.0源代码,经过作者的几天摸索出来,现在把源源码发上去和大家共享
读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL...
C++读取Excel数据 ole 模式 VS2003 Excel 2003
包含POI和JXL读取EXCEL数据的工具类(可以直接调用)和需要的工具类
VB读取Excel内容 比较好的例子 用vb操作excel文件
sql server 直接读取excel ,不需要把excel导入数据库。直接进行查询或者插入临时表后操作,包含32位及64位
vb6读取excel文件内容 如何连接sql数据库 读取里面的数据 excel 2003
java读取Excel文件中多个sheet,生成xml格式的文件
读取Excel读取Excel读取Excel读取Excel读取Excel读取Excel读取Excel
QT 快速读取Excel文件,QT 快速读取Excel文件,QT 快速读取Excel文件。
java 读取excel内容 创建excel 插入文字及图片 可以直接运行