php导⼊⼤excel表格,PHP⽤PHPExcel往数据库导⼊⼤量数据!
如何将excel。。。
导⼊excel⽂件,后端php处理导⼊的数据并存⼊数据库,需要前后端结合的demo!
thinkphp3.2和phpexcel导基本⽤法
先整个最基础的代码,理这个⾯的就⾮常了
$file_name= './Upload/excel/123456.xls';
import("Org.Util.PHPExcel");
import("Org.Util.PHPExcel.IOFactory");
$objReader = \PHPExcel_IOFactory::createReader('Excel5');
$objPHPExcel = $objReader->load($file_name,$encode='utf-8');
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow(); // 取得总⾏数
$highestColumn = $sheet->getHighestColumn(); // 取得总列数
$s = $objPHPExcel->getActiveSheet()->getCell("A2")->getValue();
表格内容:
再给⼤家整个⼀点难度的,先说下思路。
1.上传excel⽂件,得到它的地址
2.写个处理exl的function,即可
实例代码演⽰:
public function upload(){
$files = $_FILES['exl'];
// exl格式,否则重新上传
if($files['type'] !='application/vnd.ms-excel'){
$this->error('不是Excel⽂件,请重新上传');
}
// 上传
$upload = new \Think\Upload();// 实例化上传类
$upload->maxSize = 3145728 ;// 设置附件上传⼤⼩
$upload->exts = array('xls');// 设置附件上传类型
$upload->rootPath = './Upload/'; // 设置附件上传根⽬录
$upload->savePath = 'excel/'; // 设置附件上传(⼦)⽬录
//$upload->subName = array('date', 'Ym');
$upload->subName = '';
$info = $upload->upload();
$file_name = $upload->rootPath.$info['exl']['savepath'].$info['exl']['savename']; $exl = $this->import_exl($file_name);
// 去掉第exl表格中第⼀⾏
unset($exl[0]);
// 清理空数组
foreach($exl as $k=>$v){
if(empty($v)){
unset($exl[$k]);
}
};
// 重新排序
sort($exl);
$count = count($exl);
// 检测表格导⼊成功后,是否有数据⽣成
if($count<1){
$this->error('未检测到有效数据');
}
// 开始组合数据
foreach($exl as $k=>$v){
$goods[$k]['goods_sn'] = $v;
// 查询数据库
$where['goods_sn'] = array('like','%'.$v.'%');
$res = M('goods')->where($where)->find();
$goods[$k]['goods_name'] = $res['goods_name'];
$goods[$k]['goods_thumb'] = $res['goods_thumb'];
if($res){
// 是否匹配成功
$goods[$k]['is_match'] = '1';
$f = 1;
}else{
// 匹配失败
$goods[$k]['is_match'] = '0';
}
}
// 实例化数据
$this->assign('goods',$goods);
//print_r($f);
// 统计结果
$total['count'] = $count;
$total['success'] = $f;
$total['error'] = $w;
表格网站php源码$this->assign('total',$total);
// 删除Excel⽂件
unlink($file_name);
$this->display('info');
}
/* 处理上传exl数据
* $file_name ⽂件路径
*/
public function import_exl($file_name){
//$file_name= './Upload/excel/123456.xls';
import("Org.Util.PHPExcel"); // 这⾥不能漏掉
import("Org.Util.PHPExcel.IOFactory");
$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=1;$i
$data[] = $objPHPExcel->getActiveSheet()->getCell('A'.$i)->getValue(); }
return $data;
}
有问题⼀定要及时弄清楚
PHP ⽤PHPExcel往数据库导⼊⼤量数据
1、⾸们准备⼀个含有数据的Excel表格,表头和数据表中的段相对应。
2、在ThinkPHP中引⼊PHPExcel。
3、然后我们编写导⼊的PHP代码。
4、然后我们编写导出的PHP代码。
5、然后我们进⾏导出测试发现可以导出即可。
php中如何将execl的数据导⼊到数据库中
1.使⽤PHP
Excel Parser Pro软件,但是这件为收费软件;
2.可将EXCEL表保存为CSV格式,然后phpmyadmin或者SQLyog导⼊,SQLyog导⼊的⽅法为:
·将EXCEL表另存为CSV形式;
·打开SQLyog,对要导⼊的表格右击,点击“导⼊”-“导⼊使⽤加载本地CSV数据”;
·在弹出的对话框中,点击“改变..”,把选择“填写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列复制到⼀个纯⽂本⽂件中,假设为
·把放到数据库中运⾏即可,你可以⽤命令⾏导⼊,也可以⽤phpadmin运⾏。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论