как получить имя листа (bcoz в одном excel есть 7 листов)?
Чтобы получить текущий активный лист:
$sheetName = $objPHPExcel->getActiveSheet()->getTitle();
время изменилось на некоторое целочисленное значение, которое должно быть таким же, как в листе Excel
Посмотрите PHPExcel_Shared_Date :: ExcelToPHP ($ excelDate) или PHPExcel_Shared_Date :: ExcelToPHPObject ($ excelDate) для преобразования даты /значения времени для PHP-метки времени или объекта DateTime
Взгляните на метод $ objPHPExcel-> getActiveSheet () -> toArray (), а не просматривайте все rwos и столбцы самостоятельно.Если вы хотите использовать toArray с отформатированным аргументом, не используйте $ objReader-> setReadDataOnly (true);в противном случае PHPExcel не сможет различить число и дату / время.В последнем коде SVN добавлен метод rangeToArray () к объекту рабочего листа, который позволяет одновременно читать строку (или блок ячеек), например, $ objPHPExcel-> getActiveSheet () -> rangeToArray ('A1: A4')
Остальные вопросы - это в основном манипуляции с массивами PHP
РЕДАКТИРОВАТЬ
PS.Вместо того, чтобы просто сказать нам, что руководство действительно очень плохое ... расскажите, как мы можем его улучшить.
РЕДАКТИРОВАТЬ 2
Использование новейшего кода SVN длявоспользоваться методом rangeToArray ():
<code>$objWorksheet = $objPHPExcel->setActiveSheetIndex(0);
$highestRow = $objWorksheet->getHighestRow();
$highestColumn = $objWorksheet->getHighestColumn();
$headingsArray = $objWorksheet->rangeToArray('A1:'.$highestColumn.'1',null, true, true, true);
$headingsArray = $headingsArray[1];
$r = -1;
$namedDataArray = array();
for ($row = 2; $row <= $highestRow; ++$row) {
$dataRow = $objWorksheet->rangeToArray('A'.$row.':'.$highestColumn.$row,null, true, true, true);
if ((isset($dataRow[$row]['A'])) && ($dataRow[$row]['A'] > '')) {
++$r;
foreach($headingsArray as $columnKey => $columnHeading) {
$namedDataArray[$r][$columnHeading] = $dataRow[$row][$columnKey];
}
}
}
echo '<pre>';
var_dump($namedDataArray);
echo '
«;