php 读取excel数据处理

/**
 * PHPExcel 读取数据处理
 * @param file
 * @return Mixed object/array
 **/

import("Org.Util.PHPExcel");
import("Org.Util.IOFactory");
$inputFileName = dirname(__FILE__)."/excel.xlsx";
// Check prerequisites
if (!file_exists($inputFileName)) {
    exit("not found {$inputFileName}.\n");
}
$PHPExcel = \PHPExcel_IOFactory::load($inputFileName);

// 读取第一個工作表
$sheet = $PHPExcel->getSheet(0); 
// 取得总行数
$highestRow = $sheet->getHighestRow(); 
// 取得总列数
$highestColumm = $sheet->getHighestColumn(); 

//
$map = [
    'A'=> '自定义字段',
    'B'=> '自定义字段',
    'C'=> '自定义字段',
    'D'=> '自定义字段',
    'E'=> '自定义字段',
    'F'=> '自定义字段',
    'G'=> '自定义字段'
];

// 循环读取每个单元格的数据 
$keywords = S('insert_keywords');
if( !$keywords )
{
    // 行数是以第1行开始
    for ($row = 1; $row <= $highestRow; $row++)
    {
        for ($column = 'A'; $column <= $highestColumm; $column++) 
        {
            // 列数是以A列开始
            if($row == 1 ||  $column == 'H') 
            {
                continue;
            }
            $value = $sheet->getCell($column.$row)->getValue();

            // 富文本转换字符串
            if($value instanceof \PHPExcel_RichText) 
            {
                $value = $value->__toString();
            }
            $keywords[$row][$map[$column]] = trim($value);
            // $encode = mb_detect_encoding($value, array("ASCII","UTF-8","GB2312","GBK","BIG5"));
            // echo $encode, PHP_EOL, mb_convert_encoding("$value", "big5", "UTF-8"), die;
            // $dataset[$row][$map[$column]] = iconv('ASCII', 'UTF-8',$value);
            // echo $column, $row, ":", $sheet->getCell($column.$row)->getValue(), PHP_EOL;
        }
    }

    // 将读取的excel数据保存,以便后续处理
    if( $keywords )
    {
        S('insert_keywords', $keywords, 86400);
    }
    // 处理 $keywords
    // code...
}

你可能感兴趣的:(php 读取excel数据处理)