如何使用PHPExcel获取XLS文件格式值

时间:2013-11-18 11:31:56

标签: php phpexcel

我有格式化的XLS单元格参考号。这看起来像我的细胞

Cells of the XLS file

  • E8:日期格式化单元格
  • E9:数字格式化的单元格
  • E10:通用格式化单元格
  • E11:格式化单元格的百分比
  • E12:分数格式化单元格

我想阅读上面的这些单元数据没有任何变化(2013年5月10日星期五,41404.00,drfsdf,1/2)我使用下面的方法,但我没有成功每个波纹管方法返回文本值的细胞

$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);
   $rowIndex = $row->getRowIndex();
   $array_data[$rowIndex] = array('A' => '', 'B' => '');
   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();
      }
   }
}  

请帮助使用PHPExcel将XLS文件的视图值作为Friday, May 10, 2013 , 41404.00, drfsdf, 1/2获取到$ array_data。

1 个答案:

答案 0 :(得分:2)

摆脱

$objReader->setReadDataOnly(true);

否则PHPExcel无法知道某个单元格是否被格式化为日期

setReadDataOnly(true)告诉PHPExcel从每个单元格加载原始数据。由于MS Excel区分日期/时间与浮点数的唯一方法是通过数字格式掩码(而不是原始数据),并且您告诉PHPExcel不要读取数字格式掩码,PHPExcel无法区分,所以所有花车都被简单地视为花车