扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
php导出数据excel有专门的库,当导出少量数据的时候速度很快,但是当数据量大的时候就会存在服务器内存不够之类的。
成都创新互联公司专业为企业提供闽清网站建设、闽清做网站、闽清网站设计、闽清网站制作等企业网站建设、网页设计与制作、闽清企业网站模板建站服务,10多年闽清做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
所以在导出大量数据的时候就应该分页查询数据,避免服务器宕机。正好PHP提供了fputcsv函数可以将数据写入到csv文件中。
这样我们就可以使用PHP对数据进行分页查询,再写入到csv文件中。
微软的Excel设置单元格行数默认是6万行rows,相对的讲其实当我们超过1万行的时候已经是大数据的导出。
好比:有客户10000人,平均每人每天产生10条活动记录,要导出上周所有的客户活动记录: 10000*10*7=700000
估计看70万行的Excel这个人会疯掉的,我们的建议是分批次导出,按时间导出到不同的excel
下面是一个PHPExcel官方的Demo(已修改过)
复制代码
define('EOL', 'br /');
$objPHPExcel = new \app\extensions\PHPExcel\PHPExcel();
ini_set("memory_limit", "1024M"); // 设置php可使用内存
$cacheMethod = \PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip;
if (!\PHPExcel_Settings::setCacheStorageMethod($cacheMethod)) {
die($cacheMethod . " 缓存方法不可用" . EOL);
}
echo date('H:i:s'), " 当前使用的缓存方法是: ", $cacheMethod, " 方式", EOL;
echo date('H:i:s'), " 开始设置文档属性", EOL;
$objPHPExcel-getProperties()-setCreator("Maarten Balliauw")
-setLastModifiedBy("Maarten Balliauw")
-setTitle("Office 2007 XLSX Test Document")
-setSubject("Office 2007 XLSX Test Document")
具体的还有很多写不下,我是在后盾人看的教学视频无意中学到的,正好解答给你希望能帮到你
1、首先创建要插入100万数据的表格,随机产生数字。
2、其次创建存储过程,并向表中插入数据,调用存储过程进行插入数据,插入300万条数据,且分几次插入。
3、最后导出数据到csv,使用函数selectxxxintooutfile,其中outfile后面的路径可以是Windows或macOS或者Linux。
根据下列编码程序可以。
1./*** 批量导出数据* @param $arr 从数据库查询出来,即要导出的数据* $name excel表歌名*/
2.function expExcel($arr,$name){ require_once 'PHPExcel.php';
3. //实例化 $objPHPExcel = new PHPExcel(); /*右键属性所显示的信息*/
4.$objPHPExcel-getProperties()-setCreator("zxf") // -setLastModifiedBy("zxf") //最后一 -setTitle('数据EXCEL导出') //标题-setSubject('数据EXCEL导出') //主题setDescription('导出数据') //描setKeywords("excel") //标记setCategory("result file"); //类别
5. //设置当前的表格 $objPHPExcel-setActiveSheetIndex(0);// 设置表格第一行显示内容$objPHPExcel-getActiveSheet() -setCellValue('A1', '业主姓名') -setCellValue('B1', '密码')-setCellValue('C1', '手机号码' -setCellValue('D1', '地址')
6.//设置第一行为红色字体 -getStyle('A1:D1')-getFont()-getColor()-setARGB(PHPExcel_Style_Color::COLOR_RED);$key = 1; /*以下就是对处理Excel里的数据。
在使用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'],可以自己在文件中添加上去即可。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流