十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
方法一:
创新互联主营阜宁网站建设的网络公司,主营网站建设方案,App定制开发,阜宁h5微信小程序开发搭建,阜宁网站营销推广欢迎阜宁等地区企业咨询
?php
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=test_data.xls");
$tx='表头';
echo
$tx."\n\n";
//输出内容如下:
echo
"姓名"."\t";
echo
"年龄"."\t";
echo
"学历"."\t";
echo
"\n";
echo
"张三"."\t";
echo
"25"."\t";
echo
"本科"."\t";
?
方法二:
PHPEXCEL
类库,功能强大,支持win
Excel2003
,Win
Excel2007.下载类库,里边有例子
用这个吧:PHPExcel
步骤:
1.百度:phpexcel,结果如图所示,点击第一个结果;
2.进入官网后,找到右边的download按钮,下载,下载完成的是一个压缩文件,解压放到你的项目目录里,根据个人情况而定;
3.因为这里给大家做演示,所以建了一个测试文件,有点基础的都能明白是怎么回事,下面进入代码;
4.
//引入PHPExcel库文件(路径根据自己情况)
include './phpexcel/Classes/PHPExcel.php';
//创建对象
$excel = new PHPExcel();
//Excel表格式,这里简略写了8列
$letter = array('A','B','C','D','E','F','F','G');
//表头数组
$tableheader = array('学号','姓名','性别','年龄','班级');
//填充表头信息
for($i = 0;$i count($tableheader);$i++) {
$excel-getActiveSheet()-setCellValue("$letter[$i]1","$tableheader[$i]");
}
5.
//表格数组
$data = array(
array('1','小王','男','20','100'),
array('2','小李','男','20','101'),
array('3','小张','女','20','102'),
array('4','小赵','女','20','103')
);
//填充表格信息
for ($i = 2;$i = count($data) + 1;$i++) {
$j = 0;
foreach ($data[$i - 2] as $key=$value) {
$excel-getActiveSheet()-setCellValue("$letter[$j]$i","$value");
$j++;
}
}
6.
//创建Excel输入对象
$write = new PHPExcel_Writer_Excel5($excel);
header("Pragma: public");
header("Expires: 0");
header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
header("Content-Type:application/force-download");
header("Content-Type:application/vnd.ms-execl");
header("Content-Type:application/octet-stream");
header("Content-Type:application/download");;
header('Content-Disposition:attachment;filename="testdata.xls"');
header("Content-Transfer-Encoding:binary");
$write-save('php://output');
7.打开页面,刷新的时候会弹出对话框,让你选择文件保存路径和文件名称,我直接放在了桌面上,如图所示;
8.打开表格后,数据和格式跟代码中的一致,说明PHP导出的Excel是正确的。如果出现错误,检查一下你的表格数组和数据数组吧。
详细内容请参考:
这是一个表格循环的问题
原理是一个大表格,里边有三列表格,每一列表格中又套一个表格,这个表格分三行显示
思考:
每隔3列换行一次,实现一行3列,多行3列
table
tr
?php
//从这个地方循环,利用tr和/tr来分行
$i = 0;
while($myrow=mysql_fetch_array($rs)){
?
td
table
//内表循环开始
tr
td1/td
/tr
tr
td1(1)/td
/tr
tr
td1(2)/td
/tr
//内部循环结束
/table
/td
?php
}
//既然是遇到3列一换行,那么/3
if ($i / 3) echo "/tr";
//以上这句话是最重要的,如果能/3那么显示/tr,那么,一显示/tr,那就是换一行了
?
/table
你可以 试试
这种情况尽量用div 浮动来做。用table,比较麻烦,代码如下:
PHP code
?php
$sql = "xxx limit 40";
$query = mysql_db_query($sql);
if(mysql_num_rows($query) 0){
?
table
?php
$ct = 0;
$cols = 8;
while($rs = mysql_fetch_array($query)){
//输出行首
if( $ct % $cols == 0 ){
echo 'tr';
}
?
td记录/td
?php
++$ct;
//输出行尾巴
if( $ct % $cols == 0 ){
echo '/tr';
}
}
//单元格不够,补全单元格与行尾
if( $ct % $cols != 0 ){
$lack = ($cols - $ct % $cols);
for($i = 0; $i = $lack; $i++){
echo 'td /td';
}
echo '/tr';
}
?
/table
?php
}
?
$name = iconv("utf-8","gbk",'二级学院列表');;
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=$name.xls");
//第三行的 name.xls这个xls可以自己改,不过大数据的导出建议使用专业的类,如phpexcel.
在php开发过程中,对于大量的数据考虑用表格输出的时候可以用得到,代码如下:
html
head
title二行5列一共10个数据/title
/head
body
table border="1" width=80%
tr
?php
$num = 5; //当前每一行显示列数
$k = 1; //初始化
while($k=10)
{
if($k % $num == 0){
if($k==10){
echo 'td'.$k.'/td/tr'."\r\n";
}else{
echo 'td'.$k.'/td/trtr'."\r\n";
}
}
else {
echo 'td'.$k.'/td'."\r\n";
}
$k+=1; //自加
}
?
/table
/body
/html
下面是从数据库读取代码:
?php
$sql = "select * from table ";
$query = mysql_query($sql);
$num = mysql_num_rows($query);
for($i=0;$i $num;$i++) {
$result = mysql_fetch_array($query);
if($i%3==0){
$str.= " tr style= 'word-break:break-all ' ";
}
$str.= " td ".$result[ "title "]. " /td ";
if(($i+1)%$num==0) {
$str.= " /tr ";
}
}
?
table border=0
?
echo $str;
?
/table