导航:首页 > 编程语言 > php输出csv文件

php输出csv文件

发布时间:2023-08-22 14:31:05

php导出csv文件时,只能在浏览器上显示文件内容,没有下载提示,更没有下载的csv文件,帮忙指点啊!

据我的理解,export_csv这个函数的功能就是显示csv内容。

按照你的说明猜测,你应该是先将数据库的内容输出到csv文件里,然后再给出一个指向该文件的下载链接就可以了。

export_csv这个函数可以设计成直接用 file 操作函数写入内容就可以了,因为csv本身是纯文本文件,没有什么特殊的文件格式。

⑵ php导出excel或csv

<?php
ob_start();
header("<meta http-equiv=\"content-type\" content=\"text/html;charset=uft-8\">");
header("Content-Type: application/vnd.ms-excel");
header("Expires:0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("content-disposition: attachment;filename=文件名称");
$row = $db -> ... ... # 这里可以进行数据库的操作,记住:ob_start();前不要有输出
?>

⑶ 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格式的Excel表格是,字段本身就有逗号怎么办说在字段上加双引号,但加在哪

$data[$key]=implode("\t",$data[$key]);
你的程序用这个语句把一行数组转换为TAB分割的字符串,这样EXCEL是可以打开的,只是不完全符合CSV的规则(逗号分开),要改为逗号分开,而且每个字段要用引号,该语句修改为下面这样既可:
$data[$key]='"' . implode('","',$data[$key]) . '"';

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

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

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

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

以下是代码示例:

$dsn='mysql:dbname=testdb;host=127.0.0.1';
$user='dbuser';
$password='dbpass';

//连接数据库pdo
try{
$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里会有重复的数据

阅读全文

与php输出csv文件相关的资料

热点内容
怎样不用海绵做解压玩具 浏览:77
为什么远程服务器复制不了文件 浏览:711
打开app闪退怎么回事 浏览:748
bcrpt加密原理 浏览:399
女程序员写的小说 浏览:774
华为路由器ip设置命令 浏览:552
如何打开软件服务器 浏览:756
单片机接口技术及应用 浏览:751
linux下执行脚本文件 浏览:127
拨号加密保护 浏览:435
b站弹幕加密 浏览:601
交友盲盒源码破解 浏览:248
单片机100位百位符号 浏览:686
用友通加密狗坏了 浏览:550
如何在服务器上配置外网网址 浏览:844
阿里云服务器的硬件在哪里 浏览:54
python自动注册谷歌 浏览:330
phpini验证码 浏览:826
解压后的文件怎么驱动 浏览:328
老板要程序员加班 浏览:416