适用于xls和xlsx的POI代码
下面是对Excel的两种格式(xls和xlsx)都适用的 Apache POI 的测试代码。
需要的jar包有:
dom4j-1.7-20060614.jar
log4j-1.2.13.jar
poi-3.7-20101029.jar
poi-ooxml-3.7-20101029.jar
poi-ooxml-schemas-3.7-20101029.jar
xbean.jar
下面是具体代码:
package ccz;
import org.apache.poi.hssf.usermodel.HSSFCell;
import java.io.FileInputStream;
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.ss.usermodel.WorkbookFactory;
public class TestPOI {
public static String fileToBeRead1=”D:/cc1.xls”;
public static String fileToBeRead2=”D:/cc2.xlsx”;
public static void printExcel(Cell cell)
{
if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING)
System.out.println(“单元格是字符串,值是: ” + cell.getStringCellValue());
else if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC)
System.out.println(“单元格是数字,值是: ” + cell.getNumericCellValue());
else
System.out.println(“单元格的值不是字符串或数值。”);
}
public static void main(String argv[]){
try{
// 创建对Excel工作簿文件的引用
//HSSFWorkbook workbook1 = new HSSFWorkbook(new FileInputStream(fileToBeRead1));
Workbook workbook1 = WorkbookFactory.create(new FileInputStream(fileToBeRead1));
Workbook workbook2 = WorkbookFactory.create(new FileInputStream(fileToBeRead2));
// 创建对工作表的引用。
// 本例是按名引用(让我们假定那张表有着缺省名”Sheet1″)
Sheet sheet1 = workbook1.getSheet(“Sheet1″);
Sheet sheet2 = workbook2.getSheet(“Sheet1″);
// 也可用getSheetAt(int index)按索引引用,
// 在Excel文档中,第一张工作表的缺省索引是0,
// 其语句为:HSSFSheet sheet = workbook.getSheetAt(0);
// 读取左上端单元
Row row1 = sheet1.getRow(0);
Row row2 = sheet2.getRow(0);
Cell cell1 = row1.getCell((short)0);
Cell cell2 = row2.getCell((short)0);
// 输出单元内容,cell.getStringCellValue()就是取所在单元的值
printExcel(cell1);
printExcel(cell2);
sheet1 = workbook1.getSheetAt(0);
row1 = sheet1.getRow(1);
cell1 = row1.getCell((short)2);
printExcel(cell1);
sheet2 = workbook2.getSheetAt(0);
row2 = sheet2.getRow(1);
cell2 = row2.getCell((short)2);
printExcel(cell2);
}catch(Exception e) {
System.out.println(“已运行xlRead() : ” + e );
}
}
}