【问题标题】:PHPExcel Accounting FormatsPHPExcel 会计格式
【发布时间】:2011-04-14 21:29:40
【问题描述】:

我正在使用 PHPExcel,我正在尝试使用 Excel 的内置“会计”格式来格式化单元格。我知道格式代码:

PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_USD_SIMPLE

但这只是格式化为两位小数并在数字前添加一个 $。我正在寻找的结果是右侧对齐的单元格,左侧有 $。 $0 值应列为“-”,负值应列为 $ (1.11)

据我所知,文档中没有其他货币格式(虽然我可能错过了,但这个文档太可怕了)。我找错地方了吗?这可以通过常规的单元格格式来实现,还是 Excel 为会计做了一些独特的事情?

【问题讨论】:

    标签: phpexcel


    【解决方案1】:

    我使用 PHPExcel 从现有电子表格中对格式代码进行了逆向工程,得到了这个:

    _("$"* #,##0.00_);_("$"* \(#,##0.00\);_("$"* "-"??_);_(@_)
    

    这是当您选择“会计”格式时 Excel 放置在单元格上的代码...或单击 Excel 2007 中的“$”工具栏按钮。

    如果您不需要货币符号:

    ->setFormatCode("_(* #,##0.00_);_(* \(#,##0.00\);_(* \"-\"??_);_(@_)");
    

    【讨论】:

    • 这对我帮助很大!谢谢!
    • 你如何实现这个?
    • @relipse - $objPHPExcel->getActiveSheet()->getStyle("A1")->getNumberFormat()->setFormatCode("_(\"$\"* #,##0.00_);_(\"$\"* \(#,##0.00\);_(\"$\"* \"-\"??_);_(@_)");
    • 我们能否详细分析一下表达式以及每个字符的作用/含义?
    • idk bout dat @MatthewGoheen,但我需要没有符号和其他答案对我来说仍然是错误的,所以我更新了这样的答案->getNumberFormat()->setFormatCode("_(* #,##0.00_);_(* \(#,##0.00\);_(* \"-\"??_);_(@_)");
    【解决方案2】:

    $objPHPExcel->getActiveSheet()->getStyle('C1')->getNumberFormat()->setFormatCode("#,##0.00");

    或使用

    $objPHPExcel->getActiveSheet()->getStyle('C1')->getNumberFormat()->setFormatCode("#.##0,00");

    设置在getStyleCELL。

    【讨论】:

      【解决方案3】:

      除了 PHPExcel_Style_NumberFormat 中列出的格式之外,没有其他 预定义 格式,但您应该能够将格式代码设置为在设置 MS Excel 自定义格式时可以使用的任何字符串。 .

      例如

      [green]$#,##0.00;[red]$(-#,##0.00)
      

      关于单元格对齐,请自行设置,或者根本不设置。

      【讨论】:

      • 我知道我可以设置单元格对齐方式并在最后进行条件格式设置,但是当 MS Excel 使用“会计”格式时,它会对齐左侧的货币符号($、£等)和右边的单元格的其余部分并自动处理其余部分。这不是可以用PHPExcel设置的格式吗?
      • @epalla 标准 MS Excel 格式掩码将为 "-£* #,##0.00-;-£* #,##0.00_-;_-£* "-"??_-;_-@_-" (使用 £ 作为货币符号)或类似 "-[$€-2] * #,##0.00-;-[ $€-2] * #,##0.00_-;_-[$€-2] * "-"??_-;_-@_-" (使用€)...这些只是标准的MS Excel 格式,可以与 Excel5 和 Excel2007 编写器完美配合……但如果您使用 CSV 或 HTML 或 PDF 编写器,它们看起来就不那么好了
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-02
      • 1970-01-01
      相关资源
      最近更新 更多