gpt4 book ai didi

java - Apache POI - 允许使用时间字符串进行计算

转载 作者:行者123 更新时间:2023-12-04 20:29:24 25 4
gpt4 key购买 nike

我有一个包含一些时间值的 Excel 表。这些值是格式化为字符串的持续时间。当我尝试对这些值求和时,我得到 0 作为结果,因为 Excel 无法对字符串求和。当我点击公式栏中的输入按钮时,它确实变成了一个时间,所以我的总和有效。如何将单元格的值从字符串更改为时间值?我已经将日期格式设置为 [hh:mm]DateFormat
我从转换为秒的时间量开始,然后将其转换为 Duration

Duration clockedDuration = Duration.ofSeconds(clockedSeconds)

然后我使用 DurationFormatUtils 将 Duration 格式化为字符串
DurationFormatUtils.formatDuration(duration.toMillis(), "HH:mm", true)

然后我将单元格值设置为刚刚创建的字符串
c.setCellValue(clockedDuration)

然后我设置 CellStyle到具有 DataFormat 的设置为 [hh]:mm
最后,我对该特定列中的所有值求和(在本例中为 B)
c = r.createCell(i++)
c.setCellFormula("SUM(B2:B" + lastRow +")")
c.setCellType(Cell.CELL_TYPE_FORMULA)

这是我在行中的第一个值上按 Enter 按钮之前的工作表 (09:52)

enter image description here

这是我在公式栏中按下回车按钮后的工作表

enter image description here

最佳答案

我通过将秒除以 86400 得到十进制值然后使用 [hh]:mm 来修复它。作为数据格式。

c.setCellValue(clockedSeconds / 86400)  // 24(hours) * 60(minutes) * 60(seconds) = 86400

关于java - Apache POI - 允许使用时间字符串进行计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52973065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com