java 操作 excel文件 jxl 与 poi 比较
来源:互联网 发布:阿里云和百度云 编辑:程序博客网 时间:2024/06/04 08:29
import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.util.Iterator;import jxl.Sheet;import jxl.Workbook;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;public class Test { /** * @param path */ public static void readExcelByJXL(String path) { Workbook book = null; InputStream input = null; try { input = new FileInputStream(path); book = Workbook.getWorkbook(input); Sheet sheet = book.getSheet(0); int columns = sheet.getColumns(); for (int i = 0; i < sheet.getRows(); i++) { for (int j = 0; j < columns; j++) System.out.print(sheet.getCell(j, i).getContents() + "\t\t\t\t"); System.out.println(); } } catch (Exception ex) { ex.printStackTrace(); } finally { if (book != null) book.close(); if (input != null) try { input.close(); } catch (IOException e) { e.printStackTrace(); } } } /** * @param path */ public static void readExcelByPOI(String path) { HSSFWorkbook book = null; InputStream input = null; try { input = new FileInputStream(path); book = new HSSFWorkbook(input); HSSFSheet sheet = book.getSheetAt(0); int rows = sheet.getPhysicalNumberOfRows(); int cells = 0; HSSFRow row = null; HSSFCell cell = null; // for (Iterator iterator = sheet.rowIterator(); // iterator.hasNext();) { // row = (HSSFRow) iterator.next(); for (int i = 0; i < rows; i++) { row = sheet.getRow(i); cells = row.getPhysicalNumberOfCells(); // for (Iterator iterator2 = row.cellIterator(); iterator2 // .hasNext();) { // cell = (HSSFCell) iterator2.next(); for (short j = 0; j < cells; j++) { cell = row.getCell(j); switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_BLANK: System.out.print(""); break; case HSSFCell.CELL_TYPE_BOOLEAN: System.out.print(cell.getBooleanCellValue()); break; case HSSFCell.CELL_TYPE_ERROR: System.out.print(cell.getErrorCellValue()); break; case HSSFCell.CELL_TYPE_FORMULA: System.out.print(cell.getCellFormula()); break; case HSSFCell.CELL_TYPE_NUMERIC: System.out.print(cell.getNumericCellValue()); break; case HSSFCell.CELL_TYPE_STRING: System.out.print(cell.getStringCellValue()); break; } System.out.print("\t\t\t\t"); } System.out.println(); } } catch (Exception ex) { ex.printStackTrace(); } finally { if (input != null) try { input.close(); } catch (IOException e) { e.printStackTrace(); } } } /** * @param args */ public static void main(String[] args) {//测试JXL比POI速度快 long start = System.currentTimeMillis(); readExcelByJXL("c:/questions.xls"); System.out.println("===================AAAAAAAAAAAAAAAa============"); System.out.println(System.currentTimeMillis() - start); }}