У меня есть система, которая разработана с использованием Yii2 framework, и у меня есть файл Excel, который состоит из значения даты, импортированного в систему, например:
ExcelFile
-------------------------------------------------
Name | Birthdate | Place of Birth
-------------------------------------------------
Archie | 1995-09-18 | Nevada
Gerry | 1989-01-23 | Gotham
Я использую PHPExcel для чтения данных в PHP, а затем набор данных в новый массив, например
Матрица
Array
(
[0] => Array
(
[0] => Archie
[1] => 42265
[2] => Nevada
)
[1] => Array
(
[0] => Gerry
[1] => 36217
[2] => Gotham
)
)
Это результат массива после чтения данных из файла Excel.
Вы можете увидеть результат выше, данные в массиве [0][1]
и [1][1]
не состоит значение даты, как данные даты из файла Excel.
У кого-нибудь есть идея, как это решить? или кто-нибудь знает, почему я получил это?
Edtitted
Код в контроллере
Это код для чтения файла Excel
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow();
$highestColumn = $sheet->getHighestColumn();
$arrayData = [];
for ($row = 1; $row <= $highestRow; ++$row) {
$rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, NULL, TRUE, FALSE);
if (!is_null($rowData[0][0])) {
$arrayData[] = array_map(function($values) {
$tempArrayKey = [];
foreach ($values as $key => $value) {
$newKey = $key + 1;
$tempArrayKey[] = $newKey . '_' . $value;
}
return $tempArrayKey;
}, $rowData);
Любая помощь будет оценена. Спасибо
вы можете получить поле даты следующим образом:
$sheet->setCellValueByColumnAndRow(0, 1, "2014-10-16");
Задает строковое значение в ячейке, а не дату. Просто потому, что вы интерпретируете это как дату, не означает, что компьютерные программы автоматически интерпретируют это как дату.
Или
Это можно использовать в обновленном коде:
$arr[$i] = date('Y-m-d', PHPExcel_Shared_Date::ExcelToPHP($birthdate));
Вы должны получить значение ячейки следующим образом…
где $excelDate — это значение ячейки (ваше значение ячейки даты), а ‘YYYY-MM-DD-это формат даты, который вам нужен. \PHPExcel_Style_NumberFormat:: toFormattedString-это встроенная функция PHPExcel.