php – 使用数组构建CSV
发布时间:2020-12-13 22:36:41 所属栏目:PHP教程 来源:网络整理
导读:我需要运行一个返回多行并将其导出为CSV的查询.我必须按照一定的顺序放置细胞. 所以,让我说我的桌子是id,姓名,地址,妻子.我需要按照id,address,wife,name的顺序构建一个csv.我想我可以按照正确的顺序制作一个数组,然后用它制作一个csv但是经过一个小时的谷歌
我需要运行一个返回多行并将其导出为CSV的查询.我必须按照一定的顺序放置细胞.
所以,让我说我的桌子是id,姓名,地址,妻子.我需要按照id,address,wife,name的顺序构建一个csv.我想我可以按照正确的顺序制作一个数组,然后用它制作一个csv但是经过一个小时的谷歌搜索我无法找到如何用数组制作一个csv. 有fputcsv但需要预先制作的csv.此外,我希望有一个codeigniter方式来做到这一点. public function export() { $this->load->helper('download'); $data[1] = 'i like pie'; $data[2] = 'i like cake'; force_download('result.csv',$data); } 我试过了,但错误说下载帮助文件期望字符串不是数组.
这是我使用的一些代码……您可以在导出中调整所需的列…
注意:此CSV直接发送到php:// output,直接写入输出缓冲区.这意味着你没有在服务器上保存任何.csv文件,它可以处理更大的文件大小,构建一个巨大的数组,然后尝试循环它. header("Content-type: application/csv"); header("Content-Disposition: attachment; filename="Jobs_".date('M.j.y',$from)."-".date('M.j.y',$to).".csv""); header("Pragma: no-cache"); header("Expires: 0"); $handle = fopen('php://output','w'); fputcsv($handle,array( 'JobId','Template','Customer','Status','Error','PDF','Run Time','Wait Time','Server' )); foreach ($jobs as $jobData) { fputcsv($handle,array( $job->getId(),$job->getTemplate(),$jobData['customers_firstname'].' '.$jobData['customers_lastname'],$status,$error,$jobData['products_pdfupload'],$job->getRunTime(),$job->getWaitTime(),$jobData['server'] )); } fclose($handle); exit; 这应该可以让您对CSV导出的工作原理有一个很好的了解.我不使用CodeIgniter的文件下载助手,所以我无法帮助你. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |