使用php的file_get_contents()方法直接读取excel文件,将获得一个excel内容的字符串,然后根据换行进行打散为数组,再进行逗号分割,结果就是一个数组,可以进行任何操作。导出应该也可以使用这种方法,不知道性能是否比使用扩展包要快,还没有实践过。

/**
* 下面是使用laravel框架的示例
*/
if ($request->isMethod('POST')) {
    $file=$request->file('file');

    if (!$file->isValid()) {
        return response()->json([
            'code' => 1,
            'msg' => "上传文件不合法"
        ]);
    }

    //获取文件名称
    $filename = $file->getClientOriginalName();
    if (empty($filename)) {
        $this->err = '未找到文件名称';
        return false;
    }

    if (!in_array($file->getClientOriginalExtension(),['csv','xlsx','xls'])) {
        return response()->json([
            'code' => 1,
            'msg' => "只支持文件格式('csv','xlsx','xls')"
        ]);
    }

    $data = [];

    $content = file_get_contents($file->getRealPath());
    $fileType = mb_detect_encoding($content , array('UTF-8','GBK','LATIN1','BIG5'));//获取当前文本编码格式

    $content = mb_convert_encoding($content ,'utf-8' , $fileType);

    $strs = explode("\n", $content);
    
    array_pop($strs);
    array_shift($strs);
    
    foreach ($strs as $key => $v) {
        $res = explode(',',$v);
        //TODO 进行相关操作
        dump($res);
    }

    return response()->json([
        'code' => 0,
        'msg' => '成功',
        'data'    => $data
    ]);
最后修改:2020 年 07 月 22 日 09 : 29 AM
如果觉得我的文章对你有用,请随意赞赏