douchuanchai2793
2018-09-11 18:12
浏览 346
已采纳

如何在PhpSpreadSheet中设置货币格式?

I'm using PHPSpreadSheet and I want to set money format for a cell. In PHPExcel you can do this by using the following lines...

$this->phpExcelObject->getActiveSheet()
     ->getStyle('D4')
     ->getNumberFormat()
     ->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_USD_SIMPLE);

I tried to this in PHPSpreadSheet, this is what i did...

$this->spreadsheet->getActiveSheet()
     ->getStyle('D4')
     ->getNumberFormat()
     ->setFormatCode('$ #,##0.00');

But it doesn't work. Any ideas? or am I doing it wrong? Thanks in advance.

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • dongwu8050 2018-09-11 21:38
    已采纳

    I couldn't do it with PHPSpreadSheet. In case someone runs with the same problem, this is what I did (not a proper solution but it's something).

    I created a function to return the value with the money symbol.

    public function formatValueMoney($number){
      $val = number_format($number,2,".",",");
      $setVal = '$'.$val;
    
      return $setVal;
    }
    
    $int = formatValueMoney(34567898765);
    echo $int;
    

    and this : $34,567,898,765.00 is the result. i just added this in the cell.

    已采纳该答案
    打赏 评论
  • dongzuo9096 2018-09-11 18:37

    Try this:

    <?php
    
    use \PhpOffice\PhpSpreadsheet\Spreadsheet;
    use \PhpOffice\PhpSpreadsheet\Cell\DataType;
    
    $xls   = new Spreadsheet();
    $sheet = $xls->getActiveSheet();
    
    $sheet->getStyle('D4')->getNumberFormat()->setFormatCode('###,###,###.##');
    $sheet->setCellValueExplicit('D4', $your_value, DataType::TYPE_NUMERIC);
    
    打赏 评论
  • doumingchen3628 2018-10-30 20:07

    I was able to do the following with PHPSpreadsheet:

    $spreadsheet->getActiveSheet()
        ->getStyle($thisCol)
        ->getNumberFormat()
        ->setFormatCode(PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_USD_SIMPLE);
    

    The format code for FORMAT_CURRENCY_USD_SIMPLE == '"$"#,##0.00_-'

    打赏 评论

相关推荐 更多相似问题