简体   繁体   English

如何更改 PHPSpreadsheet 中的日期时间格式?

[英]How can I change the datetime format in PHPSpreadsheet?

I use PHPspreadsheet to covert a xlsx file to a csv file.我使用 PHPspreadsheet 将 xlsx 文件转换为 csv 文件。

In column "I" I have dates and times like [26-04-2019 07:57:35] how can I change this to [2019-04-26 07:57:35] ?在“我”列中,我有类似[26-04-2019 07:57:35]日期和时间,我该如何将其更改为[2019-04-26 07:57:35]

I want to change this for uploading to MYSQL.我想将其更改为上传到 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');
}

You will need to loop through each row of each sheet and change column I to the format needed for MySQL.您需要遍历每个工作表的每一行并将列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');
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM