php 把数据导出到excel表格有多种方法,比如使用 phpExcel 等,以下代码是直接通过 header 生成 excel 文件的代码示例:
创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站建设、成都网站制作、叙州网络推广、重庆小程序开发公司、叙州网络营销、叙州企业策划、叙州品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供叙州建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com
?php
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=xls_region.xls");
$cfg_dbhost = 'localhost';
$cfg_dbname = 'testdb';
$cfg_dbuser = 'root';
$cfg_dbpwd = 'root';
$cfg_db_language = 'utf8';
// END 配置
//链接数据库
$link = mysql_connect($cfg_dbhost,$cfg_dbuser,$cfg_dbpwd);
mysql_select_db($cfg_dbname);
//选择编码
mysql_query("set names ".$cfg_db_language);
//users表
$sql = "desc users";
$res = mysql_query($sql);
echo "tabletr";
//导出表头(也就是表中拥有的字段)
while($row = mysql_fetch_array($res)){
$t_field[] = $row['Field']; //Field中的F要大写,否则没有结果
echo "th".$row['Field']."/th";
}
echo "/tr";
//导出100条数据
$sql = "select * from users limit 100";
$res = mysql_query($sql);
while($row = mysql_fetch_array($res)){
echo "tr";
foreach($t_field as $f_key){
echo "td".$row[$f_key]."/td";
}
echo "/tr";
}
echo "/table";
?
下面是我写的一个PHP导出数据到CSV问价的函数,你到时候直接调用就行了
/**
* 导出CSV文件
* @param string $fileName 文件名字
* @param string|array $data 导出数据,csv格式的字符串|数值数组
* @param string $to_encoding 目标转换编码
* @param string $from_encoding 当前编码
*/
function exportCSV($fileName = '', $data = '', $to_encoding = 'gb2312', $from_encoding = 'utf-8') {
$fileName = empty($fileName) ? date('YmdHis') : $fileName;
// 文件标签
Header("Content-type: application/octet-stream");
header("Content-type: application/vnd.ms-excel; charset=$from_encoding");
Header("Content-Disposition: attachment; filename=$fileName.csv");
$str = '';
if($data) {
if(is_array($data)) {
foreach ($data as $v) {
if(is_array($v)) {
foreach ($v as $vo) {
$str .= (is_numeric($vo) ? "'".$vo : $vo."").",";
}
$str = trim($str, ",")."\r\n";
} else {
$str .= (is_numeric($v) ? "'".$v : $v).",";
}
}
$str = trim($str, ",")."\r\n";
} else {
$str = $data;
}
}
echo mb_convert_encoding($str, "gb2312", "utf-8");
exit;
}
php导出数据excel有专门的库,当导出少量数据的时候速度很快,但是当数据量大的时候就会存在服务器内存不够之类的。
所以在导出大量数据的时候就应该分页查询数据,避免服务器宕机。正好PHP提供了fputcsv函数可以将数据写入到csv文件中。
这样我们就可以使用PHP对数据进行分页查询,再写入到csv文件中。
$name = iconv("utf-8","gbk",'二级学院列表');;
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=$name.xls");
//第三行的 name.xls这个xls可以自己改,不过大数据的导出建议使用专业的类,如phpexcel.
可以先放把表头信息放到一个集合里,
然后把数据放入一个二维数组或二维的容器里
例如 :
后台
String[] tis = {"7.1","7.2","7.3"};
ListString[] data = new ArrayListString[]();
data.add(new String[]{"1","2","3"});
data.add(new String[]{"4","5","6"});
data.add(new String[]{"7","8","9"});
request.setAttribute("tis", tis);
request.setAttribute("data", tis);
Jsp:
table
!-- 表头 --
tr
c:forEach items="tis" var="ti"
td${ti}/td
/c:forEach
/tr
!-- 数据 --
c:forEach items="data" var="ds"
tr
c:forEach items="ds" var="d"
td${d}/td
/c:forEach
/tr
/c:forEach
/table
方法一:
?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.下载类库,里边有例子