php 怎么把数据导出到excel表格
php 把数据导出到excel表多种方法如使用 phpExcel 等,以下代码是直接通 header 生成 excel 文件的代码示例:
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=xls_region.xls");
$cfg_dbhost='localhost';
$cfg_dbname='testdb';
$cfg_dbuser='root';
$cfg_dbpwd='root';
$cfg_db_language='utf8';
//END配置
//链接数据库
$link=mysql_connect($cfg_dbhost,$cfg_dbuser,$cfg_dbpwd);
mysql_select_db($cfg_dbname);
//选择编码
mysql_query("setnames".$cfg_db_language);
//users表
$sql="descusers";
$res=mysql_query($sql);
echo"";
//导出表头(也就是表中拥有的字段)
while($row=mysql_fetch_array($res)){
$t_field[]=$row['Field'];//Field中的F要大写,否则没有结果
echo"".$row['Field']."";
}
echo"";
//导出100条数据
$sql="select*fromuserslimit100";
$res=mysql_query($sql);
while($row=mysql_fetch_array($res)){
echo"
";
foreach($t_fieldas$f_key){
echo"".$row[$f_key]."";
}
echo"";
}
echo"";
?>
PHP 用PHPExcel往数据库导入大量数据
奇怪可以有更好的办法解决,
你可以像做分页一样,查询一段插入一段,
这样避免PHP的超时,
有时虽然用limit(0)无限大超时时间,但是大批量数据还是容易出现顺序和丢失的。
导入excel文件,后端php处理导入的数据并存入数据库,需要前后端结合的demo!
thinkphp3.2phpexcel导入最基本用法
先整个最基础的代码解了这个,后面的常简单了
$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,即可
实例代码演示:
publicfunctionupload(){
$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($exlas$k=>$v){
if(empty($v)){
unset($exl[$k]);
}
};
//重新排序
sort($exl);
$count=count($exl);
//检测表格导入成功后,是否有数据生成
if($count<1){
$this->error('未检测到有效数据');
}
//开始组合数据
foreach($exlas$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';
$w =1;
}
}
//实例化数据
$this->assign('goods',$goods);
//print_r($f);
//统计结果
$total['count']=$count;
$total['success']=$f;
$total['error']=$w;
$this->assign('total',$total);
//删除Excel文件
unlink($file_name);
$this->display('info');
}
/*处理上传exl数据
*$file_name文件路径
*/
publicfunctionimport_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实现把mysql数据库中的表的数据导出到excel
我就贴当时生成EXCEL的代码,LZ可以参照,修改,然问这个PHP文件,就会自动生成EXCEL,
header('Content-type: text/html; charset=utf-8');
header("Content-type:application/vnd.ms-excel;charset=UTF-8");
header("Content-Disposition:filename=test.xls"); //输出格名称
echo "ID\t";echo "name\t\n";
//这是表格头字段 加\T就是换格,加\T\N就是结束这一行,换行的意思
$conn = mysql_connect("localhost","用户名","密码") or die("不能连接数据库");
mysql_select_db("数据库名", $conn);
mysql_query("set names 'UTF-8'");
$sql="SQL语句";
$result=mysql_query($sql);
while($row=mysql_fetch_array($result)){
echo $row[0]."\t";echo $row[1]."\t\n";
}
?>