php原生excel导入
2021-04-22
1.首先下载安装PHPExcel扩展
扩展下载地址:https://www.php.cn/xiazai/leiku/1491
我们只需要 将Classes文件改名
2.html文件
php代码 ,sql语句自己写吧
自行创建uploads文件否则报错!!!
3.代码:
<?php
$tmp = $_FILES['file']['tmp_name'];
if (empty($tmp)) {
echo '请选择要导入的Excel文件!';
exit;
}
$save_path = "uploads/";
$filename = $save_path . date('Ymdhis') . ".xlsx"; //上传后的文件保存路径和名称
if (copy($tmp, $filename)) {
require_once 'PHPExcel/PHPExcel.php';
require_once 'PHPExcel/PHPExcel/Reader/Excel5.php';
$PHPReader = new PHPExcel_Reader_Excel5(); //PHPExcel_Reader_Excel2007 PHPExcel_Reader_Excel5
//载入文件
$PHPExcel = $PHPReader->load($filename);
//获取表中的第一个工作表,如果要获取第二个,把0改为1,依次类推
$currentSheet = $PHPExcel->getSheet(0);
//获取总列数
$allColumn = $currentSheet->getHighestColumn();
//获取总行数
$allRow = $currentSheet->getHighestRow();
//循环获取表中的数据,$currentRow表示当前行,从哪行开始读取数据,索引值从0开始
for ($currentRow = 1; $currentRow <= $allRow; $currentRow++) {
//从哪列开始,A表示第一列
for ($currentColumn = 'A'; $currentColumn <= $allColumn; $currentColumn++) {
//数据坐标
$address = $currentColumn . $currentRow;
//读取到的数据,保存到数组$arr中
$data[$currentRow][$currentColumn] = $currentSheet->getCell($address)->getValue();
}
}
$add_time = date('Y-m-d H:i:s', time());
var_dump($data);exit;
foreach ($data as $k => $v) {
if ($k > 1) {
$sql = "insert into user (username,password) values ('" . $v['B'] . "', '" . $v['C'] . "')";
mysql_query($sql);
}
}
$sql = "SELECT * FROM user";
$result = mysql_query($sql);
$tip = '用户导入成功' . ',现在' . mysql_num_rows($result) . '条数据了!';
echo "";
exit;
}
?>
4.如果报错
PHPExcel的exception ‘Exception‘ with message ‘The filename is not recognised as an OLE file
错误信息
exception 'Exception' with message 'The filename ../../Uploads/taobaoExcel/day_110815/201108151844517294.xls is not recognised as an OLE file' in E:\phpworks\apache\htdocs...
问题原因:
虽然该文件可能有一个xls扩展名,这是一个“假”的Excel文件。如果您在文本编辑器打开该文件你会发现它实际上是一个HTML文件。
我的原因是模版有错,我直接把Excel2007的后缀,xlsx改成xls,导致“伪”xls文件
解决办法:
使用Excel2007创建后,另存为2003的
也就是将上传的文件 xlsx后缀 弄成xls即可
百度网盘源码下载:https://pan.baidu.com/s/1cz9tRTw0enXOhj9duzYnzw
提取码:kfaa
简单分享快乐学习,如有错误请多包涵!