PHPExcelライブラリを使用してCSVファイルをXLSXファイルに変換しようとしています。 csvファイルがPHPExcelオブジェクトに読み込まれ、xlsxファイルとして保存される前に、関連する列の内容に基づいて列幅を再計算して設定します。私は、ファイル内の任意の式が存在する場合、(setAutoSizeするために呼び出すことがわかった研究のビットとPHPExcelが計算式を妨げる
$objReader = PHPExcel_IOFactory::createReader('CSV');
$objPHPExcel = $objReader->load("test.csv");
$activesheet = $objPHPExcel->getActiveSheet();
$lastColumn = $activesheet->getHighestColumn(); // get last column with data
$lastColumn++;
for ($column = 'A'; $column != $lastColumn; $column++) { // for each column until last
$activesheet->getColumnDimension($column)->setAutoSize(true); // set autowidth
}
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save("downloads/test.xls");
)列幅を計算するときにそれらを利用するための値を計算します。 私の問題は、私のcsvファイルの中に、公式ではない=(等号)で始まる値が含まれていることです。例えば、 '===='のようなセル値。これにより、上記のコードでエラーPHPExcel_Calculation_Exception Formula Error: An unexpected error occured
がスローされます。
私の入力csvファイルに式が含まれていないことがわかっているので、= signで始まる値を含むセルの値を計算するPHPExcelを防ぐ方法がありますか?
値を入力する前にセルをテキストに設定するか(または設定後に再入力する)、またはその前に '' 'を追加する=>追加のコードを実行する...とはい、迷惑です:/ –
@DirkReichel ;それらのセルを '= 'で式に変換するロジックをオーバーライドするカスタムバインダーを使用すると、単純化することができます –