我使用 PHPExcel 读取 XLS 文件。有单元格日期列。该数据列有两种类型的单元格(日期和文本类型的单元格)。
我需要获取 XLS 文件中单元格的视图值。因此,在获取单元格的值之前,我想确定该单元格是日期单元格还是文本单元格。
如何获取 XLS 文件单元格的视图值。是否有 getCellType()、getViewValueOfCell() 之类的方法或任何其他方法来获取单元格的视图值?
注意:$cell->getType
在 PHPExcel 中不是真正的方法。这种伪方法。
请为波纹管阅读建议最佳逻辑/方法。
// read view value form date column
if($cell->getType == 'Date'){
$array_data[$rowIndex][$cell->getColumn()] = PHPExcel_Style_NumberFormat::toFormattedString($cell->getCalculatedValue(), 'YYYY-MM-DD');
}
else if($cell->getType == 'Text'){
$array_data[$rowIndex][$cell->getColumn()] = $cell->getCalculatedValue();
}
这是我所有的 XLS 读取功能
$objReader = new PHPExcel_Reader_Excel5();
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load($file_path);
$rowIterator = $objPHPExcel->getActiveSheet()->getRowIterator();
$array_data = array();
foreach ($rowIterator as $row) {
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false); // Loop all cells, even if it is not set
// if(1 == $row->getRowIndex ()) continue;//skip first row
$rowIndex = $row->getRowIndex();
$array_data[$rowIndex] = array('A' => '', 'B' => '', 'C' => '', 'D' => '');
foreach ($cellIterator as $cell) {
if ('A' == $cell->getColumn()) {
$array_data[$rowIndex][$cell->getColumn()] = $cell->getCalculatedValue();
} else if ('B' == $cell->getColumn()) {
$array_data[$rowIndex][$cell->getColumn()] = $cell->getCalculatedValue();
} else if ('C' == $cell->getColumn()) {
// read view value form date column
if($cell->getType == 'Date'){
$array_data[$rowIndex][$cell->getColumn()] = PHPExcel_Style_NumberFormat::toFormattedString($cell->getCalculatedValue(), 'YYYY-MM-DD');
}
else if($cell->getType == 'Text'){
$array_data[$rowIndex][$cell->getColumn()] = $cell->getCalculatedValue();
}
} else if ('D' == $cell->getColumn()) {
$array_data[$rowIndex][$cell->getColumn()] = $cell->getCalculatedValue();
}
}
}