PhpSpreadsheet如何读取excel文件
PhpSpreadsheet如何读取excel文件
一、总结
一句话总结:万能的百度,直接搜代码就好,绝对有,毕竟github上面4000+的关注,说明很多人用了这个,使用照着demo倒是异常简单
二、使用PhpSpreadsheet将Excel导入到MySQL数据库
日常开发中,我们经常遇到这样的场景,需要将一个Excel表格数据如客户信息、学生成绩表导入到系统数据库中,然后在系统中进行进一步操作,如给导入的客户群发短信,统计学生成绩排名。PHP导入Excel避免了人工录入信息的麻烦和出错,提高效率。
本文以导入学生成绩表为例,给大家讲解使用PhpSpreadsheet将Excel导入的MySQL数据库。
准备
首先我们需要准备一张MySQL表,表名t_student,表结构如下:
CREATE TABLE `t_student` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(32) NOT NULL COMMENT '姓名',
`chinese` int(6) NOT NULL DEFAULT '0' COMMENT '语文',
`maths` int(6) NOT NULL DEFAULT '0' COMMENT '数学',
`english` int(6) NOT NULL DEFAULT '0' COMMENT '外语',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
这是一张学生成绩表,用来存储学生的姓名和语数外三门课程的成绩。
接着,我们准备excel表格文件,我特意制作了一个Excel文件students.xlsx:
然后将Excel文件放置程序应用目录下。当然,实际应用中,我们一般通过web上传到服务器指定目录下,然后再进行导入数据库操作。本文web上传这块就不涉及了,感兴趣的同学可以参考本站文章:Dropzone.js实现文件拖拽上传,功能强大的文件上传组件-WebUploader。
最后,你还需要安装好PhpSpreadsheet,在前一节文章中有介绍,非常简单:使用PhpSpreadsheet读取和写入Excel
导入Excel
准备工作做好后,我们来开始导入。
思路很简单:使用PhpSpreadsheet读取Excel表格中的有用信息,然后组装成sql语句,最后批量插入到MySQL表中。我把代码贴出来。
require 'vendor/autoload.php';
include('conn.php'); //连接数据库
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Xlsx');
$reader->setReadDataOnly(TRUE);
$spreadsheet = $reader->load('students.xlsx'); //载入excel表格
$worksheet = $spreadsheet->getActiveSheet();
$highestRow = $worksheet->getHighestRow(); // 总行数
$highestColumn = $worksheet->getHighestColumn(); // 总列数
$highestColumnIndex = \PhpOffice\PhpSpreadsheet\Cell\Coordinate::columnIndexFromString($highestColumn); // e.g. 5
$lines = $highestRow - 2;
if ($lines <= 0) {
exit('Excel表格中没有数据');
}
$sql = "INSERT INTO `t_student` (`name`, `chinese`, `maths`, `english`) VALUES ";
for ($row = 3; $row <= $highestRow; ++$row) {
$name = $worksheet->getCellByColumnAndRow(1, $row)->getValue(); //姓名
$chinese = $worksheet->getCellByColumnAndRow(2, $row)->getValue(); //语文
$maths = $worksheet->getCellByColumnAndRow(3, $row)->getValue(); //数学
$english = $worksheet->getCellByColumnAndRow(4, $row)->getValue(); //外语
$sql .= "('$name','$chinese','$maths','$english'),";
}
$sql = rtrim($sql, ","); //去掉最后一个,号
try {
$db->query($sql);
echo 'OK';
} catch (Exception $e) {
echo $e->getMessage();
}
$worksheet->getCellByColumnAndRow($col, $row)->getValue()
可以获取表格中任意单元格数据内容,$col
表示单元格所在的列,以数字表示,A列表示第一列,$row
表示所在的行。
我们只需要第三行以后的数据,因此直接从第三行开始循环遍历,获取成绩,组装成SQL语句。
我们使用批量插入MySQL语句,当然你也可以逐条插入,但是效率没有批量插入高。
最后执行导入代码,你会发现数据表里有数据了:
MariaDB [demo]> select * from t_student;
+----+-----------+---------+-------+---------+
| id | name | chinese | maths | english |
+----+-----------+---------+-------+---------+
| 13 | 王二小 | 82 | 78 | 65 |
| 14 | 李万豪 | 68 | 87 | 79 |
| 15 | 张三丰 | 89 | 90 | 98 |
| 16 | 王老五 | 68 | 81 | 72 |
+----+-----------+---------+-------+---------+
4 rows in set (0.00 sec)
参考:使用PhpSpreadsheet将Excel导入到MySQL数据库_Helloweba
https://www.helloweba.net/php/562.html
三、PhpSpreadsheet 读取excel文件
phpexcel不再维护,使用PhpSpreadsheet
安装
composer require phpoffice/phpspreadsheet
例子
class Vcard
{
public function index()
{
$file_name = "1";
$uploadwork = "C:\Users\Administrator\Desktop\城市\二线城市(30个)27575条\\";
$uploadfile = $uploadwork.$file_name.'.xlsx';
$reader = \PHPExcel_IOFactory::createReader('excel2007'); //设置以Excel5格式(Excel97-2003工作簿)
$PHPExcel = $reader->load($uploadfile); // 载入excel文件
$sheet = $PHPExcel->getSheet(0); // 读取第一個工作表
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumm = $sheet->getHighestColumn(); // 取得总列数
$data = [];
for ($row = 2; $row <= $highestRow; $row++) //行号从1开始
{
for ($column = 'A'; $column <= $highestColumm; $column++) //列数是以A列开始
{
if (empty($sheet->getCell($column . $row)->getValue()) == false) {
if (empty($data[$row]) == false) {
$str = $sheet->getCell($column . $row)->getValue();
if (strlen($str)>11) {
$pieces = explode("|", $str);
$data[$row]['mobile'] = $pieces[0];
}else{
$data[$row]['mobile'] = $str;
}
} else {
$data[$row]['name'] = $sheet->getCell($column . $row)->getValue();
}
}
}
}
// dump($data);
$myfile = fopen($uploadwork.$file_name.".vcf", "w") or die("Unable to open file!");
foreach ($data as $key => $value) {
$all_str = $this->make_vcard($value['name'], $value['mobile']);
fwrite($myfile, $all_str);
}
fclose($myfile);
}
}
https://blog.csdn.net/HD2killers/article/details/80826981
四、自己phpSpreadsheet读写excel实例代码(亲测可用)
write函数功能:测试write内容到excel
read函数功能:将用户数据从excel中取出来,然后实现批量生成用户账号
读入数据样例:
aaarticlea/png;base64,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" alt="" />
<?php
namespace app\admin\controller\test\phpspreadsheet; use app\admin\controller\Base; use PhpOffice\PhpSpreadsheet\Reader\Xls\MD5;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
//use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\Reader\Xlsx; class Index extends Base
{
public function write()
{
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hello World !'); $writer = new Xlsx($spreadsheet);
$writer->save('d://hello.xlsx');
//dump('2222222222');die;
//return view();
} public function read(){
$file_name = "D";
$uploadwork = "d://";
$uploadfile = $uploadwork.$file_name.'.xlsx';
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Xlsx'); //设置以Excel5格式(Excel97-2003工作簿)
$PHPExcel = $reader->load($uploadfile); // 载入excel文件
$sheet = $PHPExcel->getSheet(0); // 读取第一個工作表
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumm = $sheet->getHighestColumn(); // 取得总列数
$data = [];
for ($row = 4; $row <= $highestRow; $row++) //行号从1开始
{
for ($column = 'A'; $column <= $highestColumm; $column++) //列数是以A列开始
{
if (empty($sheet->getCell($column . $row)->getValue()) == false) {
$data[$row][$column]=$sheet->getCell($column . $row)->getValue();
}
}
if(!isset($data[$row]['B'])) unset($data[$row]);
} dump($data); //班級和文件信息
$fileAndClass=[
'A'=>17,
'B'=>18,
'C'=>19,
'D'=>20,
]; //組裝用戶信息
$userArr=null;
foreach ($data as $key=>$val){
$perUser=null;
$perUser['u_picture']='/static/student/img/a4.png';
$perUser['u_gender']=0;
$perUser['u_name']=$val['D'].'-'.$val['E'];
$perUser['u_username']=$val['G'].'_'.strtolower($val['B']);
$perUser['u_password']=md5($perUser['u_username']);
$perUser['u_class']=$fileAndClass[$file_name]; //如果是女性,更改性別和默認圖片
if(strtolower($val['F'])=='f'){
$perUser['u_picture']='/static/student/img/a2.png';
$perUser['u_gender']=1;
}
$userArr[]=$perUser;
}
$ans=db('user')->insertAll($userArr);
dump($ans);
dump($userArr);die; }
}
PhpSpreadsheet如何读取excel文件的更多相关文章
- C# 读取EXCEL文件的三种经典方法
1.方法一:采用OleDB读取EXCEL文件: 把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下: public DataSet ExcelToDS(string Path) { stri ...
- c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出
c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出 using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using S ...
- ADO.NET 读取Excel文件,并作数据源
项目中需要用的功能,贴上代码了. 需要注意的地方:配置Web.config的时候要注意版本问题! //若是在Web.config中配置数据源,如下 <add key="ExcelCon ...
- PHPExcel读取Excel文件的实现代码
<?php require_once 'PHPExcel.php'; /**对excel里的日期进行格式转化*/ function GetData($val){ $jd = GregorianT ...
- .Net读取Excel文件时丢失数据的问题 (转载)
相信很多人都试过通过OleDB读取Excel文件,这种方法效率十分高,只是有一点会让人十分头痛,就是当一列中既有混合型数据,又有纯数据时,往往容易丢失数据. 百度过后,改连接字符串 “HDR=YES; ...
- 使用jxl,poi读取excel文件
作用:在java后台添加一个方法,读取导入的excel内容,根据需要返回相应的sql语句,以完成对临时表的插入操作. 使用jxl读取excel文件 package com.sixthf.bi.sapp ...
- C# 读取Excel文件里面的内容到DataSet
摘要:读取Excel文件里面的内容到DataSet 代码: /// <summary> /// 读取Excel文件里面的内容到DataSet /// </summary> // ...
- R语言读取excel文件的3种方法
R读取excel文件中数据的方法: 电脑有一个excel文件,原始的文件路径是:E:\R workshop\mydata\biom excel数据为5乘2阶矩阵,元素为 ...
- C#读取Excel文件:通过OleDb连接,把excel文件作为数据源来读取
转载于:http://developer.51cto.com/art/200908/142392.htm C#读取Excel文件可以通过直接读取和OleDb连接,把excel文件作为数据源来读取: ...
随机推荐
- jQuery解决鼠标单双击问题
html代码如下: <button>点击</button> JQ代码如下: <script> $(function () { // 编写相关jQuery代码 // ...
- 我的Android进阶之旅------>Android中adb install 安装错误常见列表
adb的安装过程分为传输与安装两步. 在出错后,adb会报告错误信息,但是信息可能只是一个代号,需要自己定位分析出错的原因. 下面是从网上找到的几种常见的错误及解决方法: 1.INSTALL_FAIL ...
- python的分布式爬虫框架
scrapy + celery: Scrapy原生不支持js渲染,需要单独下载[scrapy-splash](GitHub - scrapy-plugins/scrapy-splash: Scrapy ...
- HTTP首部信息说明
1.Accept:告诉WEB服务器自己接受什么介质类型,*/* 表示任何类型,type/* 表示该类型下的所有子类型,type/sub-type.2.Accept-Charset:浏览器申明自己接收的 ...
- JS中原型链的理解
new操作符具体干了什么呢?其实很简单,就干了三件事情. var obj = {}; obj.__proto__ = Base.prototype; Base.call(obj); 第一行,我们创建了 ...
- Vim 指令一览表
vim 程序编辑器 移动光标的方法 h 或 向左箭头键(←) 光标向左移动一个字符 j 或 向下箭头键(↓) 光标向下移动一个字符 k 或 向上箭头键(↑) 光标向上移动一个字符 l 或 向右箭头键( ...
- WebSocket 的后记
一个美好的概念可以让策划无比幼稚和疯狂, 比如 H5 改变世界呀,小程序替代 APP 呀,现在即时通信也被公司里的他们认为 so easy 了. 这很尴尬好吧,WebSocket(以下简称 ws) 的 ...
- linux 挂载 smb
smbmount //192.168.1.210/homes/dm8168 /opt/fedora/ -o username=psubo,password=psubo_smb
- UCOS2_STM32F1移植详细过程
源:UCOS2_STM32F1移植详细过程(三) UCOS2_STM32移植过程.系统内核.事件描述(汇总)
- linux 基础二---用户群租权限
用户&群组&权限 一.用户 1.用户及passwd文件 1) 掌握/etc/passwd文件的功能:存储所有用户的相关信息,该文件也被称为用户信息数据库(Database). 2) / ...