gpt4 book ai didi

PHPSpreadsheet 公式在日期之间不起作用

转载 作者:行者123 更新时间:2023-12-04 02:32:07 29 4
gpt4 key购买 nike

我想用 PHPSpreadsheet 计算两个日期时间之间的差异(以小时为单位)。 Excel 是这样做的:

enter image description here

A1 和 A2 单元格格式为:

enter image description here

这是网络上的结果:

enter image description here

当我通过 PHPSpreadsheet 更改值时,我得到了#VALUE!和不同的值格式。

$reader = PhpSpreadsheet\IOFactory::createReader("Xlsx");
$target_file = __DIR__ . '/test.xlsx';
$spreadsheet = $reader->load($target_file);
$spreadsheet->getActiveSheet()->setCellValue('A1', '24.6.2020 12:30');
$writer = new PhpSpreadsheet\Writer\Html($spreadsheet);
$output = $writer->generateHTMLHeader();
$output .= $writer->generateStyles(true);
$output .= $writer->generateSheetData();
$output .= $writer->generateHTMLFooter();
$doc = new DOMDocument();
@$doc->loadHTML($output);
echo $doc->saveHTML();

enter image description here

我也尝试过这样的格式 6/24/2020 14:30 但结果是一样的(#VALUE!)

$spreadsheet->getActiveSheet()->setCellValue('A1', '6/24/2020 14:30');

有人知道应该怎么做吗?

最佳答案

在 Excel 文档中,日期存储为数字,而不是字符串。因此,您需要将正确的数字传递给 setCellValue()

PhpSpreadsheet 提供实用方法Date::stringToExcel()将字符串转换为 Excel 日期。你可以像这样使用它:

$date = PhpSpreadsheet\Shared\Date::stringToExcel('2020-06-24 12:30');
$spreadsheet->getActiveSheet()->setCellValue('A1', $date);

关于PHPSpreadsheet 公式在日期之间不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63673491/

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