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

标签 java excel apache-poi

我有一份工作,必须在 Excel 工作表上填写我的工作时间,并且需要将该文件上传到 Dropbox map 。我想制作一个程序来自动为我执行此操作。现在可以将文件上传到 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 documentation on custom formats

要设置一个单元格来保存时间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),然后对其应用时间样式

或者,创建一个 Java Date 对象,并设置它(如果更容易的话)

关于java - 如何使用自定义格式填充 Excel 文档中的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28023047/

相关文章:

Javafx 如何绑定(bind)到属性列表

java - "Simple"矩形碰撞检测 : Why doesn't my code work?

java - :while{} mean in Java? 的值是什么

vba - VBA 中的 Worksheets.Count 返回错误的页数

java - Apache POI 忽略文本格式的空单元格

java - 将视频文件 (.mp4) 集成到 docx/doc 中

java - 如何添加到链接列表中的特定号码?

excel - 将英尺-英寸转换为英寸 Excel

java - 使用XWPFParagraph和XWPFRun,如何使打印的线条一致。请看说明

vba - 自动筛选(或循环)并根据单元格值复制到另一个工作簿