java读写Excel文件的开源免费方法大概有四种:
1、 poi.jar
2、 jxl.jar
3、 jcom.jar
4、 JDBC-ODBC Excel Driver
首先我们看一下poi.jar这个开源方案:
poi.jar 是Apache开源项目,下载的地址为:http://www.apache.org/dyn/closer.cgi/poi/release/bin/poi-bin-3.8-20120326.zip
大小22.10M.
poi写入Excel的代码如下
public static void CreateExcel() throws IOException{
//建立工作簿 Excel
HSSFWorkbook wb = new HSSFWorkbook();
//建立sheet页,sheet1为sheet页名称
HSSFSheet sheet = wb.createSheet("sheet1");
//获取行
HSSFRow row = sheet.createRow(0); //row从0开始
row.createCell(0).setCellValue("哈哈哈哈"); //单元格从0开始
FileOutputStream fileOut = new FileOutputStream("D:/develpfiles/ExcelPoi.xls");
wb.write(fileOut);
fileOut.close();
}
poi读取Excel的代码如下:
public static void ReadExcel() throws IOException{
//文件路径
String fileName = "D:/develpfiles/ExcelPoi.xls";
HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(fileName));
for (int i = 0; i < wb.getNumberOfSheets(); i++) {
HSSFSheet sheet = wb.getSheetAt(i);
//表中实际存在的数量
int rows = sheet.getPhysicalNumberOfRows();
System.out.println("There is " + rows + "rows in Sheet" +wb.getSheetName(i));
//开始读取
for (int r = 0; r < rows; r++){
HSSFRow row = sheet.getRow(r);
if (row ==null) {
continue;
}
//表行中实际存在的数量
int cells = row.getPhysicalNumberOfCells();
//读取行中单元内容
for (int c = 0; c < cells; c++){
HSSFCell cell = row.getCell(c);
String value = null;
switch (cell.getCellType()){
case HSSFCell.CELL_TYPE_FORMULA: value = "FORMULA value=" +cell.getCellFormula(); break;
case HSSFCell.CELL_TYPE_NUMERIC: value= "NUMERIC value=" + cell.getNumericCellValue();break;
case HSSFCell.CELL_TYPE_STRING:value = "STRING value=" +cell.getStringCellValue();break;
}
System.out.println("CELL col=" + cell.getColumnIndex()+" VALUE="+ value);
}
}
}
}
其次,我们来探讨一下jxl.jar。
jxl.jar 支持Excel95-2000的所有版本,生成的格式为Excel2000,另外还支持字体、数字、日期的操作,能够修饰单元格属
性,支持图像和图标,
未完待续。。。