You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在PhpOffice PhpSpreadsheet导出的Excel中添加印度货币符号

如何在PhpSpreadsheet导出的Excel中添加印度货币符号₹

我来帮你解决这个问题!你遇到的问题是因为HTML实体₹是给HTML文档设计的,Excel并不识别这种实体编码,所以直接使用它会显示成原始字符串而不是货币符号。下面有两种可行的解决方案:

方法1:直接使用印度卢比符号的Unicode字符

印度卢比符号的Unicode编码是U+20B9,对应的字符就是。只要你的PHP文件编码为UTF-8(目前大部分项目默认都是),直接把这个字符拼接到金额前面即可,无需使用HTML实体。

修改你代码中设置总金额的部分:

// 直接使用₹符号替换HTML实体
$total_amount = '₹' . $val['TotalAmount'];
$sheet->setCellValue('C' . $rowCount, $total_amount);

这样导出的Excel就能正常显示印度货币符号了。

方法2:设置单元格数字格式(更推荐)

如果总金额是数字类型,更规范的做法是把金额以数字形式写入单元格,然后为单元格设置印度卢比的货币格式。这样单元格内容会保留数字属性,方便后续在Excel中进行计算,同时自动显示货币符号。

修改代码如下:

// 直接写入纯数字金额,不拼接符号
$sheet->setCellValue('C' . $rowCount, $val['TotalAmount']);
// 为单元格设置印度卢比货币格式
$sheet->getStyle('C' . $rowCount)->getNumberFormat()->setFormatCode('_[$₹-hi-IN] * #,##0.00_ ;_[$₹-hi-IN] * -#,##0.00_ ;_[$₹-hi-IN] * "-"??_ ;_@_ ');

这个格式代码是Excel标准的印度卢比货币格式,会自动根据金额显示带₹符号的格式化数字,负数也会正确显示。

补充说明

  • 使用方法1时,务必确保PHP文件保存为UTF-8编码,否则符号可能出现乱码。
  • 方法2的优势在于保持数据的数字类型,这对于Excel报表来说更实用,用户可以直接对金额进行排序、求和等操作。

内容的提问来源于stack exchange,提问作者Prasad Patel

火山引擎 最新活动