CI框架导出EXCEL文本
1.下载
在网上下载PHPExcel包,解压.
下载地址:http://phpexcel.codeplex.com
2.引入
将安装包解压,把文件目录里的Classes里的PHPExcel文件夹和PHPExcel.php复制到CI的library里.
在构造函数就可以引用了,如下:
public function __construct()
{
parent::__construct();
$this->load->library('PHPExcel');
$this->load->library('PHPExcel.php');
}
3.具体使用
下面展示一个完整实例:
<?php
Class Excel extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->library('PHPExcel');
$this->load->library('PHPExcel.php');
$this->load->model('excel_model');
}
public function user_download()
{
$objPHPExcel = new PHPExcel();
//操作第一个工作表
$objPHPExcel->setActiveSheetIndex(0);
//设置sheet名
$objPHPExcel->getActiveSheet()->setTitle('用户信息表');
//设置默认行高
$objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(25);
//设置表格宽度
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(35);
//列名表头文字加粗
$objPHPExcel->getActiveSheet()->getStyle('A1:D1')->getFont()->setBold(true);
// 列表头文字居中
$objPHPExcel->getActiveSheet()->getStyle('A1:D1')->getAlignment()
->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
//列名赋值
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'id');
$objPHPExcel->getActiveSheet()->setCellValue('B1', '姓名');
$objPHPExcel->getActiveSheet()->setCellValue('C1', '密码');
$objPHPExcel->getActiveSheet()->setCellValue('D1', '住址');
//获取数据
$arr = $this->excel_model->get_users();
//向表中插入数据
$row_num = 2; //从第二排开始插入
foreach ($arr as $v => $k) {
// 设置所有垂直居中
$objPHPExcel->getActiveSheet()->getStyle('A' . $row_num . ':' . 'D' . $row_num)->getAlignment()
->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
// 设置单元格数值
$objPHPExcel->getActiveSheet()->setCellValue('A' . $row_num, $k['id']);
$objPHPExcel->getActiveSheet()->setCellValue('B' . $row_num, $k['username']);
$objPHPExcel->getActiveSheet()->setCellValue('C' . $row_num, $k['password']);
$objPHPExcel->getActiveSheet()->setCellValue('D' . $row_num, $k['address']);
$row_num++;
}
//设置表名(文件名)
$filename = urlencode('信息统计表') . '_' . date('Y-m-dHis');
//生成xls文件
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="' . $filename . '.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
}
}
一个导出Execl文件的php代码就完成啦.效果图如下: