2014-01-12 72 views
1

我试图上传一个包含财务数据的Excel表格。它在列A上有帐号,当我上传表单COL时,数据附带“x000D”。当我谷歌这说它与隐藏的换行符单元格。有人知道如何从细胞中移除这些换行符吗?由于PHPEXCEL-如何从单元格中删除隐藏的换行符

function import_data($filename, &$new_chart_accounts, $extension = '') { 
    $this->init_worksheet($filename, $extension); 

    $entries = array(); 
    $new_chart_accounts = array(); 
    $chart_accounts = ChartAccounts::read_all(true); 

    $cha_description; 
    $indent = $this->dimension[0][0]; 
    for ($row = $this->dimension[0][1] + 1; $row < $this->dimension[1][1]; $row++) { 
     $entry = array(); 
     for ($col = $this->dimension[0][0]; $col <= $this->dimension[1][0]; $col++) { 
      if ($this->sheet->cellExistsByColumnAndRow($col, $row)) { 
       $cell = $this->sheet->getCellByColumnAndRow($col, $row); 
       $style = $this->sheet->getStyle($cell->getCoordinate()); 
       $fill = $style->getFill(); 
       if ($fill->getFillType() == PHPExcel_Style_Fill::FILL_NONE 
         || ($fill->getFillType() == PHPExcel_Style_Fill::FILL_SOLID && $fill->getStartColor()->getRGB() == 'FFFFFF')) { 

        $value = trim($cell->getValue()); 
        //print $value; 
        switch ($col) { 
         case self::ACCOUNT_NUMBER: 
          $entry['cha_number'] = $value; 
          break; 
         case self::ACCOUNT_DESCRIPTION: 
          $entry['cha_description'] = $value; 
          break; 
         case self::AMOUNT: 
         case self::AMOUNT_2: 
          $value = str_replace(array(',', '$'), '', $value); 
          // $sign = substr($value, strlen($value) - 2, 2); 
          // if ($sign == 'cr' || $sign == 'dr') { 
           // $value = str_replace($sign, '', $value); 
          // } else { 
           // $sign = 'dr'; 
          // } 
          // $entry['sign'] = $sign; 
          // if ($value != '' && is_numeric($value)) { 
           // $entry['data_amount'] = $value; 
          // } 
      $entry['data_amount'] = $value; 
        } 
       } 
      } 
     } 
+0

是否有必要删除换行符?或者我们可以将其格式化为一个? – mmr

+0

@ mmr,看到这个文件是从MyOB导入的,当我上传它时,所有的账号都带有“x000D”ex-“1004x00D”。 –

+0

生成此列的列的类型/格式是什么? – mmr

回答

1

这将替换字符串中包含的任何空间将得到单元格的值与格式

$cellValue = str_replace(' ', '', $cell->getFormattedValue()); 

希望这会有所帮助,它会更好,如果我们能有您的Excel的副本文件。谢谢。

+0

https://skydrive.live.com/redir?resid=9B36117CB36A6012%21838 getFormattedValue()不起作用。谢谢你的帮助。 –

相关问题