文件管理 · 2022年8月24日

fputcsv导出文件|php怎么导出大量数据的Excel

A. PHP导出CSV格式文件因为导出数据中有英文逗号导致分列错误怎么处理

CSV文件的格式本身就是以英文逗号分列,然后回车分行的文本类型!所以,你的问题,如果某一列中包含英文逗号的话将这一列用引号引起来!比如:a,"b,c",d这样就会是三列,而不是四列

B. php中如何导入导出CSV格式的文件

其实你可以用phpmyadmin实现导入导出,不过导入的时候字段要和数据表的字段一一对应,参考资料里面的直接用PHP读取excel的,可能也会对你有帮助!

C. php fputcsv 如何设置单元格宽度

您好,这样的:定义和用法fputcsv() 函数将行格式化为 CSV 并写入一个打开的文件。该函数返回写入字符串的长度。若出错,则返回 false。。语法fputcsv(file,fields,seperator,enclosure)参数描述file 必需。规定要写入的打开文件。 fields 必需。规定要从中获得数据的数组。 seperator 可选。规定字段分隔符的字符。默认是逗号 (,)。 enclosure 可选。规定字段环绕符的字符。默认是双引号 "。 说明fputcsv() 将一行(用 fields 数组传递)格式化为 CSV 格式并写入由 file 指定的文件。提示和注释提示:参见 fgetcsv() 函数。例子<?php$list = array("George,John,Thomas,USA","James,Adrew,Martin,USA",);$file = fopen("contacts.csv","w");foreach ($list as $line) { fputcsv($file,split(',',$line)); }fclose($file);?>以上代码执行后,CSV 文件会类似这样:George,John,Thomas,USAJames,Adrew,Martin,USA

D. php fputcsv 写入csv文件之前使用iconv将utf-8字符集转换为unicode,打开文件乱码。那说明转换失败

你需要确定转换编码前的字符编码,如果不是utf-8也会出现乱码

E. php csv导出有时有数据有时无数据又不报错

这个简单,加个条件;where id>=0前提是ID要自增就可以了———————–这可能是数据量过大,写入超时造成的;你把持续连接时间设置的多一点;就可以了;

F. php 生成 csv文件

$filename="export_".date('Ymd').".csv";header('Content-Type:application/vnd.ms-excel');header('Content-Disposition:attachment;filename="'.$filename.'"');header('Cache-Control:max-age=0');//写入你的查询代码$fp=fopen('php://output','a');$print_hea=array("姓名","年龄","性别");fputcsv($fp,$print_hea);//下面是你的查询结果代码,把结果循版环在数权组中后使用fputcsv($fp,$print_hea_new);

G. php怎么导出大量数据的Excel

php导出大抄量数据Excel的具体操作步骤袭如下:

1、使用phpstudy搭建一个测试平台,直接访问数据库。

H. PHP导出MySQL数据到Excel文件(fputcsv)

这里的方法是利用fputcsv写CSV文件的方法,直接向浏览器输出Excel文件。复制代码代码如下://输出Excel文件头,可把user.csv换成你要的文件名header('Content-Type:application/vnd.ms-excel');header('Content-Disposition:attachment;filename="user.csv"');header('Cache-Control:max-age=0');//从数据库中获取数据,为了节省内存,不要把数据一次性读到内存,从句柄中一行一行读即可$sql='select*fromtblwhere……';$stmt=$db->query($sql);//打开PHP文件句柄,php://output表示直接输出到浏览器$fp=fopen('php://output','a');//输出Excel列名信息$head=array('姓名','性别','年龄','Email','电话','……');foreach($headas$i=>$v){//CSV的Excel支持GBK编码,一定要转换,否则乱码$head[$i]=iconv('utf-8','gbk',$v);}//将数据通过fputcsv写到文件句柄fputcsv($fp,$head);//计数器$cnt=0;//每隔$limit行,刷新一下输出buffer,不要太大,也不要太小$limit=100000;//逐行取出数据,不浪费内存while($row=$stmt->fetch(Zend_Db::FETCH_NUM)){$cnt++;if($limit==$cnt){//刷新一下输出buffer,防止由于数据过多造成问题ob_flush();flush();$cnt=0;}foreach($rowas$i=>$v){$row[$i]=iconv('utf-8','gbk',$v);}fputcsv($fp,$row);}优点简单易用,非常节省内存,不依赖第三方类库。

I. php输出excle表格样式,需要代码形式,一定重谢!!!!!急急急

<?php$list = array('位置','单元','房间','学号','姓名','性别','专业');//$file = fopen("contacts.csv","a"); header('Content-Type: application/vnd.ms-excel;charset=gb2312'); header('Content-Disposition: attachment;filename='.date("YmdHis").".csv"); header('Cache-Control: max-age=0'); // 打开PHP文件句柄,php://output 表示直接输出到浏览器 $fp = fopen('php://output', 'a'); foreach ($list as $key=>$val) { $list[$key] = $val; } fputcsv($fp,$list); //explode(',',$line)$con = mysql_connect("localhost","root","admin"); mysql_select_db("php_jquery_example"); $sql = "select event_id, event_title, event_desc,event_start, event_end from events"; $result = mysql_query($sql); while($row = mysql_fetch_array($result) ){ $list2 = array($row[0],$row[1],$row[2],$row[3],$row[4]); foreach($list2 as $k=>$val){ $list2[$k] = $val;} fputcsv($fp,$list2);unset($list2); }fclose($fp);mysql_close();?>

J. php 如何从数据里选择所需要信息然后生成csv文件自动保存在指定的路径(不提示保存,自动)

命令行模式下,或者web模式下保存的路径在服务器中,可以达到你的要求(有该路径的权限即可)

如果是在web模式下,不提示直接保存到访客的电脑中的某个位置,是不可以的。

web模式保存到客户端,只能通过下载,由用户指定,或保存到默认的下载目录。

以下是代码示例:

$dsn='mysql:dbname=testdb;host=127.0.0.1';$user='dbuser';$password='dbpass';//连接数据库pdotry{$dbh=newPDO($dsn,$user,$password,array(PDO::MYSQL_ATTR_INIT_COMMAND=>"SETNAMES'UTF8'"));}catch(PDOException$e){echo'Connectionfailed:'.$e->getMessage();exit;}//读取数据,具体sql你根据情况修改$stat=$dbh->prepare('SELECT*FROM`table`WHERE`id`>0LIMIT100;');$stat->execute();$result=$stat->fetchAll(PDO::FETCH_ASSOC);//创建csv文件并打开文件指针$filepath='file.csv';$fp=fopen($filepath,'w');//写入数据foreach($resultas$i=>$row){//写入标题行if($i==0){fputcsv($fp,array_keys($row));}fputcsv($fp,$row);}//关闭文件指针fclose($fp);//把文件输出到下载$file=fopen($filepath,"r");//打开文件$size=filesize($filepath);Header("Content-type:application/octet-stream");Header("Accept-Ranges:bytes");Header("Accept-Length:".$size);Header("Content-Disposition:attachment;filename=download.csv");echofread($file,$size);fclose($file);

相关知识点:

PHP: fputcsv

PHP:PDO

数据库查询的时候只返回列名,防止列出现重复,csv里会有重复的数据