在开发过程中,与excel文件交互是常有的事情,下面用POI实现了个简单的例子。 代码如下(用的是POI-3.0.2): public static void main(String[] args) { try { String filepath = "d://问题清单.xls"; FileInputStream fis = new FileInputStream(filepath); // POIFSFileSystem pfs = new POIFSFileSystem(new FileInputStream("d://OA问题清单.xls")); // HSSFWorkbook hwb = new HSSFWorkbook(pfs); HSSFWorkbook hwb = new HSSFWorkbook(fis); // HSSFSheet hws = hwb.getSheetAt(0); HSSFSheet hws = hwb.getSheet("问题清单"); HSSFRow row = hws.getRow(2); HSSFCell cell = null; cell = row.getCell((short) 1); System.out.println("cellnumber:"+cell.getCellNum()); System.out.println("cellvalue:"+getExcelCellValue(cell)); cell.setCellValue(new Date()); cell = row.getCell((short)2); HSSFRichTextString rts = new HSSFRichTextString("输入"); cell.setCellValue(rts); FileOutputStream fos = new FileOutputStream(filepath); hwb.write(fos); fis.close(); fos.close(); } catch (FileNotFoundException ex) { Logger.getLogger(poi.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(poi.class.getName()).log(Level.SEVERE, null, ex); } } public static String getExcelCellValue(HSSFCell cell) { String ret = ""; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); DecimalFormat df = new DecimalFormat("#"); int celltype = cell.getCellType(); switch(celltype){ case HSSFCell.CELL_TYPE_NUMERIC: if(HSSFDateUtil.isCellDateFormatted(cell)){ ret = sdf.format(cell.getDateCellValue()); }else{ ret = df.format(cell.getNumericCellValue()); } break; case HSSFCell.CELL_TYPE_STRING: ret = cell.getRichStringCellValue().toString(); break; default: } return ret; }