Excel导入导出功能我们经常用到,下面记录自己的实现方法。Helper类PHPExcelHelper 可以直接拿过来使用。在控制器中实现数据组装,model中实现数据验证,最后导入或导出。
helper类中导出导入的写法
namespace app\common\helper;
use app\common\constant\SystemConstant;
use PHPExcel;
trait PHPExcelHelper
{
/**
* excel表格导出
* @param string $fileName 文件名称
* @param array $headArr 表头名称
* @param array $data 要导出的数据
* @author static7
*/
private function excelExport($fileName = '', $headArr = [], $data = [])
{
$objPHPExcel = new PHPExcel();
$objPHPExcel->getProperties();
$keyA = ord("A"); // 设置表头
foreach ($headArr as $v) {
$colum = chr($keyA);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', $v);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum . '1', $v);
$keyA += 1;
}
$column = 2;
$objActSheet = $objPHPExcel->getActiveSheet();
foreach ($data as $key => $rows) {
// 行写入
$span = ord("A");
foreach ($rows as $keyName => $value) {
// 列写入
//判断数据是否有数组,如果有数组,转换成字符串
if(is_array($value)){
$value = implode("、", $value);
}
$objActSheet->setCellValue(chr($span) . $column, $value);
$span++;
}
$column++;
}
$fileName .= "_" . date("Y_m_d", time()) . ".xls";
//$fileName .= "_" . date("Y_m_d", Request()->