【问题标题】:PHPExcel - set cell type before writing a value in itPHPExcel - 在写入值之前设置单元格类型
【发布时间】:2013-06-17 08:24:54
【问题描述】:

您知道如何在写入值之前设置单元格类型吗?我希望能够设置“常规”、“文本”和“数字”等类型。

谢谢。

【问题讨论】:

    标签: phpexcel


    【解决方案1】:

    当文本是带有前导零的数字时,请执行以下操作: (Cuando el texto es un número que empieza por ceros, hacer)

    $objPHPExcel->getActiveSheet()->setCellValueExplicit('A1', $val,PHPExcel_Cell_DataType::TYPE_STRING);
    

    【讨论】:

      【解决方案2】:

      与写入值后设置类型(数字格式掩码)的方式相同:

      $objPHPExcel->getActiveSheet()
          ->getStyle('A1')
          ->getNumberFormat()
          ->setFormatCode(
              PHPExcel_Style_NumberFormat::FORMAT_GENERAL
          );
      

      $objPHPExcel->getActiveSheet()
          ->getStyle('A1')
          ->getNumberFormat()
          ->setFormatCode(
              PHPExcel_Style_NumberFormat::FORMAT_TEXT
          );
      

      虽然“数字”不是有效的格式掩码。

      您可以在 Classes/PHPExcel/Style/NumberFormat.php 中找到预定义格式掩码列表,或将值设置为任何有效的 Excel 数字格式掩码字符串。

      【讨论】:

      【解决方案3】:

      试试这个

      $currencyFormat = '_($* #,##0.00_);_($* (#,##0.00);_($* "-"??_);_(@_)';
      $textFormat='@';//'General','0.00','@'
      $excel->getActiveSheet()->getStyle('B1')->getNumberFormat()->setFormatCode($currencyFormat);
      $excel->getActiveSheet()->getStyle('C1')->getNumberFormat()->setFormatCode($textFormat);`
      

      【讨论】:

        【解决方案4】:

        听从 Mark 的建议,将默认数字格式设置为整个工作簿中的文本:

        $objPHPExcel = new PHPExcel(); 
        $objPHPExcel->getDefaultStyle()
            ->getNumberFormat()
            ->setFormatCode(
                PHPExcel_Style_NumberFormat::FORMAT_TEXT
            );
        

        而且它完美无缺。谢谢你,马克贝克。

        【讨论】:

          【解决方案5】:

          例如,我希望数字与从数据库中获得的数字相同。

          1. 00100.220000

          2. 00123

          3. 0000.0000100

          所以我修改了如下代码

          $objPHPExcel->getActiveSheet()
              ->setCellValue('A3', '00100.220000');
          $objPHPExcel->getActiveSheet()
              ->getStyle('A3')
              ->getNumberFormat()
              ->setFormatCode('00000.000000');
              
          $objPHPExcel->getActiveSheet()
              ->setCellValue('A4', '00123');
          $objPHPExcel->getActiveSheet()
              ->getStyle('A4')
              ->getNumberFormat()
              ->setFormatCode('00000');
              
          $objPHPExcel->getActiveSheet()
              ->setCellValue('A5', '0000.0000100');
          $objPHPExcel->getActiveSheet()
              ->getStyle('A5')
              ->getNumberFormat()
              ->setFormatCode('0000.0000000');
          

          【讨论】:

            【解决方案6】:

            对于前导零和逗号分隔的数字:

            你可以放'A'来影响整列'。

            $objPHPExcel->getActiveSheet()->getStyle('A1')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1);
            

            然后你可以像往常一样写入单元格。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-06-30
              • 1970-01-01
              • 2014-04-29
              • 2011-10-10
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多