将文本转换为phpexcel中的数字格式

我使用PHPExcel制作了这张表
我用数组填充它.

它具有百分比形式的值,默认情况下将其视为文本形式.
如何将我的所有列转换为数字形式,以便我可以在其上应用一些数学公式.

   $excel_out_Questions = $this->outputQuestions($Sets);

   $objPHPExcel->getActiveSheet()->fromArray($excel_out_Questions, "" , 'A5');

我试过这个,但它不起作用……:/

  $objPHPExcel->getActiveSheet()->getStyle('B434:B444')->getNumberFormat()->setFormatCode (PHPExcel_Style_NumberFormat::FORMAT_NUMBER_00);

$objPHPExcel->getActiveSheet()->setCellValue( 'B445','=(SUM(B443:B444)-SUM(B434:B440))*100)');

请建议.

提前致谢

解决方法:

除非使用setCellValueExplicit(),否则PHPExcel使用值绑定器来标识您在单元格中设置的数据类型.

默认情况下,这是PHPExcel_Cell_DefaultValueBinder,它可以非常简单地检查PHP数据类型是Null还是Boolean,或者是数值还是字符串.诸如37.7%之类的值是PHP字符串,因此将被视为字符串.

还有一个高级值绑定器(PHPExcel_Cell_AdvancedValueBinder),它可以执行更复杂的检查,并且能够识别包含基本日期格式的字符串并将它们转换为Excel序列化日期时间,并相应地设置数字格式掩码.它还可以检测货币值,分数和(最重要的)百分比.

如果通过高级值绑定器传递37.7%的字符串值,则会将数字部分除以100,并将数字格式掩码设置为百分比掩码,其方式与MS Excel GUI完全相同.

要启用高级值绑定器,请调用

PHPExcel_Cell::setValueBinder( new PHPExcel_Cell_AdvancedValueBinder() );

在实例化PHPExcel对象之前.

您可以在/Examples/29advancedvaluebinder.php中找到高级活页夹用法的示例

上一篇:PHPExcel根据单元格值设置字体/背景颜色


下一篇:最简单的ThinkPHP实例(3)接口