
1.百度:phpexcel,结果如图所示,点击第一个结果;
PHP导出Excel,PHP输入Excel
2.进入官网后,找到右边的download按钮,下载,下载完成的是一个压缩文件,解压放到你的项目目录里,根据个人情况而定;
PHP导出Excel,PHP输入Excel
PHP导出Excel,PHP输入Excel
3.因为这里给大家做演示,所以建了一个测试文件,有点基础的都能明白是怎么回事,下面进入代码;
PHP导出Excel,PHP输入Excel
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]")
}
PHP导出Excel,PHP输入Excel
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++
}
}
PHP导出Excel,PHP输入Excel
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:attachmentfilename="testdata.xls"')
header("Content-Transfer-Encoding:binary")
$write->save('php://output')
PHP导出Excel,PHP输入Excel
7.打开页面,刷新的时候会d出对话框,让你选择文件保存路径和文件名称,我直接放在了桌面上,如图所示;
PHP导出Excel,PHP输入Excel
PHP导出Excel,PHP输入Excel
8.打开表格后,数据和格式跟代码中的一致,说明PHP导出的Excel是正确的。如果出现错误,检查一下你的表格数组和数据数组吧。
PHP导出Excel,PHP输入Excel
讲的复杂了啊!\x0d\x0a你先在一个完整版的PHPExcel之后解压,在“Examples”目录下会找到一大堆例子,根据你的要求这个“01simple-download-xlsx.php”文件就可以了!\x0d\x0a注:你先保持“01simple-download-xlsx.php”文件所在的目录位置不要变,测试好了,再改变名,移到别的地方,地方变了的话,文件里的 “require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'”的所在位置也要变!\x0d\x0a我们要改动代码很少,如下:\x0d\x0a// Add some data\x0d\x0a$objPHPExcel->setActiveSheetIndex(0)\x0d\x0a->setCellValue('A1', 'Hello')\x0d\x0a->setCellValue('B2', 'world!')\x0d\x0a->setCellValue('C1', 'Hello')\x0d\x0a->setCellValue('D2', 'world!')\x0d\x0a\x0d\x0a// Miscellaneous glyphs, UTF-8\x0d\x0a$objPHPExcel->setActiveSheetIndex(0)\x0d\x0a->setCellValue('A4', 'Miscellaneous glyphs')\x0d\x0a->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç')\x0d\x0a、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、\x0d\x0a直接用的我的替换\x0d\x0a$objPHPExcel->setActiveSheetIndex(0)//这个就是现实导出的表第一行,有几列是根据你的那张表有几列!\x0d\x0a->setCellValue('A1', '单号')\x0d\x0a->setCellValue('B1', '标题')\x0d\x0a->setCellValue('C1', '内容')\x0d\x0a->setCellValue('D1', '序列')\x0d\x0a->setCellValue('E1', '数字')\x0d\x0a//下面实现的就是建立数据库连接,直接到表,你的连接数据库、表、字段应该与我的不一样,你可以参考\x0d\x0a$conn=@mysql_connect("localhost","root","root") or die("数据库服务器连接错误".mysql_error())//连接mysql数据库\x0d\x0amysql_select_db("temp",$conn) or die("数据库访问错误".mysql_error())//数据库\x0d\x0amysql_query("set character set gb2312")\x0d\x0amysql_query("set names gb2312")\x0d\x0a\x0d\x0a$sqlgroups="select * from test "//查询这一张表的条件\x0d\x0a$resultgroups=mysql_query($sqlgroups)\x0d\x0a$numrows=mysql_num_rows($resultgroups)\x0d\x0aif ($numrows>0)\x0d\x0a{\x0d\x0a$count=1\x0d\x0awhile($data=mysql_fetch_array($resultgroups))\x0d\x0a{\x0d\x0a$count+=1\x0d\x0a$l1="A"."$count"\x0d\x0a$l2="B"."$count"\x0d\x0a$l3="C"."$count"\x0d\x0a$l4="D"."$count"\x0d\x0a$l5="E"."$count"\x0d\x0a$objPHPExcel->setActiveSheetIndex(0)\x0d\x0a->setCellValue($l1, $data['id'])//这就是你要导出表的字段、与对应的名称\x0d\x0a->setCellValue($l2, $data['title'])\x0d\x0a->setCellValue($l3, $data['content'])\x0d\x0a->setCellValue($l4, $data['sn'])\x0d\x0a->setCellValue($l5, $data['num'])\x0d\x0a}\x0d\x0a}php导出数据excel有专门的库,当导出少量数据的时候速度很快,但是当数据量大的时候就会存在服务器内存不够之类的。所以在导出大量数据的时候就应该分页查询数据,避免服务器宕机。正好PHP提供了fputcsv函数可以将数据写入到csv文件中。
这样我们就可以使用PHP对数据进行分页查询,再写入到csv文件中。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)