PHP如何导入导出Excel

作者&投稿:矣剂 (若有异议请与网页底部的电邮联系)
如何利用ThinkPHP框架实现Excel数据导入和导出~

首先,将PHPExcel文件放入到vendor目录下面:

备注:ThinkPHP3.1的路径是:./ThinkPHP/Extend/Vendor/;ThinkPHP3.2的路径是:./ThinkPHP/Library/Vendor/;



数据导出功能的实现:


编写导出为Excel的函数exportExcel:

public function exportExcel($expTitle,$expCellName,$expTableData){
$xlsTitle = iconv('utf-8', 'gb2312', $expTitle);//文件名称
$fileName = $_SESSION['account'].date('_YmdHis');//文件输出的文件名
$cellNum = count($expCellName);
$dataNum = count($expTableData);


vendor("PHPExcel.PHPExcel");
$objPHPExcel = new PHPExcel();//ThinkPHP3.1的写法

$objPHPExcel = new \PHPExcel();//ThinkPHP3.2的写法,有命名空间的概念

$cellName =
array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','AA','AB','AC','AD','AE','AF','AG','AH','AI','AJ','AK','AL','AM','AN','AO','AP','AQ','AR','AS','AT','AU','AV','AW','AX','AY','AZ');

$objPHPExcel->getActiveSheet(0)->mergeCells('A1:'.$cellName[$cellNum-1].'1');//合并单元格

//
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1',
$expTitle.' Export time:'.date('Y-m-d H:i:s'));
for($i=0;$i<$cellNum;$i++){
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].'2', $expCellName[$i][1]);
}
// Miscellaneous glyphs, UTF-8
for($i=0;$i<$dataNum;$i++){
for($j=0;$j<$cellNum;$j++){


$objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j].($i+3),
$expTableData[$i][$expCellName[$j][0]]);
}
}



header('pragma:public');
header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$xlsTitle.'.xls"');
header("Content-Disposition:attachment;filename=$fileName.xls");//attachment新窗口打印inline本窗口打印
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');//ThinkPHP3.1的写法

$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');//ThinkPHP3.2的写法,有命名空间的概念
$objWriter->save('php://output');
exit;
}

3.读取数据,调用数据调用数据导出函数exportExcel:

function expUser(){//导出Excel
$xlsName = "User";
$xlsCell = array( //设置字段名和列名的映射
array('id','账号序列'),
array('truename','名字'),
array('sex','性别'),
array('res_id','院系'),
array('sp_id','专业'),
array('class','班级'),
array('year','毕业时间'),
array('city','所在地'),
array('company','单位'),
array('zhicheng','职称'),
array('zhiwu','职务'),
array('jibie','级别'),
array('tel','电话'),
array('qq','qq'),
array('email','邮箱'),
array('honor','荣誉'),
array('remark','备注')
);
$xlsModel = M('Member');

$xlsData =
$xlsModel->Field('id,truename,sex,res_id,sp_id,class,year,city,company,zhicheng,zhiwu,jibie,tel,qq,email,honor,remark')->select();

//将sex字段中1和0分贝装换为“男”和“女”

foreach ($xlsData as $k => $v)
{
$xlsData[$k]['sex']=$v['sex']==1?'男':'女';
}
$this->exportExcel($xlsName,$xlsCell,$xlsData);

}

你好 满意请采纳 谢谢你的支持

高版本的先在将EXCEL文件执行保存,在CorelDRAW中点右键,选择“插入对象”,点“由文件创建”,选择Excel文件,确定即可。或者用复制的办法也可以‘
要是不行的话下面这个网址有详细的步骤说明:

导入导出都成,可以导出office2007格式,同时兼容2003。
下载下来的包中有文档和例子,大家可以自行研究。
抄段例子出来:

PHP代码
<?php
/**
* PHPExcel
*
* Copyright (C) 2006 - 2007 PHPExcel
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
* @category PHPExcel
* @package PHPExcel
* @copyright Copyright (c) 2006 - 2007 PHPExcel
* @license
* @version 1.5.0, 2007-10-23
*/

/** Error reporting */
error_reporting(E_ALL);

/** Include path **/
set_include_path(get_include_path() . PATH_SEPARATOR . ‘../Classes/’);

/** PHPExcel */
include ‘PHPExcel.php’;

/** PHPExcel_Writer_Excel2007 */
include ‘PHPExcel/Writer/Excel2007.php’;

// Create new PHPExcel object
echo date(’H:i:s’) . ” Create new PHPExcel object\n”;
$objPHPExcel = new PHPExcel();

// Set properties
echo date(’H:i:s’) . ” Set properties\n”;
$objPHPExcel->getProperties()->setCreator(”Maarten Balliauw”);
$objPHPExcel->getProperties()->setLastModifiedBy(”Maarten Balliauw”);
$objPHPExcel->getProperties()->setTitle(”Office 2007 XLSX Test Document”);
$objPHPExcel->getProperties()->setSubject(”Office 2007 XLSX Test Document”);
$objPHPExcel->getProperties()->setDescrīption(”Test document for Office 2007 XLSX, generated using PHP classes.”);
$objPHPExcel->getProperties()->setKeywords(”office 2007 openxml php”);
$objPHPExcel->getProperties()->setCategory(”Test result file”);

// Add some data
echo date(’H:i:s’) . ” Add some data\n”;
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setCellValue(’A1′, ‘Hello’);
$objPHPExcel->getActiveSheet()->setCellValue(’B2′, ‘world!’);
$objPHPExcel->getActiveSheet()->setCellValue(’C1′, ‘Hello’);
$objPHPExcel->getActiveSheet()->setCellValue(’D2′, ‘world!’);

// Rename sheet
echo date(’H:i:s’) . ” Rename sheet\n”;
$objPHPExcel->getActiveSheet()->setTitle(’Simple’);

// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);

// Save Excel 2007 file
echo date(’H:i:s’) . ” Write to Excel2007 format\n”;
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
$objWriter->save(str_replace(’.php’, ‘.xlsx’, __FILE__));

// Echo done
echo date(’H:i:s’) . ” Done writing file.\r\n”;

加If-Modified-Since头
xmlhttp多次调用时它却总是显示缓存页面, 尝试在 php 或 asp 中加入相应的http头明确不要缓存, 也没什么效果!!
现在终于找到一个办法啦,就是在 xmlhttp.open 之后发送一个If-Modified-Since头即可, 代码如下
​xmlhttp.setRequestHeader('If-Modified-Since', '0');


hpm42525dn错误#a1-5513
出现这一错误代码的故障原因:成像鼓封口漏取,导致粉盒中的粉,无法被马达导入;粉盒封签漏取或封签取的不完整,导致粉盒中的粉,无法被马达导出;非原装粉盒,和机器的匹配度不佳,马达带不动粉盒;粉盒异常,导粉马达带不动粉盒。

求解HP541系统重装
惠普笔记本HP541重装系统驱动备份 实验材料:1.雨林木风 Ghost windows XP SP3 装机版 YN9.8 (一无所知,后才知3元就能买到,最新的是YN9.9,而我是10元买的)2.HP541 重装系统前备份 把IE的收藏夹cookie源备份,通过文件菜单的导出。本来导出了QQ聊天记录,可后来无法导入。--- 重装系统 先插入...

高端商务本力作 商务办公进阶之选 惠普战X锐龙版2023款评测
下面我们继续加码,验证内存性能,后续我们同时打开PR软件导入一个15.6GB的4K测试电影片段开启实时预览播放,以及Chrome浏览器(关闭节省内存模式)打开微博和IT168官网共计100个网页,此时系统的内存来到了27.7GB,剩余3.5GB,整机依然能够稳定流畅运行。 不得不说,惠普战X的32GB超大DDR5 5600MHz的内存性能真的非常给力,普通用户...

如何将文章后面的参考文献导入endnote的library中?
不能直接导入,但是可以用“google学术搜索”搜索相应的文献再导入。1)网址:“http:\/\/scholar.google.com\/schhp?hl=zh-CN&newwindow=1”2)网页设置:点击“学术搜索设置”->文献管理软件 -> 显示导入EndNote的链接->保存设置 3)搜索相应的文献 4)下载文献信息。在搜索结果中有对应的“导入...

.hpdex文件怎么打开
首先需要知道这个文件是什么软件创建的,一般用创建这个文件的软件才能打开。由于这个文件后缀并不是常见的文件格式,并无法判断是什么软件创建的,需要自己查看是什么软件创建的。

怎么样能是模拟人生在电脑重装后还能玩?
错 那样也不能玩 主要是楼主 重装后 原来的注册表 没了 建议可以玩时 保存边注册表 等重装后还原注册表 即可 超级兔子有 这个功能 希望对你有帮助。。。

如何使用freemind制作思维导图模板文件?
《FreeMind v1.1.0思维导图》百度网盘资源免费下载:链接: https:\/\/pan.baidu.com\/s\/1lwfLT1He1yNHpSwPzX08UQ ?pwd=jqr3 提取码: jqr3 FreeMind v1.1.0最新版是一套由Java撰写而成的实用的开源思维导图软件,可用来帮助你整理思绪的工具软体,可将每一个环节用图形表示,透过将思路图形化、...

无法加载 hppatusg01.dll,找不到指定模块 怎么回事
1,开始-运行-输入:regedit,然后回车 2,选择“我的电脑”,然后点击“文件”-“导出”-随便起个名字点“保存”。这样做的目的是备份一下注册表,以免误操作后及时恢复。恢复的方法是,找到你刚才保存的文件,双击它,然后选择“允许导入”即可。3,选择“我的电脑”,按F3键,然后输入“hppat...

如何用手机扫描仪连接电脑
2.导出的时候看到“导出成功!PDF将同步上传至文档加工\/”中就可以了,不要重复操作,否则会重复上传相同文档;问题一:智能手机里的扫描仪扫描的文件怎么传到电脑里1、用数据线,2用360手机助手,3、用QQ传输,4、通过WIFI传、5、发邮箱。6、用读卡器。问题二:手机扫描文件到电脑是用什么软件,谁知道是什么软件您描述...

优雅HP 540 D7 忘了开机密码怎么办
出几块钱去耗材店买个GHOST的光盘,最好询问老板是集成了WINDOWS开机密码破解的,然后在BIOS里面设置为CDROM开机启动,接着重启就会进入光盘,然后是中文界面,对照着一步步选择就可以了,自动破解的。

魏都区15011702890: php 怎么把数据导出到excel表格 -
幸奔立健: 昨天项目里有个新需求,客户希望把一些数据能导出成为Excel表格,刚开始用PHP原生输入Excel表格,发现效果不是很理想,于是找到一个比较著名的库:PHPExcel.下面是一个简单的demo,分享给大家,希望可以帮到有同样需求的朋友.网页链接

魏都区15011702890: 用php怎么从数据里调取数据,导出形式是excel -
幸奔立健: 空格分隔用\ 声明生成excel的然后找文件下载实例代码;);x-msexcel'Content-type: application/就是文件下载然后把头部声明改变下 header ('

魏都区15011702890: php 怎么导出excel文件 -
幸奔立健: 建议你可以使用php里面的csv函数,直接导出为csv格式的文件,这样导出是可以即时导出的,不需考虑溢出问题.如果必须为excel,可以使用phpexcel插件使用,网上有很多说明.function excelexport(){ $where = 查询条件; set_time_limit(0); ...

魏都区15011702890: php怎么把数据表中的数据导出到excel表中 -
幸奔立健: php 把数据导出到excel表格有多种方法,比如使用 phpExcel 等,以下代码是直接通过 header 生成 excel 文件的代码示例:

魏都区15011702890: php导出生成excel表格几种方法介绍 -
幸奔立健: php header("Content-type:application/vnd.ms-excel"); header("Content-Disposition:attachment;filename=test_data.xls");$tx='表头'; echo $tx."nn";//输出内容如下:echo "姓名"."t"; echo "年龄"."t"; echo "学历"."t";echo "n";echo "张三"."t"; echo "25"."t"; echo "本科"."t";>如果你一定要输入xls标准的excel文件可参考下面方法/*** 输出XLS的头信息* 注:使用此函数前后都不应有任何数据输出

魏都区15011702890: PHP中怎么把数据库中的内容导入Excel文件 -
幸奔立健: #导出csv header("Content-type: text/html;charset=utf-8");$filename="测试"; header("Content-Type: text/csv");header("Content-Disposition: attachment; filename=".iconv("utf-8","gb2312",$filename).".csv");header('Cache-...

魏都区15011702890: phpexcel导入导出excel -
幸奔立健: 下载phpexcelrequire '/api/PHPExcel.php';//加载phpexcel $objPHPExcel = new PHPExcel(); $objPHPExcel->getProperties()->setCreator("Maarten Balli...

魏都区15011702890: PHP如何导出当前页面中的表格至Excel -
幸奔立健: 1. 这属于php的技术;2. php可以用PHPExcel直接导出成excel文件;代码如下:require_once("../lib/excelcreator.class.php"); $myxls = new ExcelCreator ("中文Excel");$aTableHead = ' <Row ss:AutoFitHeight="0"> <Cell><Data ss:Type...

魏都区15011702890: 如何用php实现上传excel -
幸奔立健: 第一,在前台html页面进行上传文件:如: 复制代码代码如下: <form method="post" action="php文件"enctype="multipart/form-data"> <h3>导入Excel表:</h3><input type="file" name="file_stu" /> <input type="submit" value="...

魏都区15011702890: php导入excel 怎么获取excel表格数据 -
幸奔立健: 常用的用PHP读取EXCEL的方法有以下三种,各自有各自的优缺点.个人推荐用第三种方法,因为它可以跨平台使用. 1. 以.csv格式读取 将.xls转换成.csv的文本格式,然后再用PHP分析这个文件,和PHP分析文本没有什么区别. 优点:跨平台...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网