gpt4 book ai didi

php - 在phpexcel中将文本转换为数字格式

转载 作者:可可西里 更新时间:2023-10-31 22:42:57 25 4
gpt4 key购买 nike

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

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

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

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

excel sheet after filling

我已经试过了,但它不起作用......:/

  $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 会使用 value binder 来识别您在单元格中设置的数据类型。

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

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

如果你通过高级值绑定(bind)器传递一个像37.7%这样的字符串值,它会将数字部分除以100,并将数字格式掩码设置为百分比掩码,方法完全相同作为 MS Excel GUI。

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

PHPExcel_Cell::setValueBinder( new PHPExcel_Cell_AdvancedValueBinder() );

在实例化 PHPExcel 对象之前。

您可以在 /Examples/29advancedvaluebinder.php 中找到高级 Binder 使用示例

关于php - 在phpexcel中将文本转换为数字格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26810265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com