PHPExcel XLSX格式千位分隔符问题

4
我正在使用
\PHPExcel_Shared_String::setThousandsSeparator(',');

为了在Excel文件中定义千位分隔符,可以使用以下方法。这样一来,单元格将显示为55 452而不是55452。但是,单元格的值仍为整数55452,因此可以进行计算、在图表中使用等操作。

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

2个回答

2

您需要像这样定义数字格式“#,#0.##; [红色] - #,#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的例子吗? - Sarah Trees

1
千位分隔符将用于百万、十亿等数字;据我所知,Excel不支持直接为每个倍数定义不同的分隔符。
但是,您可以定义一个数字格式掩码:
#:###!###,##0.00

它可能在MS Excel本身中运行,但PHPExcel不会正确格式化该值。


请问您能否添加一个使用 PHPExcel_Shared_String::setThousandsSeparator 的示例呢?谢谢! - Sarah Trees
无法使用 - 在 #:###!###,##0.00 上方进行格式化实际上会破坏生成的 Excel 文档。 - lubosdz
@lubosdz 那么你会如何在MS Excel中完成它? - Mark Baker
@MarkBaker 我使用了自定义格式 #,##0;[Red]-#,##0。例如:$ws->getStyleByColumnAndRow($col, $row)->getNumberFormat()->setFormatCode('#,##0;[Red]-#,##0'); - lubosdz
啊,我误解了;我以为你有一种定义不同的百万分隔符和千位分隔符的方法。 - Mark Baker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接