扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
用PHP EXCEL插件吧。
创新互联建站为您提适合企业的网站设计 让您的网站在搜索引擎具有高度排名,让您的网站具备超强的网络竞争力!结合企业自身,进行网站设计及把握,最后结合企业文化和具体宗旨等,才能创作出一份性化解决方案。从网站策划到成都网站设计、做网站, 我们的网页设计师为您提供的解决方案。
class ExcelToArrary extends Service{
public function __construct() {
/*导入phpExcel核心类 注意 :你的路径跟我不一样就不能直接复制*/
include_once('./Excel/PHPExcel.php');
}
/* 导出excel函数*/
public function push($data,$name='Excel'){
error_reporting(E_ALL);
date_default_timezone_set('Europe/London');
$objPHPExcel = new PHPExcel();
/*以下是一些设置 ,什么作者 标题啊之类的*/
$objPHPExcel-getProperties()-setCreator("转弯的阳光")
-setLastModifiedBy("转弯的阳光")
-setTitle("数据EXCEL导出")
-setSubject("数据EXCEL导出")
-setDescription("备份数据")
-setKeywords("excel")
-setCategory("result file");
/*以下就是对处理Excel里的数据, 横着取数据,主要是这一步,其他基本都不要改*/
foreach($data as $k = $v){
$num=$k+1;
$objPHPExcel-setActiveSheetIndex(0)
//Excel的第A列,uid是你查出数组的键值,下面以此类推
-setCellValue('A'.$num, $v['uid'])
-setCellValue('B'.$num, $v['email'])
-setCellValue('C'.$num, $v['password'])
}
$objPHPExcel-getActiveSheet()-setTitle('User');
$objPHPExcel-setActiveSheetIndex(0);
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.$name.'.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter-save('php://output');
exit;
}
讲的复杂了啊!\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 ($numrows0)\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开发过程中,对于大量的数据考虑用表格输出的时候可以用得到,代码如下:
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
可以先放把表头信息放到一个集合里,
然后把数据放入一个二维数组或二维的容器里
例如 :
后台
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
1、建立一个数组,取名为$ShuZu,举例数组的内容是学生的信息,包括姓名、性别和年龄。
$ShuZu = array
(
array("姓名","性别","年龄"),
array("张三","男",13),
array("里斯","女",12),
array("王五","男",15)
);
2、建立一个变量,用来存储需要显示的表格。
$BiaoGe = "";
给¥BiaoGe赋初始值,
$BiaoGe = $BiaoGe."table ";
3、构建外循环,取出数组$ShuZu中的行数。
for ($i=0; $icount($ShuZu); $i++)
{
$BiaoGe = $BiaoGe. "tr";
$BiaoGe = $BiaoGe. "/tr";
}
4、构建内循环,取出每行中的每一个列。
for ($i=0; $icount($ShuZu); $i++)
{
$BiaoGe = $BiaoGe. "tr";
for ($j=0;$jcount($ShuZu[$i]);$j++)
{
$BiaoGe = $BiaoGe. "td".$ShuZu[$i][$j]."/td";
}
$BiaoGe = $BiaoGe. "/tr";
}
5、加入表示表格结尾的html标记。
$BiaoGe = $BiaoGe. "/table";
6、使用echo 方法显示表格。
echo $BiaoGe;
7、查看运行结果,这样,表格就制作完成了。
php 把数据导出到excel表格有多种方法,比如使用 phpExcel 等,以下代码是直接通过 header 生成 excel 文件的代码示例:
?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";
?
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流