如何用php实现将excel导入到数据库中

如何用php实现将excel导入到数据库中,第1张

把excel

改为

cvs文件

?

//连接数据库文件

$connect=mysql_connect("localhost","admin","admin")

or

die("链接数据库失败!")

//连接数据库(test)

mysql_select_db("testcg",$connect)

or

die

(mysql_error())

$temp=file("test.csv")//连接EXCEL文件,格式为了.csv

for

($i=0$i

<count($temp)$i++)

{

$string=explode(",",$temp[$i])//通过循环得到EXCEL文件中每行记录的值

//将EXCEL文件中每行记录的值插入到数据库中

$q="insert

into

ceshi

(name,num,dom)

values('$string[0]','$string[1]','$string[2]')"

mysql_query($q)

or

die

(mysql_error())

if

(!mysql_error())

{

echo

"

成功导入数据!"

}

echo

$string[4]."\n"

unset($string)

}

?

thinkPHP实现将excel导入到数据库中的方法体如下:

PHPExcel插件可点击此处本站下载。

这里使用的是thinkphp框架的3.1版本,下载好压缩包,框架中的extend中的vendor文件夹中新建一个名为PHPExcel的文件夹,把classes里面的内容放到里面

下面是前端页面

提示:我在测试的时候遇到报错exception 'PHPExcel_Reader_Exception' with message 'The filename

原因是由于excel的文件后缀可能不同,我的文件后缀是xlsx,然后给把他另存为了xls的文件,就可以了

<html>

<head>

</head>

<body>

<form action="{pigcms::U('Jdb/abcdefgwulisuibian')}" method="post" enctype="multipart/form-data">

 <input type="file" name="import"/>

 <input type="hidden" name="table" value="tablename"/>

 <input type="submit" value="导入"/>

</form>

</body>

</html>

下面是php的

function abcdefgwulisuibianuplod(){

$this->display()//显示页面

}

function abcdefgwulisuibian(){

if (!empty($_FILES)) {

 import("@.ORG.UploadFile")

 $config=array(

  'allowExts'=>array('xlsx','xls'),

  'savePath'=>'./Public/upload/',

  'saveRule'=>'time',

 )

 $upload = new UploadFile($config)

 if (!$upload->upload()) {

  $this->error($upload->getErrorMsg())

 } else {

  $info = $upload->getUploadFileInfo()

 }

 vendor("PHPExcel.PHPExcel")

  $file_name=$info[0]['savepath'].$info[0]['savename']

  $objReader = PHPExcel_IOFactory::createReader('Excel5')

  $objPHPExcel = $objReader->load($file_name,$encode='utf-8')

  $sheet = $objPHPExcel->getSheet(0)

  $highestRow = $sheet->getHighestRow()// 取得总行数

  $highestColumn = $sheet->getHighestColumn()// 取得总列数

  for($i=2$i<=$highestRow$i++)//这个地方根据需要,一般第一行是名称,所以从第二行开始循环,也可以从第一行开始

  {

   $data['lianjieid'] = $objPHPExcel->getActiveSheet()->getCell("A".$i)->getValue()//数据库字段和excel列相对应

   $data['yaoqingma'] = $objPHPExcel->getActiveSheet()->getCell("B".$i)->getValue()

   $data['dlmima']= $objPHPExcel->getActiveSheet()->getCell("C".$i)->getValue()

   $data['ljdizhi']= $objPHPExcel->getActiveSheet()->getCell("D".$i)->getValue()

   M('jdb')->add($data)//插入数据库

  }

   $this->success('导入成功!')

}else

 {

  $this->error("请选择上传的文件")

 }

}

1.使用PHP

Excel Parser Pro软件,但是这个软件为收费软件;

2.可将EXCEL表保存为CSV格式,然后通过phpmyadmin或者SQLyog导入,SQLyog导入的方法为:

·将EXCEL表另存为CSV形式;

·打开SQLyog,对要导入的表格右击,点击“导入”-“导入使用加载本地CSV数据”;

·在d出的对话框中,点击“改变..”,把选择“填写excel友好值”,点击确定;

·在“从文件导入”中选择要导入的CSV文件路径,点击“导入”即可导入数据到表上;

3.一个比较笨的手工方法,就是先利用excel生成sql语句,然后再到mysql中运行,这种方法适用于excel表格导入到各类sql数据库:

·假设你的表格有A、B、C三列数据,希望导入到你的数据库中表格tablename,对应的字段分别是col1、col2、col3

·在你的表格中增加一列,利用excel的公式自动生成sql语句,具体方法如下:

1)增加一列(假设是D列)

2)在第一行的D列,就是D1中输入公式:

=CONCATENATE("insert into tablename (col1,col2,col3) values (",A1,",",B1,",",C1,")")

3)此时D1已经生成了如下的sql语句:

insert into table (col1,col2,col3) values ('a','11','33')

4)将D1的公式复制到所有行的D列(就是用鼠标点住D1单元格的右下角一直拖拽下去啦)

5)此时D列已经生成了所有的sql语句

6)把D列复制到一个纯文本文件中,假设为sql.txt

·把sql.txt放到数据库中运行即可,你可以用命令行导入,也可以用phpadmin运行。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9569497.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存