java使用poi读取存储excel表格,包括xls和xlsx格式
2017-10-15 18:55
537 查看
全栈工程师开发手册 (作者:栾鹏)
java教程全解
java使用poi读取存储excel表格,包括xls和xlsx格式。
需要导入的包
poi-3.14.jar
poi-ooxml-3.14.jar
poi-ooxml-schemas-3.14.jar
xmlbeans-2.6.0.jar
代码中需要引入
测试代码
操作excel表格函数类的实现
java教程全解
java使用poi读取存储excel表格,包括xls和xlsx格式。
需要导入的包
poi-3.14.jar
poi-ooxml-3.14.jar
poi-ooxml-schemas-3.14.jar
xmlbeans-2.6.0.jar
代码中需要引入
import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook;
测试代码
public static void main(String[] arges){ try { List<List<String>> alldata=readExcel("myfile.xlsx"); for (List<String> arrayList : alldata) { for (String string : arrayList) { System.out.println(string); } } } catch (Exception e) { // TODO: handle exception } }
操作excel表格函数类的实现
package com.lp.app.io;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook;
//使用poi读取excel表格,包括xls和xlsx格式
public class MyExcel_poi {
//读取表格文件
public static List<List<String>> readExcel(String path) throws IOException {
if (path == null ||"".equals(path)) {
return null;
} else {
String type = gettype(path);
if (!"".equals(type)) {
if ("xls".equals(type)) {
return readXls(path);
} else if ("xlsx".equals(type)) {
return readXlsx(path);
}
} else {
System.out.println(path + " : Not the Excel file!");
}
}
return null;
}
//根据路径查询是xls文件还是xlsx文件
public static String gettype(String path) {
if (path == null || "".equals(path.trim())) {
return "";
}
if (path.contains(".")) {
return path.substring(path.lastIndexOf(".") + 1, path.length());
}
return "";
}
//读取xlsx文件
public static List<List<String>> readXlsx(String path) throws IOException {
System.out.println("Processing..." + path);
InputStream is = new FileInputStream(path);
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(is);
List<List<String>> list = new ArrayList<List<String>>();
// Read the Sheet
for (int numSheet = 0; numSheet < xssfWorkbook.getNumberOfSheets(); numSheet++) {
XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(numSheet);
if (xssfSheet == null) {
continue;
}
// Read the Row
for (int rowNum = 1; rowNum <= xssfSheet.getLastRowNum(); rowNum++)
{
XSSFRow xssfRow = xssfSheet.getRow(rowNum);
if (xssfRow != null) {
//hssfSheet.getLastRowNum();//最后一行行标,比行数小1
//hssfSheet.getRow(k).getLastCellNum();//获取列数,比最后一列列标大1
List<String> rowStrings = new ArrayList<String>();
for (int columnNum = 0; columnNum < xssfRow.getLastCellNum(); columnNum++)
{
rowStrings.add(getValue(xssfRow.getCell(columnNum)));
}
list.add(rowStrings);
}
}
}
xssfWorkbook.close();
return list;
}
//读取xls文件
public static List<List<String>> readXls(String path) throws IOException {
System.out.println("Processing..." + path);
InputStream is = new FileInputStream(path);
HSSFWorkbook hssfWorkbook = new HSSFWorkbook(is);
List<List<String>> list = new ArrayList<List<String>>();
// Read the Sheet
for (int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++) {
HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet);
if (hssfSheet == null) {
continue;
}
// Read the Row
for (int rowNum = 0; rowNum <= hssfSheet.getLastRowNum(); rowNum++)
{
HSSFRow hssfRow = hssfSheet.getRow(rowNum);
if (hssfRow != null)
{
//hssfSheet.getLastRowNum();//最后一行行标,比行数小1
//hssfSheet.getRow(k).getLastCellNum();//获取列数,比最后一列列标大1
List<String> rowStrings = new ArrayList<String>();
for (int columnNum = 0; columnNum < hssfRow.getLastCellNum(); columnNum++)
{
rowStrings.add(getValue(hssfRow.getCell(columnNum)));
}
list.add(rowStrings);
}
}
}
hssfWorkbook.close();
return list;
}
@SuppressWarnings("static-access")
private static String getValue(XSSFCell xssfRow) {
if (xssfRow.getCellType() == xssfRow.CELL_TYPE_BOOLEAN) {
return String.valueOf(xssfRow.getBooleanCellValue());
} else if (xssfRow.getCellType() == xssfRow.CELL_TYPE_NUMERIC) {
return String.valueOf(xssfRow.getNumericCellValue());
} else {
return String.valueOf(xssfRow.getStringCellValue());
}
}
@SuppressWarnings("static-access")
private static String getValue(HSSFCell hssfCell) {
if (hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN) {
return String.valueOf(hssfCell.getBooleanCellValue());
} else if (hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC) {
return String.valueOf(hssfCell.getNumericCellValue());
} else {
return String.valueOf(hssfCell.getStringCellValue());
}
}
}
相关文章推荐
- java使用poi读取xls格式和xlsx格式的excel文件
- 使用poi实现java读取excel表格并存储到数据库中解决读取日期格式问题(ssm框架)
- java使用POI读取excel文件,兼容xls和xlsx
- java使用POI实现excel文件的读取,兼容后缀名xls和xlsx
- Java中通过POI读取Excel 2003 - 2007的xls,xlsx格式
- POI 3.8读取2003与2007格式EXCEL(xls、xlsx)
- poi生成excel表格(xls或者xlsx格式),多个工作sheet
- Java 读取Excel格式xls、xlsx数据工具类
- 使用POI将office(doc/docx/ppt/pptx/xls/xlsx)文件转html格式(附带源码)
- poi生成excel表格(xls或者xlsx格式),多个工作sheet
- java读取Excel的方法,解析xls、xlsx两种格式
- 使用POI读取xlsx文件,包含对excel中自定义时间格式的处理
- java使用poi.3.10读取excel 2003 (xls格式)
- java的poi技术读取Excel[xls,xlsx]
- JAVA 通过poi 读取 本地excel(.xls,.xlsx)文件,文件中 包含图片
- POI使用:用poi接口不区分xls/xlsx格式解析Excel文档(41种日期格式解析方法,5种公式结果类型解析方法,3种常用数值类型精度控制办法)
- 使用POI读取xls和xlsx
- Java实现不同excel格式(*.xls、*.xlsx)文件的读取
- java读写excel(POI,支持xls和xlsx两种格式)
- java中poi解析excel(兼容07版本以上及以下:.xls和.xlsx格式)