эта таблица phps действительно хорошая, но бездокументарная.
Итак, я много читал и пытался определить свой личный ValueBinder, и я думаю, что это правильно, но я не думаю, что он выполнен.
Первым делом я создаю свой переплет:
class MyValueBinder extends DefaultValueBinder{
/**
* Bind value to a cell.
*
* @param Cell $cell Cell to bind value to
* @param mixed $value Value to bind in cell
*
* @return bool
*/
public function bindValue(Cell $cell, $value){
if($cell->getColumn() == 'D'){
// Set value explicit
//$cell->setValueExplicit($value, DataType::TYPE_STRING);
$cell->setValueExplicit("ok", DataType::TYPE_STRING);
}
return parent::bindValue($cell, $value);
}
}
Как вы можете видеть, я просто связывал строку типа для каждой ячейки в столбце D, затем я попытался поместить значение ok в каждую ячейку столбца D только для отладки.
Тогда на моей главной странице:
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Cell\Cell;
\PhpOffice\PhpSpreadsheet\Cell\Cell::setValueBinder(new \PhpOffice\PhpSpreadsheet\Cell\MyValueBinder());
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xls();
//After this I load my file e do some modifications and then I make
// a Writer CSV and write everything on a csv file.
В этот момент пришла грусть, потому что в CSV-файле я нахожу то же неправильное значение, например, если у меня есть число, как 1345 в CSV, у меня есть 1,345
Я не хочу повторно сканировать CSV-файл, чтобы исправить это, потому что у меня десятки тысяч строк