如何使用自定义格式填充Excel文档中的单元格

我有一份工作,我必须在工作时间填写Excel表格,我需要将该file upload到Dropbox地图。 我想做一个程序,自动为我做这个。 上传文件到Dropbox现在正在工作,但我想通过我的Java应用程序更改Excel文件中的单元格。 这是我的Java代码:

InputStream inp = new FileInputStream("name.xls"); Workbook wb = WorkbookFactory.create(inp); Sheet sheet = wb.getSheetAt(0); Row row= sheet.getRow(7); Cell cell = row.getCell(1); String week = cell.getRichStringCellValue().getString(); cell.setCellValue("18:00"); FileOutputStream fileOut = new FileOutputStream("name.xls"); wb.write(fileOut); fileOut.close(); 

我可以用18:00填满单元格,但问题是单元格的格式是自定义的。 当我看到自定义格式时,它表示使用[u]:mm 。 当我在18:00填写时,它将18:00放在单元格中,但它保留在单元格的左侧而不是右侧,所以我认为格式不正确。 所以我的问题是,我如何正确填写自定义格式的单元格。

请参阅自定义格式的Apache POI文档

要设置一个单元格保存时间18:00 ,那么你应该做的是

 // Format to hold a time DataFormat format = wb.createDataFormat(); CellStyle style = wb.createCellStyle(); style.setDataFormat(format.getFormat("HH:MM")); // Set the cell to hold 18:00 and style Cell cell = row.getCell(1); cell.setCellValue(18.0/24.0); cell.setCellStyle(style); 

Excel中的时间是一整天的一小部分,所以在18:00你需要设置(18/24) ,然后将时间样式应用到它

或者,创build一个Java Date对象,并设置它,如果更容易