gpt4 book ai didi

php - 如何在不编辑库的情况下覆盖 PHPExcel 方法?

转载 作者:可可西里 更新时间:2023-11-01 00:03:12 26 4
gpt4 key购买 nike

我想在不接触 PHPExcel 库的情况下覆盖 PHPExcel_Cell_DefaultValueBinder::dataTypeForValue() 方法,这样以后升级库时就不会有问题。

事实上,我这样做是为了解决将数字转换为字符串的问题,我只是想知道如何覆盖一个方法,以便我可以继续使用该库而不会出现以后的问题。

最佳答案

您可以创建一个新类,它将继承PHPExcel_Cell_DefaultValueBinder,并覆盖函数dataTypeForValue

<?php
class PHPExcel_Cell_MyValueBinder extends PHPExcel_Cell_DefaultValueBinder {

public static function dataTypeForValue($pValue = null) {
if (/* your condition */) {
// if you want to return a value, and i guess it's what you want, you can
return PHPExcel_Cell_DataType::YOUR_TYPE;
}
// you call the fonction PHPExcel_Cell_DefaultValueBinder::dataTypeForValue();
// so the already existant conditions are still working.
return parent::dataTypeForValue($pValue);
}

}
?>

之后,只需使用 PHPExcel_Cell_MyValueBinder 而不是 PHPExcel_Cell_DefaultValueBinder,在代码顶部使用:

PHPExcel_Cell::setValueBinder(new PHPExcel_Cell_MyValueBinder());

所以 PHPExcel 将使用您自己的 ValueBinder 执行其余部分:)

关于php - 如何在不编辑库的情况下覆盖 PHPExcel 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12459807/

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