phpspreadsheet 批量导出与批量导入

本文介绍了如何使用PHPSpreadsheet组件进行数据的批量导出和导入。首先,通过composer.json添加组件并执行更新命令。接着,详细阐述了如何导出列表数据、创建导出模板,以及如何实现数据的批量导入功能。
摘要由CSDN通过智能技术生成

使用组件

composer.json中添加该组件,执行composer update命令

 "require": {
        "phpoffice/phpspreadsheet": "^1.9"
    },

1、导出列表数据

use PhpOffice\PhpSpreadsheet\Cell\DataValidation;
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Shared\Date;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
 
public function export($list){
	   $title = '职位招聘信息列表';
       $title_arr = ['职位类别','职位名称','城市','部门','类型','性质','薪资','人数','投递邮箱','截止时间', '岗位职责','任职资格','发布状态'];
       $cell_arr = range('A','Z');
       $spreadsheet = new Spreadsheet();
       $spreadsheet->getActiveSheet()->setTitle($title);
       foreach ($title_arr as $k => $v) {
           $spreadsheet->getActiveSheet()->getStyle($cell_arr[$k] . 1)->getFont()->setBold(true);//标题字段加黑加粗
           $spreadsheet->getActiveSheet()->getColumnDimension($cell_arr[$k])->setWidth($cell_arr[$k]  > 'H' ? 25 : 15);//设置宽度
           $spreadsheet->getActiveSheet()->setCellValue($cell_arr[$k] . 1, $v);//设置标题
       }

       $spreadsheet->setActiveSheetIndex(0);
//超过8位数的纯数字字符串,导出表格会默认为科学计数法。解决办法是在字段末尾拼接一个" ",空格字符串即可。
       foreach ($list as $key => $val) {
           $tmp = $key + 2;
           $spreadsheet->getActiveSheet()->setCellValue('A' . $tmp, $val['category']);
           $spreadsheet->getActiveSheet()->setCellValue('B' . $tmp, $val['position']);
           $spreadsheet->getActiveSheet()->setCellValue('C' . $tmp, $val['city']);
           $spreadsheet->getActiveSheet()->setCellValue('D' . $tmp, $val['department']);
           $spreadsheet->getActiveSheet()->setCellValue('E' . $tmp, $val['type']);
           $spreadsheet->getActiveSheet()->setCellValue('F' . $tmp, $val['nature']);
           $spreadsheet->getActiveSheet()->setCellValue('G' . $tmp, $val['salary']);
           $spreadsheet->getActiveSheet()->setCellValue('H' . $tmp, $val['num']);
           $spreadsheet->getActiveSheet()->setCellValue('I' . $tmp, $val['email']);
           $spreadsheet->getActiveSheet()->setCellValue('J' . $tmp, $val['end_date']);
           $spreadsheet->getActiveSheet()->getColumnDimension('K&#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值