php如何导出大数据类型,php导出excel数据量大

PHP导出100万数据到excel

php导出数据excel有专门的库,当导出少量数据的时候速度很快,但是当数据量大的时候就会存在服务器内存不够之类的。

创新互联是一家专业提供鹤壁企业网站建设,专注与成都做网站、网站建设、HTML5、小程序制作等业务。10年已为鹤壁众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。

所以在导出大量数据的时候就应该分页查询数据,避免服务器宕机。正好PHP提供了fputcsv函数可以将数据写入到csv文件中。

这样我们就可以使用PHP对数据进行分页查询,再写入到csv文件中。

如何使用PHP导出csv和excel文件

(一)phpexcel文件导出:

步骤1,引入文件require APPPATH.'/libraries/PHPExcel.PHP';

步骤2, 实例化PHPEXCEL对象 $objPHPExcel=new PHPExcel();

步骤3, 设置表头 $column = array('A','B','C'); $line = array('词语','频次','词性');

//填充表头信息

for($i = 0;$i count($tableheader_all);$i++) {

$objPHPExcel-getActiveSheet()-setCellValue("$letter[$i]1","$tableheader[$i]");

//上一行中"$letter[$i]1"表示第“1”行第“$i”列

}

步骤4, 填充数据

for ($i = 2;$i = count($data) + 1;$i++) {//因为内容是从第二行开始的,所以i=2表示从第二行开始填充数据

$j = 0;

foreach ($tmp as $key=$val ){

$objPHPExcel-getActiveSheet()-setCellValue("$letter[$j]$i",$data[$i-2][$val]); //数据是从第一条开始但是i的初值是2所以想从第一条开始应该是$data[$i-2]开始

$j++;

}

}

步骤5,写进excel中并输出

$write = new PHPExcel_Writer_Excel5($objPHPExcel);

header("Pragma: public");

header("Expires: 0");

header("Cache-Control:must-revalidate, post-check=0, pre-check=0");

header("Content-Type:application/force-download");

header("Content-Type:application/vnd.ms-execl");

header("Content-Type:application/octet-stream");

header("Content-Type:application/download");;

header('Content-Disposition:attachment;filename="数据导出_词云图.xls"');

header("Content-Transfer-Encoding:binary");

$write-save('php://output');

(一)CSV文件导出:

csv文件导出最令人头疼的问题就是编码问题,现在分享一下我的经验

首先看服务器是Linux的还是windows的 如果是windows的服务器那么编码问题只能借助于mb_convert_encoding()或者是iconv两个函数相互转换中文编码

如果服务器是linux的 那么很简单 utf-8: setlocale(LC_ALL, ‘en_US.UTF-8′); 简体中文:setlocale(LC_ALL, ‘zh_CN');

下面来说csv导出步骤:

$result = mysql_query("select * from student order by id asc");

$str = "姓名,性别,年龄\n";

$str = iconv('utf-8','gb2312',$str);

while($row=mysql_fetch_array($result)){

$name = iconv('utf-8','gb2312',$row['name']); //中文转码

$sex = iconv('utf-8','gb2312',$row['sex']);

$str .= $name.",".$sex.",".$row['age']."\n"; //用引文逗号分开

}

$filename = date('Ymd').'.csv'; //设置文件名

export_csv($filename,$str); //导出

要将数据导出到本地即下载,需要修改header信息,代码如下:

function export_csv($filename,$data) {

header("Content-type:text/csv");

header("Content-Disposition:attachment;filename=".$filename);

header('Cache-Control:must-revalidate,post-check=0,pre-check=0');

header('Expires:0');

header('Pragma:public');

echo $data;

}

如何用php导出导入大数据库

在使用PhpMyAdmin的时候经常用到数据的导入和导出(Export/Import),但是在导入大数据的时候由于php上传文件的限制和脚本响应时间的限制,导致phpMyAdmin无法导入大数据。很多时候都是由于文件过大,从本地浏览上传导入,容易中断失败,有没有更好的方法呢?

方法:

在phpMyAdmin的目录下,找到根目录的config.inc.php文件,

打开config.inc.php文件,查找$cfg['UploadDir'],这个参数就是设定导入文件存放的目录,这里把值设定为:ImportSQLFile。

在phpMyAdmin目录下,建立以ImportSQLFile命名的文件夹,

把我们需要导入的数据文件,放到ImportSQLFile文件夹下面,非常简单,

登入phpMyAdmin,选择需要导入的数据,点击导航条上面的“导入”按钮,

选中“从网站服务器上传文件夹ImportSQLFile/中选择:”选项,并需要导入的数据文件,

最后点击“执行”,即可导入成功。

注意事项

如果在config.inc.php文件,没有找到$cfg['UploadDir'],可以自己在文件中添加上去即可。

php怎么导出大量数据的Excel

PHP从数据库分多次读取100万行记录,和分多次将100万行写入文本文件都没问题

Excel可以支持100万行记录,Excel 2003最大支持65536行,从2007版开始支持104万行了,目前2007的盗版应该比较普及了-_-! 问清楚你的客户是什么版本。

你要导出excel的理由是非常充分和正确的,应该继续坚持。业务人员最熟悉的就是Excel,实在不熟悉现学现用也比别的快。只是要注意,当数据量达到10万行这个级别时,Excel的公式填充将会非常非常慢,如果再有LOOKUP()公式,基本上十分钟内处理CPU满载进程管理器杀不掉的状态,这时候其实xampp + phpmyadmin是一个易用性和性能都最平衡的选择

PHPExcel输出的是Excel XML格式,有个XML头和尾,中间是数据Body,需要将100万行都赋值给一个数组才可以调用PHPExcel-write(),这容易导致PHP执行超时或者内存超限,你不妨调整一下php.ini配置,把超时时间和内存限制都改到很大

如果是输出csv格式,那就太简单了,你的问题可能是没给字段内容加引号,加上引号再调用fputcsv试试?其实fputcsv做的事情特别简单,你甚至可以不管它,自己把CSV文件的每一行拼接好了之后用file_put_contents写入

php如何导出数据

php导出数据有两种方式,一种是通过封装好的phpexcel导出,一种是通过table导出数据,指定header就可以导出数据。

上面是导出到excel中的方法,当然你也可以导出数据直接到数据库,或者你也可以到处数据到文件中,这个主要看你导出数据的格式要求。

看你截图显示的是数组格式,可以通过循环遍历然后导入到响应的文件中。


网站标题:php如何导出大数据类型,php导出excel数据量大
本文链接:http://scyanting.com/article/dscsgjh.html