PHP7中文手册2018 带注释 最新chm版
<?php
// +----------------------------------------------------------------------
// | Excel 导入导出
// +----------------------------------------------------------------------
// | Author: 胡力 <719907411@qq.com>
// +----------------------------------------------------------------------
class ExcelAction extends Action {
/**
* 导出数据为excel表格
*@param $data 一个二维数组,结构如同从数据库查出来的数组
*@param $excelFileName excel文件名
*@param $sheetTitle 表名
*@examlpe 使用方法
$stu = M ('User');
$arr = $stu -> select();//获取数组
//浏览器下载
R("Excel/excel_export",
array(
$arr, //数组
'快递单', //下载的名称
'快递发送记录!' //Excel工作表名
)
);
//保存到本地
R("Excel/excel_export",
array(
$arr, //数组
'快递单', //保存的名称
'快递发送记录!', //Excel工作表名
'/EXCEL/' //保存的路径 (不包括该文件)
)
);
*/
function excel_export($data,$excelFileName,$sheetTitle,$savepath='')
{
/*
* excel导出函数
* $data为从数据库中获取到的数据
* $excelFileName下载的excel的文件名称
* $sheetTitle第一个工作区的名称
*
*/
/* 包含进phpexcel文件 */
Vendor('Excel.Classes.PHPExcel');
Vendor('Excel.Classes.PHPExcel.Writer.Excel2007');
/* 实例化类 */
$objPHPExcel = new PHPExcel();
/* 设置输出的excel文件为2007兼容格式 */
//$objWriter=new PHPExcel_Writer_Excel5($objPHPExcel);//非2007格式
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
/* 设置当前的sheet */
$objPHPExcel->setActiveSheetIndex(0);
$objActSheet = $objPHPExcel->getActiveSheet();
/* sheet标题 */
$objActSheet->setTitle($sheetTitle);
$i = 1;
foreach($data as $value)
{
/* excel文件内容 */
$j = 'A';
foreach($value as $value2)
{
// $value2=iconv("gbk","utf-8",$value2);
$objActSheet->setCellValue($j.$i,$value2);
$j++;
}
$i++;
}
if($savepath=="")//判断类型 ( 一种是保存在本地,一种是浏览器下载,默认是浏览器下载)
{
/* 生成到浏览器,提供下载 */
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:attachment;filename="'.$excelFileName.'.xlsx"');
header("Content-Transfer-Encoding:binary");
$objWriter->save('');
}
else
{
$objWriter->save(trim($savepath.$excelFileName.'.xlsx'));
return TRUE;
}
}
/**
* 读excel表格
*@param $path excel文件的路径
*@return array 返回数组
*@examlpe 用法: R("Excel/toarray",array("/快递单.xlsx"));
*/
public function toarray($path='')
{
Vendor('Excel.Classes.PHPExcel');
$objPHPExcel = PHPExcel_IOFactory::load($path);
$arrExcel = $objPHPExcel->getSheet(0)->toArray();
return $arrExcel;
}
}
?>
//在需要导出数据的地方直接调用该方法,由于是跨模块的调用,所以使用了Thinkphp框架中的R方法
<?php
R("Excel/excel_export",
array
(
$list,//数组
'快递单4',//保存的名称
'快递发送记录4!',//Excel工作表名
'./test/'//保存的路径 (不包括该文件)
)
?>
转载请注明:谷谷点程序 » thinkphp运用phpexcel导入导出数据