经常用这个小功能,【把数据库中的数据导出到excel中】,昨天突然发现如果数据是数字会出现一些没有想到的情况,比如,”012345″,在excel中会变成”12345″,如果输入身份证号码这样的长数字,在excel中会用科学计数法表示出来,并且最后的四位数字会出现偏差,变位0000等情况。后来,搜索才知道,把单元格设置为文本格式即可。可用php程序怎么样控制呢?
这个东东困扰了我一天。今天柳暗花明。在php中echo的时候,给要输出的字符串加个双引号,引号中的任何字符都会当成文本被保留。例,echo “=\”0123456\””.”\t”;即可。
在index.php文件中,添加一个连接,<a href=”test1.php”>导出excel</a>。
test1.php文件如下:
< ?
Header(“Content-type: application/octet-stream”);
Header(“Accept-Ranges: bytes”);
Header(“Content-type:application/vnd.ms-excel”);
Header(“Content-Disposition:attachment;filename=export_excel_gshjsl.xls”);
$tx=’表头’;
echo $tx.”\n\n”;
echo “编号”.”\t”;
echo “姓名”.”\t”;
echo “\n”;
echo “=\”411481198507150666\””.”\t”;
echo “=\”0123456\””.”\t”;
echo “\n”;
?>
顺便把简单导出word文档的代码贴到这里:
<?php
header(“Content-Type: application/msword”);
header(“Content-Disposition: attachment; filename=doc.doc”);
header(“Pragma: no-cache”);
header(“Expires: 0″);
$output = ‘<table border=”1″ cellspacing=”2″ cellpadding=”2″ width=”90%” align=”center”>’;
$output .= ‘<tr bgcolor=”#cccccc”><td align=”center”>图片</td></tr>’;
$output .= ‘<tr bgcolor=”#f6f7fa”><td><span style=”color:#FF0000;”><strong>下面是一张图片</strong></span></td></tr>’;
$output .= ‘<tr><td align=”center”><img src=”http://zi.csdn.net/48260_2.gif”></td></tr>’;
$output .= ‘</table>’;
echo $output;
?>
备注:1.导出的word文件,如何把在word中编辑的信息保存到数据库中??
转载请注明:duha.net » php生成excel文件格式