php导出csv
⑴ php导出csv,如下代码为什么不弹出提示保存或打开CSV文件
加
header ( "Content-type:application/vnd.ms-excel;charset=utf-8" );
⑵ php从数据库导出csv格式的Excel表格是,字段本身就有逗号怎么办说在字段上加双引号,但加在哪
$data[$key]=implode("\t",$data[$key]);
你的程序用这个语句把一行数组转换为TAB分割的字符串,这样EXCEL是可以打开的,只是不完全符合CSV的规则(逗号分开),要改为逗号分开,而且每个字段要用引号,该语句修改为下面这样既可:
$data[$key]='"' . implode('","',$data[$key]) . '"';
⑶ php导出csv文件时,只能在浏览器上显示文件内容,没有下载提示,更没有下载的csv文件,帮忙指点啊!
据我的理解,export_csv这个函数的功能就是显示csv内容。
按照你的说明猜测,你应该是先将数据库的内容输出到csv文件里,然后再给出一个指向该文件的下载链接就可以了。
export_csv这个函数可以设计成直接用 file 操作函数写入内容就可以了,因为csv本身是纯文本文件,没有什么特殊的文件格式。
⑷ php 导出csv时如何设置属性,合并单元格之类的。。
CSV文件本身就是不带格式符号的纯文字,无法直接在PHP中控制单元格合并这样的事情,我觉得你可以用html代码生成execl能直接读的文档比较好
$result=mysql_query("select*fromstudentorderbyidasc");
$str="<tr><td>姓名</td><td>性别</td><td>年龄</td></tr> ";
$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.="<tr><td>".$name."</td><td>".$sex."</td><td>".$row['age']."</td></tr>";
}
$filename=date('Ymd').'.xls';
export_xls($filename,$str);
functionexport_xls($filename,$string){
//可以修改样式,控制字号、字体、表格线、对齐方式、表格宽度、单元格padding等,在下边的<style></style>
$header="<htmlxmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"> <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <metahttp-equiv="Content-type"content="text/html;charset=GBK"/> <style> td{padding:4px;mso-ignore:padding;color:windowtext;font-size:10.0pt;font-weight:400;font-style:normal;text-decoration:none;font-family:Arial;mso-generic-font-family:auto;mso-font-charset:134;mso-number-format:General;text-align:general;vertical-align:middle;border:.5ptsolidwindowtext;mso-background-source:auto;mso-pattern:auto;mso-protection:lockedvisible;white-space:nowrap;mso-rotate:0;} </style> </head><body> <tablex:strborder=0cellpadding=0cellspacing=0width=100%style="border-collapse:collapse">";
$footer="</table> </body></html>";
$exportString=$header.$string.$footer;
header("Cache-Control:public");
header("Pragma:public");
header("Content-type:Content-type:application/vnd.ms-excel");
header("Accept-Ranges:bytes");
header("Content-Disposition:attachment;filename=".$filename);
header("Content-length:".strlen($exportString));
echo$exportString;
exit;
}
⑸ PHP怎么在导出csv的时候加双引号
使用默认的双引号做包围符 ... 但是强制所有元素触发 ...
foreach($linesas&$line){
foreach($lineas&$column){
$column=$column.'';
}
}
产生的结果大概会类似于下面这样 ...
"CA","12","Y"
"MU","13","Y"
"MU","12","N"
2.我们去研究手册 ... 手册上关于这个函数的说明是这样的 ...
intfputcsv(resource$handle,array$fields[,string$delimiter=','[,string$enclosure='"']])
你可以看到这个函数支持自定义包围符 ... 也就是第四个参数 $enclosure ...
于是我们可以手动在所有元素的两侧加上双引号 ... 并修改默认的包围符为空 ...
foreach($old['lines']as$line){
fputcsv($new,$line,',','');
}
这种方式可以让你的例子返回完美的结果 ...
以上是两种方法。
⑹ PHP导出CSV格式文件因为导出数据中有英文逗号导致分列错误怎么处理
CSV文件的格式本身就是以英文逗号分列,然后回车分行的文本类型!所以,你的问题,如果某一列中包含英文逗号的话将这一列用引号引起来!比如:
a,"b,c",d
这样就会是三列,而不是四列
⑺ php中如何导入导出CSV格式的文件
其实你可以用
phpmyadmin
实现导入导出,不过导入的时候字段要和数据表的字段一一对应,参考资料里面的直接用PHP读取excel的,可能也会对你有帮助!
⑻ php csv导出有时有数据有时无数据又不报错
这个简单,
加个条件;
where id>=0
前提是ID要自增就可以了
-----------------------
这可能是数据量过大,
写入超时造成的;
你把持续连接时间设置的多一点;就可以了;
⑼ php导出数据库CSV文件时为什么去取到值输出文件却为空
为空就是没有正常写入呗,查看相关写权限