您的位置:首页 > 运维架构 > Apache

java操作Excel(org.apache.poi.hssf.usermodel)

2012-09-05 14:41 633 查看
try{

POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("c:/a.xls"));

HSSFWorkbook wb = new HSSFWorkbook(fs);

HSSFSheet sheet = wb.getSheetAt(0);

HSSFRow row = sheet.getRow(0);

// 这个判断很必要 确保下面cell操作顺利执行

if(row == null){

row = sheet.createRow(0);

}

HSSFCell cell = row.getCell(1, Row.RETURN_NULL_AND_BLANK);

if(cell == null){

cell = row.createCell(1,HSSFCell.CELL_TYPE_STRING);

cell.setCellValue("hahaha");

// 保存修改

FileOutputStream fileOut = new FileOutputStream("c:/a.xls");

wb.write(fileOut);

fileOut.close();

}else{

System.out.println(cell.getStringCellValue());

}

}catch(Exception e){

e.printStackTrace();

}

// 获取指定cell的值 如:G5
CellReference ref = new CellReference("G5");
HSSFCell cell = sheet.getRow(ref.getRow()).getCell(ref.getCol());
System.out.println(cell.getStringCellValue());

// 设置指定cell的值 如:G5
CellReference ref = new CellReference(“G5”);
sheet.getRow(ref.getRow()).getCell(ref.getCol()).setCellValue("haha");

// 单元格合并 from:A1 to:F10
CellReference rFrom = new CellReference(from);
CellReference rTo = new CellReference(to);
sheet.addMergedRegion(new CellRangeAddress(rFrom.getRow(),rTo.getRow(),rFrom.getCol(),rTo.getCol()));
// 设置cell为日期格式
HSSFDataFormat format = this.wb.createDataFormat();
style.setDataFormat(format.getFormat(“m月d日”));
row.createCell(i).setCellStyle(style);

// 单元格是否加锁
HSSFCellStyle style = wb.createCellStyle();
style.setLocked(false); // true加 false不加

// 设置货币型(3位一逗号)

HSSFDataFormat format = wb.createDataFormat();

HSSFCellStyle style = wb.createCellStyle();

style.setDataFormat(format.getFormat("#,##0"));

cell.setCellStyle(style);

cell.setCellValue(888888988);

// 出力excel时,模板里有现成的sum公式,但出力后不自动计算的解决办法

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