PHPExcel获取除$和EUR之外的单元格货币格式

时间:2013-10-01 08:43:29

标签: phpexcel

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();

3 个答案:

答案 0 :(得分: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
    );

答案 1 :(得分:3)

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

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

尝试使用此格式或根据此格式编写自己的格式。

答案 2 :(得分:1)

英镑(英镑)phpExcel

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

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