Я использую spreadsheet-reader прочитать некоторые .xls
и .xlsx
и конвертировать их в .csv
.Проблема чтения даты с «электронными таблицами читалку» в PHP
Это мой упрощенный код:
require_once(dirname(__FILE__) . '/../ext/spreadsheet-reader/SpreadsheetReader.php');
require_once(dirname(__FILE__) . '/../ext/spreadsheet-reader/php-excel-reader/excel_reader2.php');
$pCsvPath = Config::$generatedCSVPath . "/" . str_replace(array(".xlsx", ".xls"), ".csv", $pFileName);
$csv = fopen($pCsvPath, "w");
$pReader = new SpreadsheetReader($pFilePath);
// Read only the first sheet
$pSheets = $pReader -> Sheets();
$pReader -> ChangeSheet(0);
foreach ($pReader as $row)
{
fputcsv($csv, $row);
}
Все в порядке, но у меня возникли проблемы с датами.
Там в колонке на файлы .xls
/.xlsx
в следующем формате 2015-02-10
Когда я пишу их .csv
, выход этой колонки 2015201520152015-FebFeb-TueTue
.
Как его преобразовать в .csv
, используя код, который я размещаю выше, но поддерживая дату как правильный формат (2015-02-10
)?
Заранее спасибо.
EDIT: Если я вручную изменить даты от 2015-01-01
до 01-01-2015
(положить год в конце) даты обрабатываются корректно. Если нет возможности сохранить дату как 2015-01-01
, как я могу изменить эту строку в правильном формате (год в конце), используя код, который я пишу выше?
Я знаю, что могу разобрать дату вручную, но не используя код выше, так как все загружается, когда я вызываю функцию $pReader = new SpreadsheetReader($pFilePath)
и нет никакого способа, чтобы манипулировать только дату.
Привет, Avion вы получили какое-либо решение для этого? – Kuttoozz
Нет, @Kuttoozz, извините :( –