首页 > 解决方案 > 如何更改 PHPSpreadsheet 中的日期时间格式?

问题描述

我使用 PHPspreadsheet 将 xlsx 文件转换为 csv 文件。

在“我”列中,我有日期和时间,例如[26-04-2019 07:57:35]如何将其更改为[2019-04-26 07:57:35]

我想更改它以上传到 MYSQL。

use \PhpOffice\PhpSpreadsheet\Reader\Xlsx;
use \PhpOffice\PhpSpreadsheet\Writer\Csv;

$xls_file = "$file";

$reader = new Xlsx();
$spreadsheet = $reader->load($xls_file);


$loadedSheetNames = $spreadsheet->getSheetNames();

$writer = new Csv($spreadsheet);

foreach($loadedSheetNames as $sheetIndex => $loadedSheetName) {
    $writer->setSheetIndex($sheetIndex);
    $writer->save($loadedSheetName.'.csv');
}

标签: phpphpspreadsheet

解决方案


您将需要遍历每张工作表的每一行并将列更改I为 MySQL 所需的格式。

foreach($loadedSheetNames as $sheetIndex => $loadedSheetName) {
    $writer->setSheetIndex($sheetIndex);
    $worksheet   = $spreadsheet->getActiveSheet();
    $highestRow  = $worksheet->getHighestRow(); // e.g. 10

    for ($row = 1; $row <= $highestRow; ++$row) {
        $datenow = $worksheet->getCellByColumnAndRow(9,$row)->getValue();
        $worksheet->setCellValue('I' . $row,date('Y-m-d h:i:s',strtotime($datenow)));

    }  // end of for loop through the sheet

    $writer->save($loadedSheetName.'.csv');
}

推荐阅读