> 文档中心 > phpexcel导入导出操作总结

phpexcel导入导出操作总结

目录

一、导入操作

1、实例化读取类

2、读取文件

3、获取工作

4、获取总行数

5、获取单元格的值

6、时间格式转换

二、导出操作

1、实例化Excel类

2、设置excel的属性

2、选择工作表

3、单元格操作

4、导出Excel


一、导入操作

1、实例化读取类

//读取文件是xlsx格式
$reader = \PHPExcel_IOFactory::createReader('Excel2007');
//读取文件是xls格式
$reader = \PHPExcel_IOFactory::createReader('Excel5');

2、读取文件

$file = 'excelfile.xlsx';
//获取导入类型,判断使用Excel2007或Excel5
$file_type = \PHPExcel_IOFactory::identify($file);
//读取要导入的文件
$excel = $reader->load($file , $encode = 'utf-8');

3、获取工作表

//获取总工作表数量
$sheetCount = $excel->getSheetCount();
//获取第index个工作表
$sheet = $excel->getSheet(index);

4、获取总行数

$total_rows_num = $sheet->getHighestRow();

5、获取单元格的值

//获取所有内容并转化为数组
$data = $sheet->toArray();
//获取单元格A1的值
$value = $sheet->getCell("A1")->getValue();

6、时间格式转换

//将A2单元格的时间格式转化为 Unix 时间戳
$time = \PHPExcel_Shared_Date::ExcelToPHP($sheet->getCell("A2")->getValue());

二、导出操作

1、实例化Excel类

$objExcel = new \PHPExcel();

2、设置excel的属性

//创建人
$objExcel->getProperties()->setCreator("crater");
//最后修改人
$objExcel->getProperties()->setLastModifiedBy("modify");
//标题
$objExcel->getProperties()->settitle("title");
//题目
$objExcel->getProperties()->setSubject("topic");
//描述
$objExcel->getProperties()->setDescription("describe");
//关键字
$objExcel->getProperties()->setKeywords("keywords");
//种类
$objExcel->getProperties()->setCategory("type");

2、选择工作表

//选择当前工作表
$objActSheet = $objExcel->getActiveSheet(); 
//设置第index个工作表
$objActSheet = $objExcel->setActiveSheetIndex('index');
//移除第index个工作表
$objExcel->removeSheetByIndex('index');
//设置单元格标题
$objActSheet->setTitle('Sheet Title');

3、单元格操作

//合并单元格,A1到E1
$objActSheet->mergeCells('A1:E1');
//设置第2行的高度为50
$objActSheet->getRowDimension('2')->setRowHeight(50);
//设置第A列的宽度为100
$objActSheet->getColumnDimension('A')->setWidth(100);
//设置单元格A1为纯文本
$objActSheet->getStyle('A1')->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT); //日期参数 FORMAT_DATE_DATETIME 
//设置A1到E1合并后的单元格自动换行
$objActSheet->getStyle('A1:E1')->getAlignment()->setWrapText(true);
//设置单元格A1字体和边框样式
$styleArray = [
    'font' => [
        'color' => array('rgb' => 'FF0000'), //设置字体为红色 加粗 11
        'bold'  => true,
        'size'  => 11,
    ],
    'borders' => [ //设置边框样式
        'top'     => [
            'style' => \PHPExcel_Style_Border::BORDER_THIN,

        ],
        'bottom'     => array(
            'style' => \PHPExcel_Style_Border::BORDER_NONE,
        ),
    ],
];
$objActSheet->getStyle('A1')->applyFromArray($styleArray);
//设置所有单元格默认样式
$objActSheet->getDefaultStyle()->getFont()->setName('微软雅黑'); //字体类型
$objActSheet->getDefaultStyle()->getFont()->setSize(14); //字体大小
$objActSheet->getDefaultStyle()->getFont()->setARGB('FFFF0000'); //字体颜色
$objActSheet->getDefaultStyle()->getFont()->getFont()->setBold(true); //字体加粗
//设置单元格A1填充颜色
$objActSheet->getStyle('A1')->getFill()->getStartColor()->setARGB('FFFF0000'); //填充颜色,红色也可以用 \PHPExcel_Style_Color::COLOR_RED
//设置A1到K1单元格垂直居中
$objActSheet->getStyle('A1:K1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); //参数 VERTICAL_TOP 顶端对齐,以此类推
//设置A1到K1单元格水平居中
$objActSheet->getStyle('A1:K1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);  //参数 HORIZONTAL_LEFT 左对齐,以此类推
//填充内容
$objActSheet->setCellValue('A1', 'content');
//从A列第三行循环填充内容
for($i=0; $i<=100; $i++){
    $i += 3;
    $objActSheet->setCellValue('A'.$i, 'content');
}
//从A列第三行设置单元格限制内容,限制为 类型1和类型2
for($i=3; $i<=10002; $i++){

    $objValidation = $objActSheet->getCell('A'.$i)->getDataValidation();
    $objValidation->setType(\PHPExcel_Cell_DataValidation::TYPE_LIST) //介于数字1到10之间参数用 TYPE_WHOLE,设置为 setFormula1(1)  -  setFormula1(10)
    ->setErrorStyle(\PHPExcel_Cell_DataValidation::STYLE_INFORMATION)
    ->setAllowBlank(false)
    ->setShowInputMessage(true)
    ->setShowErrorMessage(true)
    ->setShowDropDown(true)
    ->setErrorTitle('Input error') //错误标题
    ->setError('Input content is not allowed!') //错误内容
    ->setPromptTitle('Allowed input')  //提示标题
    ->setPrompt('Only "类型1" or "类型2" is allowed.') //提示内容
    ->setFormula1('"类型1,类型2"'); //允许输入内容
}
//复制单元格A3限制内容
$objActSheet->getCell('A3')->setDataValidation($objValidation);

4、导出Excel

ob_end_clean();
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header('Content-Disposition:inline;filename="' . $outfile . '"');
header("Content-Transfer-Encoding: binary");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Pragma: no-cache");
$objWriter = \PHPExcel_IOFactory::createWriter($objExcel, 'Excel2007');
$objWriter->save('php://output');
exit; 

开发者涨薪指南 phpexcel导入导出操作总结 48位大咖的思考法则、工作方式、逻辑体系书本网