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
小恐龙
花!
上一篇
下一篇