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...
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容