如何在PHPExcel中设置包含百分号的值

时间:2014-08-25 14:46:30

标签: formula phpexcel percentage

我一直在尝试在PHPExcel中设置一个包含百分号的值。

我根本找不到如何逃避它,所有搜索都指向我如何格式化百分比,但这不是我需要的。

我目前的问题是:

$cell = 'Z12';
$value = '=Y12-(Y12*20%)';
$excel->setActiveSheetIndex(0)->setCellValue($cell, $value);

1 个答案:

答案 0 :(得分:1)

此问题特定于Excel5 Writer,百分比运算符在其他编写器中正常工作。

我即将修复github,但同时您可以编辑Classes/PHPExcel/Writer/Excel5/Parser.php文件。

第1431-1437行目前已阅读:

if($this->_lookahead == '%'){
    $result = $this->_createTree('ptgPercent', $this->_current_token, '');
} else {
    $result = $this->_createTree($this->_current_token, '', '');
}
$this->_advance();
return $result;

通过额外调用$this->_advance(); %运算符预测分支来修改这些内容:

if($this->_lookahead == '%'){
    $result = $this->_createTree('ptgPercent', $this->_current_token, '');
    $this->_advance();  // Skip the percentage operator once we've pre-built that tree
} else {
    $result = $this->_createTree($this->_current_token, '', '');
}
$this->_advance();
return $result;