您的位置:首页 > 编程语言 > Java开发

java 操作 excel文件 jxl 与 poi 比较

2016-12-15 10:14 579 查看
[java]
view plain
copy

print?

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);  
 }  
  
}  



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);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: