最简单的php导出excel文件方法
时间:2022-05-08
本文章向大家介绍最简单的php导出excel文件方法,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
网上有很多php操作excel或其他文件的类库,也做的很完善。比如无比风骚的PHPExcel,官方网站:http://www.codeplex.com/PHPExcel ,pear的Spreadsheet_Excel_Writer类等。然而我们只是用到其中一部分功能,这就会让程序显的有些臃肿。在你调用这些类库的时候,不管你是多简单的操作,他都会消耗巨大的内存,这对我们来说是很不可取的。
比如我需要一个做php导出 excel的的程序,只需要把相关的数据导出到excel表就可以了,这么简单的操作就不需要用那些类库什么的了。直接用header的方式就可以了:header("Content-type:application/vnd.ms-excel");
<?php
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=Export_test.xls");
$tab="t"; $br="n";
$head="编号".$tab."备注".$br;
//输出内容如下:
echo $head.$br;
echo "test321318312".$tab;
echo "string1";
echo $br;
echo "330181199006061234".$tab; //直接输出会被Excel识别为数字类型
echo "number";
echo $br;
echo "="330181199006061234"".$tab; //原样输出需要处理
echo "string2";
echo $br;
?>
在导出后会发现一个问题,如果数据是数字会出现一些意想不到的情况。比如,"012345",在excel中会变成"12345";如果输入身份证号码这样的长数字,在excel中会用科学计数法表示出来,并且最后的四位数字会出现偏差,变位0000等情况。这就需要把单元格设置为文本格式,方法是
echo "="330181199006061234""
如果程序是utf-8编码的,还需要用iconv函数去转码,不然是会乱码的,乱码的。
iconv("UTF-8", "GB2312", $yourstr);
如果导出中文时出现乱码,可以尝试将字符串转换成gb2312,例如下面就把$yourStr从utf-8转换成了gb2312:
$yourStr = mb_convert_encoding(”gb2312″, “UTF-8″, $yourStr);
另word格式导入类似,,指定header就可以了:
header("Content-Type: application/msword");
header("Content-Disposition: attachment; filename=doc.doc");
php代码:
<?php
/**
* exportExcel($data,$title,$filename);
* 导出数据为excel表格
*@param $data 一个二维数组,结构如同从数据库查出来的数组
*@param $title excel的第一行标题,一个数组,如果为空则没有标题
*@param $filename 下载的文件名
*@examlpe
exportExcel($arr,array('id','账户','密码','昵称'),'文件名!');
*/
function exportExcel($data=array(),$title=array(),$filename='report')
{
header("Content-type:application/octet-stream");
header("Accept-Ranges:bytes");
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=".$filename.".xls");
header("Pragma: no-cache");
header("Expires: 0");
//导出xls开始
if (!empty($title))
{
foreach ($title as $k => $v)
{
$title[$k]=iconv("UTF-8", "GB2312",$v);
}
$title= implode("t", $title);
echo "$titlen";
}
if (!empty($data))
{
foreach($data as $key=>$val)
{
foreach ($val as $ck => $cv)
{
$data[$key][$ck]=iconv("UTF-8", "GB2312", $cv);
}
$data[$key]=implode("t", $data[$key]);
}
echo implode("n",$data);
}
}
$total = array();
$fp = fopen('card.txt', 'r');
$i = 0;
while ($v = fgets($fp, 100))
{
$arr = explode(",", trim($v));
$total[$i]["cid"] = "="".$arr[0].""";
$total[$i]["code"] = "="".$arr[1].""";
$total[$i]["ctime"] = '2014-09-10 14:06:29';
$total[$i]["expireday"] = '2015-12-31 23:59:59';
$i++;
}
exportExcel($total, array('卡','生成码','开始时间','有效时间'), 'card');
exit;
card.txt文件:
900010061112,22279892213248,2013-06-30
900010061113,52139844827982,2013-06-30
900010061114,67313895480603,2013-06-30
900010061115,66178571957378,2013-06-30
900010061116,78951625651967,2013-06-30
900010061117,73835952566949,2013-06-30
900010061118,74436659365440,2013-06-30
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- Linux 机器 CPU 毛刺问题排查
- phpwind 利用哈希长度扩展攻击进行getshell
- dotnet 构建 SourceRoot items must include at least one top-level item when DeterministicSourcePaths is
- Magicodes.IE 2.4版本发布
- EC2磁盘扩容-DiskPressure
- 谈一谈php://filter的妙用
- 新型php漏洞挖掘之debug导致的安全漏洞(Edusoho)
- CVE-2016-3714 - ImageMagick 命令执行分析
- 知乎某处XSS+刷粉超详细漏洞技术分析
- 【STM32H7】第12章 RL-TCPnet V7.X之TCP客户端
- 【STM32F429】第12章 RL-TCPnet V7.X之TCP客户端
- Django DeleteView without confirmation template, but with CSRF attack
- 小记 TypeScript 中的循环引用问题
- 别只会搜日志了,求你懂点检索原理吧
- 分布式系统中的事务问题