如何通过PHP将excel的数据导入MySQL中
2014-05-13 01:05
701 查看
php使用phpExcelReader导入excel的方法
phpExcelReader是专门用来读取文件的。返回一个数组,包含表格的所有内容。
该 class 使用的方法可以参考网站下载回来的压缩档中的 example.php。
有几点要需要注意:
1、reader.php 中:将 require_once 'Spreadsheet/Excel/Reader/OLERead.php';改为 require_once 'oleread.inc';
2、example.php 中:修改 $data->setOutputEncoding('CP1251');为 $data->setOutputEncoding('CP936');或者是$data->setOutputEncoding('gbk');
3、修改 nl2br(htmlentities($data->sheets[$sheet]['cells'][$row][$col]));为 $table_output[$sheet] .= nl2br(htmlspecialchars($data->sheets[$sheet]['cells'][$row][$col]));
不然中文会有问题。
繁体的话可以修改为CP950、日文是CP932,具体可参考codepage说明。
===========================================================
require_once 'excel/reader.php';
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('gbk'); //设置编码
$data->read('徐州.xls'); //指定文件
for ( $i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
echo $data->sheets[0]['cells'][$i][$j]." | ";
}
echo "<br/>";
}
-------------------------------------------------------------------------------------------------------
如何通过PHP将excel的数据导入MySQL中
在开发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
n"; //可以用来显示数据插入的信息
}
$totalNums=$data->sheets[0]['numRows']-2;//求出导入的总数据条数(这里是减去2,才会得到去除标题后的总数据)
//echo "导入成功!";
unlink("$filename"); //删除上传的excel文件
}
else
{
$errmsg="上传失败";
}
=======================================================================
此方法适用于1.6或更高版本。
1.先在view页面写html代码。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title></title>
</head>
<body>
<form enctype="multipart/form-data" action="/index/upload" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" /> Choose a
file to upload: <input name="uploadedfile" type="file" /> <br />
<input type="submit" value="Upload File" /></form>
</body>
</html>
上面就不介绍了,很简单。下面是后台代码。
2.
public function uploadAction() {
$adapter = new Zend_File_Transfer_Adapter_Http ( );
$adapter->setDestination ( 'd:\new' );设置路径
if (! $adapter->receive ()) {
$messages = $adapter->getMessages ();//检测
echo implode ( "\n", $messages );
}
$adapter->addValidator ( 'Extension', false, 'jpg,png,gif' )->addValidator ( 'Size', false, 102400 )->addValidator ( 'Count', false, 1 );//配置 英文都应该看的懂吧
}
主要就是$adapter设置可以设置文件格式,上传文件数量,大小。基本上都用的到,其它功能用到再加,最近zend_file(),变动不少,大家一起学习吧!
=======================================================================
下载地址:
phpExcelReader:http://sourceforge.net/projects/phpexcelreader/
PHPExcel:http://www.codeplex.com/PHPExcel/Wiki/View.aspx?title=Documents&referringTitle=Home
phpExcelReader是专门用来读取文件的。返回一个数组,包含表格的所有内容。
该 class 使用的方法可以参考网站下载回来的压缩档中的 example.php。
有几点要需要注意:
1、reader.php 中:将 require_once 'Spreadsheet/Excel/Reader/OLERead.php';改为 require_once 'oleread.inc';
2、example.php 中:修改 $data->setOutputEncoding('CP1251');为 $data->setOutputEncoding('CP936');或者是$data->setOutputEncoding('gbk');
3、修改 nl2br(htmlentities($data->sheets[$sheet]['cells'][$row][$col]));为 $table_output[$sheet] .= nl2br(htmlspecialchars($data->sheets[$sheet]['cells'][$row][$col]));
不然中文会有问题。
繁体的话可以修改为CP950、日文是CP932,具体可参考codepage说明。
===========================================================
require_once 'excel/reader.php';
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('gbk'); //设置编码
$data->read('徐州.xls'); //指定文件
for ( $i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
echo $data->sheets[0]['cells'][$i][$j]." | ";
}
echo "<br/>";
}
-------------------------------------------------------------------------------------------------------
如何通过PHP将excel的数据导入MySQL中
在开发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
n"; //可以用来显示数据插入的信息
}
$totalNums=$data->sheets[0]['numRows']-2;//求出导入的总数据条数(这里是减去2,才会得到去除标题后的总数据)
//echo "导入成功!";
unlink("$filename"); //删除上传的excel文件
}
else
{
$errmsg="上传失败";
}
=======================================================================
zendframework上传文件
此方法适用于1.6或更高版本。1.先在view页面写html代码。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title></title>
</head>
<body>
<form enctype="multipart/form-data" action="/index/upload" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" /> Choose a
file to upload: <input name="uploadedfile" type="file" /> <br />
<input type="submit" value="Upload File" /></form>
</body>
</html>
上面就不介绍了,很简单。下面是后台代码。
2.
public function uploadAction() {
$adapter = new Zend_File_Transfer_Adapter_Http ( );
$adapter->setDestination ( 'd:\new' );设置路径
if (! $adapter->receive ()) {
$messages = $adapter->getMessages ();//检测
echo implode ( "\n", $messages );
}
$adapter->addValidator ( 'Extension', false, 'jpg,png,gif' )->addValidator ( 'Size', false, 102400 )->addValidator ( 'Count', false, 1 );//配置 英文都应该看的懂吧
}
主要就是$adapter设置可以设置文件格式,上传文件数量,大小。基本上都用的到,其它功能用到再加,最近zend_file(),变动不少,大家一起学习吧!
=======================================================================
1. [代码]Zend Framework文件上传重命名
//实例化文件上专类 $fName=$this->_request->getPost('fName'); $adapter = new Zend_File_Transfer_Adapter_Http(); //存放上传文件的文件夹 $adapter->setDestination('/opt/lampp/htdocs/blog/upload'); //上传配置 $adapter ->addValidator ( 'Extension', false, $configs['extension'])//文件格式限制 ->addValidator('Size', false, array('min' =>floatval($configs['minsize']), 'max' => floatval($configs['maxsize'])))//设置上传文件的大小在1-2M之间 ->addValidator ( 'Count', false, array('min' => intval($configs['mincount']), 'max' => intval($configs['maxcount'])) );//上传文件数量 //重命名配置 $fileInfo = $adapter->getFileInfo();//获取基本配置 $extName=$this->getExtension($fileInfo);//获取扩展名 $filename=md5(time()+$fileInfo['fFile']['name']).'.'.$extName;//重命名 $adapter->addFilter('Rename', array('target' => $filename, 'overwrite' => true));//执行重命名 //返回上传后出现在信息 if (!$adapter->receive()) { $messages = $adapter->getMessages ();//检测 //Zend_Debug::dump($messages); $message=''; if(is_array($messages)) { foreach($messages as $k=>$v) { $message.=$k.':'.$v.'<br>'; } } else { $message=$messages; } } else { $this->view->message='上传成功!'; }
2. [代码]获取文件扩展名
/** * 获取文件扩展名 * @param String $name 文件名词 * @author */ public function getExtension ($name) { $fname=''; if($name) { foreach ($name as $val) { $fname=$val['name']; } $exts = @split("[/\\.]", $fname) ; $n = count($exts)-1; $exts = $exts[$n]; return $exts; } }
下载地址:
phpExcelReader:http://sourceforge.net/projects/phpexcelreader/
PHPExcel:http://www.codeplex.com/PHPExcel/Wiki/View.aspx?title=Documents&referringTitle=Home
相关文章推荐
- 如何通过PHP将excel的数据导入MySQL中
- 如何通过PHP将excel的数据导入MySQL中
- 如何通过PHP将excel的数据导入MySQL中
- PHP导入excel数据到mysql
- php将mysql数据导入excel
- PHP将Excel表中的数据导入导出mysql
- PHP将mysql数据导入Excel表中
- 如何通过php把当前时间导入mysql
- 教你如何把excel中的数据导入到Mysql中
- 懒人创造世界------------如何将Excel数据导入到mysql的数据库当中
- 在.net中如何把数据导入到Excel(已调试通过)
- 利用PHP-ExcelReader实现PHP导入Excel数据[不通过CSV]
- 如何通过pl/sql将excel文件数据导入到oracle
- PHP提取excel数据 - 导入MYSQL
- asp.net excel数据通过程序导入mysql
- 【PHP】将EXCEL表中的数据轻松导入Mysql数据表
- PHP导入excel数据到MYSQL
- php导入excel数据到mysql
- php导入excel数据到mysql
- 利用PHP-ExcelReader实现PHP导入Excel数据[不通过CSV]