10

PHPExcel 仅使用 $ 和 EUR:

const FORMAT_CURRENCY_USD_SIMPLE        = '"$"#,##0.00_-';
const FORMAT_CURRENCY_USD            = '$#,##0_-';
const FORMAT_CURRENCY_EUR_SIMPLE        = '[$EUR ]#,##0.00_-';

我需要的是获得其他货币(我使用“zł”表示波兰兹罗提)。除 $ 和 EUR 以外的所有货币都标记为“通用”。

SWilk 回答的后续问题:如何使用自定义格式。我在 NumberFormat.php 中添加了新常量:

const FORMAT_CURRENCY_PLN_1 = '_-* #,##0.00\ [$zł-415]_-';
const FORMAT_CURRENCY_PLN_2 = '\-* #,##0.00\ [$zł-415]_-';
const FORMAT_CURRENCY_PLN_3 = '_-* "-&quot';
const FORMAT_CURRENCY_PLN_4 = '??\ [$zł-415]_-;_-@_-';

可以吗?我还需要做什么来阅读格式使用

$objPHPExcel->getCellXfByIndex($cell->getXfIndex())->getNumberFormat()->getFormatCode();
4

3 回答 3

7

默认常量仅针对美元和欧元定义,但 PHPExcel 并不仅限于这些常量常量值。它们只是字符串;您可以将任何有效的 MS Excel 格式代码设置为 numberFormat 掩码,只需将其设置为适当的字符串值即可。不过,将您自己的新常量添加到 numberFormat.php 通常不是一个好主意,因为您需要记住在升级到新版本的 PHPExcel 时添加它们……最好在您的自己的代码。

您可以使用以下方法将货币格式应用于单元格:

$objPHPExcel->getActiveSheet()
    ->getStyle('E4:E13')
    ->getNumberFormat()
    ->setFormatCode(
        '_-* #,##0.00\ [$zł-415]_-'
    );

或者,如果您使用定义自己的新常量

define('FORMAT_CURRENCY_PLN_1', '_-* #,##0.00\ [$zł-415]_-');

然后你可以将它应用到你的细胞使用

$objPHPExcel->getActiveSheet()
    ->getStyle('E4:E13')
    ->getNumberFormat()
    ->setFormatCode(
        FORMAT_CURRENCY_PLN_1
    );
于 2013-10-01T19:39:25.897 回答
3

我保存了一个简单的 Excel 文件,其中一个单元格格式为以 PLN 计价的货币单元格。解压缩 .xlsx 并检查格式。这是:

_-* #,##0.00\ [$zł-415]_-;\-* #,##0.00\ [$zł-415]_-;_-* "-"??\ [$zł-415]_-;_-@_-

尝试使用这种格式或在此基础上编写自己的格式。

于 2013-10-01T08:53:11.973 回答
1

英镑 (Sterling) phpExcel

 $numformat= '£#,##0_-';
 $activeSheet->getStyle($cell)->getNumberFormat()->setFormatCode($numformat);
 $activeSheet->setCellValue($cell,$val4);

我通过解压缩 xlsx 并使用格式为货币 £ 的单元格(或输入了 £ 的单元格:似乎是相同的格式)找到了正确的值

于 2015-12-01T18:36:39.043 回答