PHPExcelを使用してExcelシートから数値を読み取ろうとしています。
データを読み取るコード:
$objReader = PHPExcel_IOFactory::createReaderForFile($upload_file);
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load($upload_file);
$objWorksheet = $objPHPExcel->getActiveSheet();
$data = array();
$i = 0;
foreach ($objWorksheet->getRowIterator() as $row) {
if ($i < 1) {
$i++;
continue; //Skip heading titles
}
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
foreach ($cellIterator as $cell) {
$data [$i] [] = $cell->getValue();
}
$i ++;
コードは機能します。Excel を読んだところ、すべてのデータが $data 配列に適切に保存されています。問題は列 AI が番号 ( 4078500264822 ) を取得したことです。「4078500264820」として返されます(最後の0を参照)。どう読んでも。行全体を印刷すると、値が間違っていることがわかります。「getCalculatedValue」などの関数を使用すると、結果は同じです。
フィールドがExcelでどのように保存されるかに関係があると思います。タイプ「Number」として保存しました。別の行のように。同じ番号を保存しています。今回は「テキスト」として (Excel はこれについて通知をスローします)。PHPExcel はその数値を読み取ることができます。私は40枚のレコードシートを持っています。ここで、26 個のセルの最後の番号が 0 に置き換えられます。切り捨てられたファイル (2 行のみ) は、ここにあります --> http://dl.dropbox.com/u/1458083/excel.xlsx