【问题标题】:phpexcel thousand separator for xlsx用于 xlsx 的 phpexcel 千位分隔符
【发布时间】:2013-03-14 13:55:01
【问题描述】:

我正在使用

\PHPExcel_Shared_String::setThousandsSeparator(',');

为 Excel 文件定义千位分隔符。多亏了它,一个单元格显示为55 452 而不是55452。不过,单元格值是一个整数 55452,因此可以计算,在图表中使用等。

是否有类似的方法来定义百万分隔符等(例如,每 3 位定义一个分隔符)?

【问题讨论】:

    标签: php excel


    【解决方案1】:

    你需要定义这样的数字格式 "#,#0.##;[Red]-#,#0.##"

    $workbook = new Spreadsheet_Excel_Writer('example.xls');
    $worksheet =& $workbook->addWorksheet("example_sheet_name");
    $format =& $workbook->addFormat();
    $format->setNumformat('#,#0.##;[Red]-#,#0.##');
    
    $worksheet->writeNumber(1, 1, '100000',$format);
    
    output : 100.000,00
    

    【讨论】:

    • 这是 PHPExcel 的例子吗?
    【解决方案2】:

    千位分隔符将用于百万、十亿等;据我所知,Excel 不直接支持每个倍数的不同分隔符

    但是,您可以定义以下数字格式掩码:

    #:###!###,##0.00
    

    它可能会在 MS Excel 本身中工作,尽管 PHPExcel 无法正确格式化值

    【讨论】:

    • 您能否添加一个使用 PHPExcel_Shared_String::setThousandsSeparator 的示例?谢谢!
    • 不起作用 - 在#:###!###,##0.00 上方格式化实际上会损坏生成的 Excel 文档。
    • @lubosdz 那么你将如何在 MS Excel 中做到这一点?
    • @MarkBaker 我使用了自定义格式#,##0;[Red]-#,##0。例如:$ws->getStyleByColumnAndRow($col, $row)->getNumberFormat()->setFormatCode('#,##0;[Red]-#,##0');
    • 啊,我误会了;我以为您有一种方法可以将不同的百万分隔符定义为千位分隔符
    猜你喜欢
    • 2012-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-29
    • 1970-01-01
    • 2011-08-17
    • 2010-10-27
    • 2011-12-06
    相关资源
    最近更新 更多