加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

excel的导出和下载(实例讲解)

发布时间:2021-03-10 06:06:31 所属栏目:PHP教程 来源:网络整理
导读:副标题#e# 1、前言 有时需要将数据库表资源导出excel,做成一些报表数据。 而php导出excel的方法大致有几种: 1. 使用php的类库,进行导出,如PHPExcel 2.使用php原生的方法进行导出 而本文介绍的就是,如何通过原生方法导出excel 2、关键函数 2.1、ob输出
副标题[/!--empirenews.page--]

1、前言

有时需要将数据库表资源导出excel,做成一些报表数据。

而php导出excel的方法大致有几种:

1. 使用php的类库,进行导出,如PHPExcel

2.使用php原生的方法进行导出

而本文介绍的就是,如何通过原生方法导出excel

2、关键函数

2.1、ob输出

•ob_start(); •ob_get_contents •ob_end_clean •fopen •fwrite •fclose •iconv

2.2、header输出

1.header 2.iconv

3、使用ob函数进行excel到导出

ob函数主要分为三步:

1.进行缓存的设置 2.读取缓存 3.写入文件

下面贴上导出的excel类

4、完整页面代码

$sql = 'select * from user';
$res = $link->query($sql);
//判断是否有发送get数据
if(isset($_GET['id'])){
$name = empty($_GET['id']) ? 'a' . rand(1000,9999) : $_GET['id'] ;
$filename = $name . '.xls';
//设置缓存的开始
Excel::start();
}
?>
<?php
//页面输出一般是不需要转码的,excel输出才需要转码
echo '';
echo '<tr>';
//设置thead输出
echo '<td style="border-bottom:1px solid black;padding:10px;text-align:center;">' . Excel::setChar('编号') . '</td>';
echo '<td style="border-bottom:1px solid black;padding:10px;text-align:center;">' . Excel::setChar('用户名') . '</td>';
echo '<td style="border-bottom:1px solid black;padding:10px;text-align:center;">' . Excel::setChar('密码') . '</td>';
echo '</tr>';
?>
<?php
echo '';
//设置tbody输出
while($re = $res->fetch(PDO::FETCH_ASSOC)){
echo '<tr>';
echo '<td style="border-bottom:1px solid black;padding:10px;text-align:center;">' . Excel::setChar($re['id']) . '</td>';
echo '<td style="border-bottom:1px solid black;padding:10px;text-align:center;">' . Excel::setChar($re['user']) . '</td>';
echo '<td style="border-bottom:1px solid black;padding:10px;text-align:center;">' . Excel::setChar($re['pwd']) . '</td>';
echo '</tr>';
}
echo '</table>';
?>
<?php
if(isset($_GET['id'])){
//保存文件
Excel::save($filename);
}
if(isset($_GET['id'])){
echo '' .Excel::setChar('完成') .'';
}else{
echo '' . Excel::setChar('导出') .'';

}
?>

5、使用header下载excel

使用ob函数导出excel只能保存到服务器,不能提供下载(特殊处理下还是可以的);下面介绍使用header()函数来导出并下载excel

主要两个header()函数

其他做法和ob函数的导出相同(下面完整代码)

//下载主要靠这两个
header("Content-type:application/vnd.ms-excel");//指定文件类型
header("Content-Disposition:filename=a.xls" ); //指定下载文件名
require 'coon.php';
require 'excel.class.php';
$sql = 'select * from user';
$res = $link->query($sql);
?>

<?php
//页面输出一般是不需要转码的,excel输出才需要转码
echo '

';
echo '<tr>';
//设置thead输出
echo '<td style="border-bottom:1px solid black;padding:10px;text-align:center;">' . Excel::setChar('编号') . '</td>';
echo '<td style="border-bottom:1px solid black;padding:10px;text-align:center;">' . Excel::setChar('用户名') . '</td>';
echo '<td style="border-bottom:1px solid black;padding:10px;text-align:center;">' . Excel::setChar('密码') . '</td>';
echo '</tr>';
?>

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!