2014-01-12 3 views
1

Я пытаюсь загрузить лист Excel, содержащий финансовые данные. Он имеет номера счетов в столбце A, и когда я загружаю лист COL A, данные поступают с «x000D». Когда я говорю в Google, это говорит о том, что нужно делать со скрытыми перерывами на ячейках. Кто-нибудь знает, как удалить эти разрывы строк из ячеек? Благодаря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()); 

Надеется, что это поможет, было бы лучше, если мы можем иметь копию первенствует файл. Благодарю.

+0

https://skydrive.live.com/redir?resid=9B36117CB36A6012%21838 getFormattedValue() не работает. Спасибо за вашу помощь. –

Смежные вопросы