php 导出csv时如何设置属性,合并单元格之类的。。

functiondownload_csv(){$result=mysql_query("select*fromstudentorderbyidasc");$str="姓名... function download_csv(){
$result = mysql_query("select * from student order by id asc");
$str = "姓名,性别,年龄\n";
$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 .= $name.",".$sex.",".$row['age']."\n"; //用引文逗号分开
}
$filename = date('Ymd').'.csv'; //设置文件名
export_csv($filename,$str); //导出
}
function export_csv($filename,$data) {
header("Content-type:text/csv");
header("Content-type:application/vnd.ms-excel" ); header("Content-Disposition:attachment;filename=".$filename);
header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
header('Expires:0');
header('Pragma:public');
echo $data;
}
展开
 我来答
hhniaold
2014-06-11 · TA获得超过292个赞
知道小有建树答主
回答量:237
采纳率:0%
帮助的人:227万
展开全部

CSV文件本身就是不带格式符号的纯文字,无法直接在PHP中控制单元格合并这样的事情,我觉得你可以用html代码生成execl能直接读的文档比较好

$result = mysql_query("select * from student order by id asc"); 
$str = "<tr><td>姓名</td><td>性别</td><td>年龄</td></tr>\n"; 
$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);


function export_xls($filename,$string){
    //可以修改样式,控制字号、字体、表格线、对齐方式、表格宽度、单元格padding等,在下边的<style></style>
    $header="<html xmlns:o=\"urn:schemas-microsoft-com:office:office\"\nxmlns:x=\"urn:schemas-microsoft-com:office:excel\"\nxmlns=\"http://www.w3.org/TR/REC-html40\">\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html>\n<head>\n<meta http-equiv=\"Content-type\" content=\"text/html;charset=GBK\" />\n<style>\ntd{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:.5pt solid windowtext;mso-background-source:auto;mso-pattern:auto;mso-protection:locked visible;white-space:nowrap;mso-rotate:0;}\n</style>\n</head><body>\n<table x:str border=0 cellpadding=0 cellspacing=0 width=100% style=\"border-collapse: collapse\">";
    $footer="</table>\n</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;
}
追问
导出时把html代码被当成文本给导出来了啊
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式