在开发PHP程序时,很多时候我们会有将数据批量导入数据库的需求,如学生信息批量添加到数据库中,而事先用excel编排好,对excel实行操作,便是我们比较常用的选择方式。

在对excel的操作中,phpExcelReade便是很多人的共同选择。在具体实现中,我们可以以文件上传方式将excel文件上传到服务器中的某个位置,通过以下操作将excel中的数据导入到数据库后,在将上传的文件删除即可。

代码如下:

$dir=dirname(__FILE__);                       //获取当前脚本的绝对路径
$dir=str_replace(“//”,”/”,$dir).”/”; $filename=’uploadFile.xls'; //可以定义一个上传后的文件名称
$result=move_uploaded_file($_FILES[‘upload’][‘tmp_name’],$dir.$filename);//假如上传到当前目录下
if($result) //如果上传文件成功,就执行导入excel操作
{
require_once ‘phpExcelReader/Excel/reader.php';
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding(‘utf-8′);//设置在页面中输出的编码方式,而不是utf8 //该方法会自动判断上传的文件格式,不符合要求会显示错误提示信息(错误提示信息在该方法内部)。
$data->read(“$filename”); //读取上传到当前目录下名叫$filename的文件 error_reporting(E_ALL ^ E_NOTICE);
//如果excel表带标题,则从$i=2开始,去掉excel表中的标题部分(要将$i<=改为$i<否则会插入一条多余的空数据)
for ($i = 2; $i < $data->sheets[0][‘numRows’]; $i++)
{
$sql = “INSERT INTO user (stuid,class,name,sex,classNum,tel,addr,remark) VALUES(‘”.
$data->sheets[0][‘cells’][$i][1].”‘,'”. //学号
$data->sheets[0][‘cells’][$i][2].”‘,'”. //班级
$data->sheets[0][‘cells’][$i][3].”‘,'”. //姓名
$data->sheets[0][‘cells’][$i][4].”‘,'”. //性别
$data->sheets[0][‘cells’][$i][5].”‘,'”. //班内序号
$data->sheets[0][‘cells’][$i][6].”‘,'”. //联系电话
$data->sheets[0][‘cells’][$i][7].”‘,'”. //联系地址
$data->sheets[0][‘cells’][$i][8].”‘)”; //附注 $db->query($sql);
$insert_info.= ” $sql</br>/n”; //可以用来显示数据插入的信息 }
$totalNums=$data->sheets[0][‘numRows’]-2;//求出导入的总数据条数(这里是减去2,才会得到去除标题后的总数据)
//echo “导入成功!”;
unlink(“$filename”); //删除上传的excel文件 }
else
{
$errmsg=”上传失败”;
}

如何通过PHP将excel的数据导入MySQL中的更多相关文章

  1. Oracle数据导入Mysql中

    一.Navicat Premium中的数据迁移工具 为了生产库释放部分资源,需要将API模块迁移到mysql中,及需要导数据. 尝试了oracle to mysql工具,迁移时报错不说,这么大的数据量 ...

  2. 详解用Navicat工具将Excel中的数据导入Mysql中

    第一步:首先需要准备好有数据的excel: 第二步:选择"文件"->"另存为",保存为"CSV(逗号分隔)(*.csv)",将exce ...

  3. 将Excel的数据导入DataGridView中(转)

    https://www.cnblogs.com/lhxhappy/archive/2008/11/26/1341873.html /// <summary> /// 点击按钮导入数据 // ...

  4. Excel表格数据导入Mysql数据库的方法

    1.使用Navicat 连接需要导入的数据库. 2.excel 列的名字最好和数据库的名字一致,便于我们直观的查看好理解.   第一步,先创建好表,和准备好对应的excel文件.在Navicat 中选 ...

  5. Excel表格数据导入MySQL数据库

    有时候项目需要将存在表格中的批量数据导入数据库,最近自己正好碰到了,总结一下: 1.将excel表格另存为.csv格式文件,excel本身的.xlsx格式导入时可能会报错,为了避免不必要的格式错误,直 ...

  6. java读取excel文件数据导入mysql数据库

    这是我来公司的第二周的一个小学习任务,下面是实现过程: 1.建立maven工程(方便管理jar包) 在pom.xml导入 jxl,mysql-connector 依赖 可以在maven仓库搜索 2.建 ...

  7. 把excel数据导入mysql中

    适用:每列的数据都不是以逗号分隔. 1.在mysql建表,全部字段与表头相同且顺序一致 2.将excel另存为csv格式,用Editplus把CSV文件另存为UTF-8编码格式 3.执行load da ...

  8. 将 excel文件数据导入MySQL数据库中

    第一步:先将Excel文件另存为文本文件(制表符分割) 第二步:将生成的txt文件另存,并修改编码格式utf8; 第三步:将文件放到指定位置,或自己想要的位置: G:\city.txt 第四步:避免创 ...

  9. 将csv格式的文件数据导入mysql中

    示例如下: load data infile 'test.csv'into table `test`fields terminated by ',' optionally enclosed by '& ...

随机推荐

  1. 【leetcode】Reorganize String

    题目如下: Given a string S, check if the letters can be rearranged so that two characters that are adjac ...

  2. MySQL自动生成序号列

    select (@i:=@i+1) i,a.CITYID from basis_cityinfo a ,(select @i:=0) t2 order by a.id desc limit 220;

  3. nowcoder 79F 小H和圣诞树 换根 DP + 根号分治

    设节点个数大于 $\sqrt n$ 的颜色为关键颜色,那么可以证明关键颜色最多有 $\sqrt n$ 个.对于每个关键颜色,暴力预处理出该颜色到查询中另一个颜色的距离和. 对于不是关键颜色的询问,直接 ...

  4. SpringCloud 入门知识篇

    SpringCloud 入门 springcloud 学习 7天学会springcloud 教程 https://www.cnblogs.com/skyblog/category/738524.htm ...

  5. 洛谷 P4151 BZOJ 2115 [WC2011]最大XOR和路径

    //bzoj上的题面太丑了,导致VJ的题面也很丑,于是这题用洛谷的题面 题面描述 XOR(异或)是一种二元逻辑运算,其运算结果当且仅当两个输入的布尔值不相等时才为真,否则为假. XOR 运算的真值表如 ...

  6. 【BZOJ2521】 [Shoi2010]最小生成树

    Description Secsa最近对最小生成树问题特别感兴趣.他已经知道如果要去求出一个n个点.m条边的无向图的最小生成树有一个Krustal算法和另一个Prim的算法.另外,他还知道,某一个图可 ...

  7. BZOJ 1069 Luogu P4166 最大土地面积 (凸包)

    题目链接: (bzoj)https://www.lydsy.com/JudgeOnline/problem.php?id=1069 (luogu)https://www.luogu.org/probl ...

  8. React曾经忽略的知识点(下)

    1.JSX渲染 想让类似 false.true.null 或 undefined 出现在输出中,你必须先把它转换成字符串 : <div> My JavaScript variable is ...

  9. [LeetCode]-DataBase-Combine Two Tables

    Table: Person +-------------+---------+ | Column Name | Type | +-------------+---------+ | PersonId ...

  10. Java文件中代码

    public class MyTextView extends TextView { //在用代码创建的时候调用 public MyTextView(Context context) { this(c ...