分享一波关于php教程之原生导入,以下是我实际操作流程,如有其他更好的想法欢迎互动
1.首先下载安装PHPExcel扩展
扩展下载地址:https://www.php.cn/xiazai/leiku/1491
我们只需要 将Classes文件改名
2.html文件
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <form action="index.php" method="post" enctype="multipart/form-data"> <div class="control-group"> <label>Excel表格:</label> <input type="file" name="file"/> </div> <div class="control-group"> <input type="submit" value="导入" /> </div> </form> </body> </html>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 "<script>alert('" . $tip . "');history.go(-1);</script>"; 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即可
以上就是这次分享的所有内容,如果需要了解更多关于php实践内容欢迎关注编程学习网
扫码二维码 获取免费视频学习资料
- 本文固定链接: http://phpxs.com/post/7787/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料
查 看2022高级编程视频教程免费获取