java读取EXCEL文件 jxl 和 poi 两套API分别读取实例 实用小功能
java读取EXCEL文件 低版本的 jxl api是一个选择 , 还有一个最新的api poi
当然其读取的EXCEL版本是不一样的 jxl 只能读取 EXCEL 07及以前的文件;
POI可以读取 07及以上版本的EXCEL文件, 下面是两套API读取文件的不同方式
本实例的API JAR包资源 如下:
jxl.jar 资源包请参考 JXL 导出EXCEL文章
poi-3.16.jar poi jars.zip
poi-examples-3.16.jar
poi-excelant-3.16.jar
poi-ooxml-3.16.jar
poi-ooxml-schemas-3.16.jar
poi-scratchpad-3.16.jar
代码上:
public static void main(String[] args) throws Exception {
ReadXls rf = new ReadXls();
String s = "";
s = rf.readEXCEL2007("c:\\gjtest.xlsx");
System.out.println(s);
}
// 读取xls文件
@SuppressWarnings("deprecation")
public String readEXCEL(String file) throws IOException {
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(file));// 创建对Excel工作簿文件的引用
for (int numSheets = 0; numSheets < workbook.getNumberOfSheets(); numSheets++) {
if (null != workbook.getSheetAt(numSheets)) {
HSSFSheet aSheet = workbook.getSheetAt(numSheets);// 获得一个sheet
for (int rowNumOfSheet = 0; rowNumOfSheet <= aSheet
.getLastRowNum(); rowNumOfSheet++) {
if (null != aSheet.getRow(rowNumOfSheet)) {
HSSFRow aRow = aSheet.getRow(rowNumOfSheet); // 获得一个行
for (short cellNumOfRow = 0; cellNumOfRow <= aRow
.getLastCellNum(); cellNumOfRow++) {
StringBuilder content = new StringBuilder();
if (null != aRow.getCell(cellNumOfRow)) {
HSSFCell aCell = aRow.getCell(cellNumOfRow);// 获得列值
if (this.convertCell(aCell).length() > 0) {
content.append(this.convertCell(aCell));
}
}
System.out.print(content);
}
}
System.out.println("\n");
}
}
}
return null;//content.toString();
}
// 读取xlsx文件
public String readEXCEL2007(String file) throws IOException {
XSSFWorkbook workbook = new XSSFWorkbook(file);
for (int numSheets = 0; numSheets < workbook.getNumberOfSheets(); numSheets++) {
if (null != workbook.getSheetAt(numSheets)) {
XSSFSheet aSheet = workbook.getSheetAt(numSheets);// 获得一个sheet
System.out.println(aSheet.getSheetName());
for (int rowNumOfSheet = 0; rowNumOfSheet <= aSheet
.getLastRowNum(); rowNumOfSheet++) {
//System.out.println(rowNumOfSheet);
if (null != aSheet.getRow(rowNumOfSheet)) {
XSSFRow aRow = aSheet.getRow(rowNumOfSheet); // 获得一个行
StringBuilder content = new StringBuilder();
for (short cellNumOfRow = 0; cellNumOfRow <= aRow.getLastCellNum(); cellNumOfRow++) {
if (null != aRow.getCell(cellNumOfRow)) {
XSSFCell aCell = aRow.getCell(cellNumOfRow);// 获得列值
//System.out.print(this.convertCell(aCell));
if (this.convertCell(aCell).length() > 0) {
content.append(this.convertCell(aCell) +" ");
}
}
//content.append("\n");
}
System.out.print(content.toString());
}
System.out.println("\n");
}
}
}
return "";//content.toString();
}
/**
* 获取单元格内的数据
* @param cell
* @return
*/
private String convertCell(Cell cell) {
NumberFormat formater = NumberFormat.getInstance();
formater.setGroupingUsed(false);
String cellValue = "";
if (cell == null) {
return cellValue;
}
switch (cell.getCellType()) {
case HSSFCell.CELL_TYPE_NUMERIC:
cellValue = formater.format(cell.getNumericCellValue());
break;
case HSSFCell.CELL_TYPE_STRING:
cellValue = cell.getStringCellValue();
break;
case HSSFCell.CELL_TYPE_BLANK:
cellValue = cell.getStringCellValue();
break;
case HSSFCell.CELL_TYPE_BOOLEAN:
cellValue = Boolean.valueOf(cell.getBooleanCellValue()).toString();
break;
case HSSFCell.CELL_TYPE_ERROR:
cellValue = String.valueOf(cell.getErrorCellValue());
break;
default:
cellValue = "";
}
return cellValue.trim();
}
如有疑问 请留言 欢迎提供建议
评论已有 0 条