1. 程式人生 > >phpexcel如何讀和寫大於26列的excel3

phpexcel如何讀和寫大於26列的excel3

$PHPExcel      = $reader->load($file_path_root . '/' . $file_name);//檔案路徑載入檔名
        $sheet         = $PHPExcel->getSheet(0);
        $highestRow    = $sheet->getHighestRow(); // 取得總行數
        $highestColumm = $sheet->getHighestColumn(); // 取得總列數
        $end_index     = PHPExcel_Cell::columnIndexFromString($highestColumm);//由列名轉為列數('AB'->28)

        $titles  = array();
        $content = array();
        /** 迴圈讀取每個單元格的資料 */
        for ($row = 1; $row <= $highestRow; $row++) {
            for ($column = 0; $column < $end_index; $column++) {
                $col_name = PHPExcel_Cell::stringFromColumnIndex($column);//由列數反轉列名(0->'A')
                $value    = mb_convert_encoding($sheet->getCell($col_name . $row)->getValue(), 'gbk', 'utf8');//轉碼
                if ($row == 1) {
                    //獲取表頭
                    $titles[] = preg_replace('/\s/', '', $value);
                } else {
                    if ($sheet->getCell($col_name . $row)->getDataType() == PHPExcel_Cell_DataType::TYPE_NUMERIC) {
                        //數字型別時,三位精度標準來比較該數是否在0,1之間,轉換為百分數,保留一位小數
                        if (bccomp(floatval($value), floatval('1'), 3) == -1 && bccomp(floatval($value), floatval('0'), 3) == 1) {
                            $value = sprintf("%01.1f", $value * 100) . '%';
                        }
                    }
                    $content[$row][$column] = preg_replace('/\s/', '', $value);
                }
            }
        }
ps: