ThinkPHP中用PHPExcel导入导出Excel文件

需要的PHPExcel类可以到网上下载然后引入到ThinkPHP框架中使用即可
本例中PHPExcel文件的路径位于/ThinkPHP/Extend/Vendor/Excel/PHPExcel

具体代码如下:

 代码如下 复制代码

class ExcelAction extends Action {

//导出Excel文件
public function index(){
header("Content-Typ:text/html;charset=utf-8");

vendor('Excel.PHPExcel.Writer.IWriter');
vendor('Excel.PHPExcel.Writer.Excel5');
vendor('Excel.PHPExcel');
vendor('Excel.PHPExcel.IOFactory');

$objPHPExcel = new PHPExcel();

$objPHPExcel->getActiveSheet()->setCellValue('A1', "编号");//设置列的值
$objPHPExcel->getActiveSheet()->setCellValue('B1', "姓名");//设置列的值
$objPHPExcel->getActiveSheet()->setCellValue('C1', "登录时间");//设置列的值

$arr=M('user')->order("id asc")->select();

$count = count($arr); //求出有多少行;
$i=2; //注意这是2;因为第一行我们已经设置了表头信息

for($j=0;$j<$count;$j++)
       {
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A'.$i,$arr[$j]['id'])   //注意这里没有分号结束
->setCellValue('B'.$i,$arr[$j]['username'])
->setCellValue('C'.$i,date('Y-m-d H:i:s',$arr[$j]['logintime']));
$i++;
}

$objPHPExcel->getActiveSheet(0)->setTitle('user');
$objPHPExcel->setActiveSheetIndex(0);
header('Content-Type:application/vnd.ms-excel');
header('Content-Disposition:attachment;filename="user.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');    
}

//导入Excel文件
public function importExcel(){
header("content-type:text/html;charset=utf-8");

vendor('Excel.PHPExcel');
vendor('Excel.PHPExcel.IOFactory');
vendor('Excel.PHPExcel.Reader.Excel5');

$objReader = new PHPExcel_Reader_Excel5;//注意和导出的类不一样哦

$objPHPExcel = $objReader->load('user.xls'); //上传的文件,或者是指定的文件
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow(); //取得总行数
$highestColumn = $sheet->getHighestColumn(); //取得总列数

for($j=2;$j<=$highestrow;$j++)
       {
$name = $objPHPExcel->getActiveSheet()->getCell("B".$j)->getValue();//获取B列的值
$time = strtotime($objPHPExcel->getActiveSheet()->getCell("C".$j)->getValue());//获取C列的值

if(!M('user')->add(array('username'=>$name,'logintime'=>$time))){echo '失败';}

echo '成功';
}

}

?>

数据库数据:

导出为Excel文件结果:

导入后数据库数据:

时间: 2024-09-08 11:26:18

ThinkPHP中用PHPExcel导入导出Excel文件的相关文章

PHP导入导出Excel文件的方法

借助PHP-ExcelReader这个开源类,我们可以轻松地导入Excel文件数据,示例代码如下: PHP-ExcelReader下载地址:http://sourceforge.net/projects/phpexcelreader/ 例.导入Excel文件  代码如下 复制代码 <?php require_once 'Excel/reader.php'; $data = new Spreadsheet_Excel_Reader(); $data->setOutputEncoding('gbk

C#数据导入/导出Excel文件及winForm导出Execl总结_实用技巧

一.asp.net中导出Execl的方法: 在asp.net中导出Execl有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址输出在浏览器上:一种是将文件直接将文件输出流写给浏览器.在Response输出时,\t分隔的数据,导出execl时,等价于分列,\n等价于换行. 1.将整个html全部输出execl 此法将html中所有的内容,如按钮,表格,图片等全部输出到Execl中. 复制代码 代码如下: Response.Clear(); Response.Buffer= t

请教DATASET导出导入XML文件速度快,还是导入导出EXCEL文件效率快?

问题描述 对于一个最多有30万行数据的SQLSERVER表,请问以上哪种方式效率高? 解决方案 解决方案二:应该是直接从dataset保存为xml快解决方案三:导出的话.xml比较快吧.导入的话,30万条我想都会死的!如果是导入很大数据量的话,可以用bcp命令导入,可以参考我的blog,BCP导入大量数据http://www.cnblogs.com/mqcan/archive/2008/03/07/1095361.html解决方案四:30万条?估计EXCEL就要跑死了-呵呵--解决方案五:liu

PHP导入导出Excel代码_php技巧

一.导入 导入需要使用能读取Excel的组件,网上也有比较好的组件,这里分享我使用的:下载  提取码:vxyn.(注意两个文件有引用关系) <?php //传入要导入的Excel的文件名 function import_to_DB($filename) { require_once'reader.php'; $data = new Spreadsheet_Excel_Reader(); //创建读取Excel的对象 $data->setOutputEncoding('utf-8'); //设置

Java数据导出功能之导出Excel文件实例_java

在编程中经常需要使用到表格(报表)的处理主要以Excel表格为主.下面给出用java写入数据到excel表格方法: 1.添加jar文件 java导入导出Excel文件要引入jxl.jar包,最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件.下载地址:http://www.andykhan.com/jexcelapi/ 2.jxl对Excel表格的认识 可以参见:http://www.jb51.net/article/686

ThinkPHP中用PHPExcel导出excel文件数据例子

下面给出步骤: 1.准备:自己制作一个生成的excel参考的模板文件,template.xls,我的模板为 在这个模板里面,你想在哪个位置显示什么样式就设置什么样式,到时候相对应位置 查出来的数据就会自动套用样式,比如说标题大小,背景颜色,用函数等,都会自动套用,就不用在后台代码控制那么麻烦了,这个也是选择用模板生成excel原因. 附: 1.某列用条件格式等高级一点的操作应该也是可以的,没有试. 2.大家要注意一点,我要输出的数据是从第4行开始填充的,但是最好留出一行空的,比如说第5行,并不仅

ThinkPHP基于PHPExcel导入Excel文件的方法_php实例

本文实例讲述了ThinkPHP基于PHPExcel导入Excel文件的方法.分享给大家供大家参考.具体方法如下: 主要知识点,用PHPExcel导入Excel数据经过这几天测试还是可以,xls,xlsx都可以获取Excel的数据. 下载地址:http://phpexcel.codeplex.com/ 开发思路: 1.先把Excel文件上传到服务器 2.获取服务器Excel文件内容 3.写入数据库 一.上传Excel文件,使用PHP里自带的上传方法 "\Think\Upload();",

PHP导入和导出Excel文件

一.PHP导出Excel文件 1:第一推荐无比风骚的PHPExcel,官方网站: http://www.codeplex.com/PHPExcel导入导出都成,可以导出office2007格式,同时兼容2003 2.使用pear的Spreadsheet_Excel_Writer类下载地址: http://pear.php.net/package/Spreadsheet_Excel_Writer此类依赖于OLE,下载地址:http://pear.php.net/package/OLE需要注意的是导

Laravel Excel导入导出Excel/CSV 文件例子

1.简介 Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel,从而方便我们以优雅的.富有表现力的代码实现Excel/CSV文件的导入和导出. 该项目的GitHub地址是:https://github.com/Maatwebsite/Laravel-Excel. 本文我们将在Laravel中使用Laravel Excel简单实现Excel文件的导入和导出. 2.安装&配置 使用Composer安装依赖 首先在Laravel项目根目录下使用Co