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

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

转载于:https://www.cnblogs.com/ae6623/archive/2012/09/05/4416670.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值