Thinkphp6 使用 phpoffice/phpspreadsheet 导入文件
/**
 * 读取excel里面的内容保存为数组
 * @param string $file_path  导入文件的路径
 * @param array $read_column  要返回的字段
 * @return array
 * @throws \PhpOffice\PhpSpreadsheet\Exception
 * @throws \PhpOffice\PhpSpreadsheet\Reader\Exception
 */
public function readExcel($file_path = '/', $read_column = array())
{
    $reader = IOFactory::createReader('Xlsx');
 
    $reader->setReadDataOnly(TRUE);
 
    //载入excel表格
    $spreadsheet = $reader->load($file_path);
 
    // 读取第一個工作表
    $sheet = $spreadsheet->getSheet(0);
 
    // 取得总行数
    $highest_row = $sheet->getHighestRow();
 
    // 取得总列数
    $highest_column = $sheet->getHighestColumn();
 
    //读取内容
    $data_origin = array();
    $data = array();
    for ($row = 2; $row <= $highest_row; $row++) { //行号从2开始
        for ($column = 'A'; $column <= $highest_column; $column++) { //列数是以A列开始
            $str = $sheet->getCell($column . $row)->getValue();
            //保存该行的所有列
            $data_origin[$column] = $str;
        }
        //取出指定的数据
        foreach ($read_column as $key => $val) {
            $data[$row - 2][$val] = $data_origin[$key];
        }
    }
    return $data;
}
 
//调用示例
public function test(){
    //获取表单上传文件 例如上传了a.xslx
    $file = Request::file('file');
    //生成保存文件名(generate_password 方法生成随机数,getOriginalExtension 方法获取上传文件的扩展名)
    $new_name = generate_password(18).'.'.$file->getOriginalExtension();
    $save_path = '../runtime/uploads/'.date('Ymd',time()).'/';   //文件保存路径
    $info = $file->move($save_path,$new_name);
     
    if($info){
    //成功上传后 获取上传的数据
    //要获取的数据字段
    $read_column = [
        'A' => 'real_name',
        'B' => 'sex',
        'C' => 'grade',
        'D' => 'class',
        'E' => 'roll_number',
        'F' => 'mobile',
        'G' => 'id_card',
        'H' => 'user_name',
        'I' => 'passwd',
    ];
    //读取数据
    $data = $this->readExcel($save_path.$info->getFilename(),$read_column);
    dump($data);
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇