PHP中使用CSV导出数据的方法
来源:互联网 发布:淘宝卖家关联问题 编辑:程序博客网 时间:2024/06/04 17:55
之前到做数据导出这个功能的时候,发现如果使用PHPExcel进行数据导出的吧,数据量过大,就没有办法导出了,后来使用导出的文件后缀格式为.csv就没有问题了。下面写一下我的方法总结吧:
<?phpnamespace Home\Controller;use Think\Controller;class CheckController extends PublicController{ /* * 封装的csv导出数据的方法 * 文件名$fileName * $headArr 字段名 * 需要导出的数据数据 $data * */ private function getCSV($fileName,$headArr,$data){ $date = date("Y_m_d",time()); $fileName .= "_{$date}.csv"; $fileName = iconv("utf-8", "gb2312", $fileName); header('Content-Type: Content-type:text/csv'); header("Content-Disposition: attachment;filename=\"$fileName\""); header('Cache-Control: max-age=0'); $fp = fopen('php://output', 'a'); // 将数据通过fputcsv写到文件句柄 fputcsv($fp, $head); fputcsv($fp, $headArr); // 计数器 $cnt = 0; // 每隔$limit行,刷新一下输出buffer,不要太大,也不要太小 $limit = 100000; $count = count($data); for($t=0;$t<$count;$t++) { $cnt ++; if ($limit == $cnt) { //刷新一下输出buffer,防止由于数据过多造成问题 ob_flush(); flush(); $cnt = 0; } $row = $data[$t]; foreach ($row as $i => $v) { $row[$i] = iconv('utf-8', 'gbk', $v); }// fputcsv($fp, $row); unset($row); } //下面使用案例 //导出用户数据数据方法 public function epiexport() { $Model = M('userinfo'); $map['Status']=1; $userinfolist = $Model->where($map)->select(); //用户表数据 $alldata = array(); foreach ($userinfolist as $k=>$val) { $alldata[$k]['Number'] = $val['number']; $alldata[$k]['DocuDate'] = $val['docudate']; $alldata[$k]['Name'] = $val['name']; $alldata[$k]['Sex'] = $val['sex'] == 1 ? '男' : '女'; $alldata[$k]['Birth'] = $val['birth']; $alldata[$k]['Nation'] = $val['nation']; $alldata[$k]['FatherName'] = $val['fathername']; $alldata[$k]['FatherPhoneNo'] = $val['fatherphoneno']; $alldata[$k]['MotherName'] = $val['mothername']; $alldata[$k]['MotherPhoneNo'] = $val['motherphoneno']; $alldata[$k]['Address'] = $val['address']; $alldata[$k]['School'] = $val['school']; $alldata[$k]['SchoolType'] = $val['schooltype']; $alldata[$k]['ClassName'] = $val['classname']; $alldata[$k]['AddTime'] =date('Y-m-d',$val['addtime']); $alldata[$k]['Lost']=$val['lost']; $alldata[$k]['inquiryopen'] = $val['inquiryopen']; } $headArr=array_keys($alldata[$k]); $filename="epidata"; $this->getCSV($filename,$headArr,$alldata); }}
阅读全文
0 0
- PHP中使用CSV导出数据的方法
- PHP中数据导出csv
- php导出CSV的方法
- php导出CSV方法
- php导出CSV方法
- php导入导出CSV格式的数据
- php 导出 xls,csv 的方法,csv导入mysql
- HBase导出CSV格式数据的方法
- 在vnpy中使用mongdb数据库插入tb导出的csv数据进行回测的方法
- php导出csv数据代码
- php导出大数据csv
- csv数据的导出
- php导出CSV方法 (转)
- 高效的php 导出 xls,csv 的方法
- Bash中使用MySQL导入导出CSV格式数据
- php导出CSV的实现
- yii2.0中使用Goodby/csv插件,实现数据的导入导出
- asp.net中导出到Excel的方法汇总及导出Excel/Csv格式数据最优方案(C#)
- HashMap总结
- DSO missing from command line
- Java设计模式--修饰模式
- leetcode:path -sum-ii
- myeclipse2015导入myeclipse2016的项目报错
- PHP中使用CSV导出数据的方法
- distributionurl gradle本地配置
- JAVA设计模式---23种设计模式
- VUA-10891-Game of sum
- Convolutional Neural Networks卷积神经网络 Contents 一:前导 Back Propagation反向传播算法 网络结构 学习算法 二:Convolutional N
- GitHub上传文件的过滤规则 -- windows下
- MySQL中函数CONCAT及GROUP_CONCAT的用法
- HEVC参考帧管理[待整理]
- java开发工程师 javascript中的闭包