最近在项目中用到了php导入导出表格文件,废话不多说 上代码。
环境 tp6.1+PhpSpreadsheet+Filesystem
导入
public function land_import(Request $request)
{
$token = $request->get('token') ?: null;
if (empty($token)) {
return $this->failed($token, '密钥丢失');
}
$result = checkToken($token);
if (!isset($result['data'])) {
return $this->failed($token, '密钥失效');
};
$uid = $result['data']['uid'];
$files = request()->file('file');
if (!$files) {
return $this->failed([], '无上传文件');
}
$date = date('Ymd');
$size = 1024 * 1024 * 5;
$fileExt = ['Xlsx', 'xlsx'];
$getExt = $files->getOriginalExtension();
$name = $files->getOriginalName();
if ($size < $files->getSize()) {
return $this->failed([], '上传文件大于5M');
}
if (!in_array($getExt, $fileExt)) {
return $this->failed([], '不是标准上传格式,请下载标准格式使用');
}
$name = date('YmdHis') . '.Xlsx';
$savename = \think\facade\Filesystem::disk('public')->putFileAs($date, $files, $name);
if (!$savename) {
return $this->failed([], '不是标准上传格式,请下载标准格式使用');
}
$file = $_SERVER['DOCUMENT_ROOT'] . '/storage/' . $date . '/' . $name;
$file_type = \PhpOffice\PhpSpreadsheet\IOFactory::identify($file);
if ($file_type == 'Xlsx') {
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Xlsx');
} else {
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Xls');
}
$spreadsheet = $reader->load($file);
$sheet = $spreadsheet->getActiveSheet();
$data = $sheet->toArray();
$time = time();
$i = 0;
$p = 0;
$cont = '重复合同号:';
foreach ($data as $key => $vul) {
if ($key > 0) {
$LandTransfer_mi['admin_id'] = $uid;
$LandTransfer_mi['contract_code'] = $vul[0];
$LandTransfer_mi['assigneer'] = $vul[1];
$LandTransfer_mi['use'] = $vul[2];
$LandTransfer_mi['area'] = $vul[3];
$LandTransfer_mi['cy_total_amount'] = $vul[4];
$LandTransfer_mi['cy_payable_amount'] = $vul[5];
$LandTransfer_mi['cy_payable_time'] = $vul[6] ? strtotime($vul[6]) : 0;
$LandTransfer_mi['cy_actual_amount'] = $vul[7];
$LandTransfer_mi['cy_actual_time'] = $vul[8] ? strtotime($vul[8]) : 0;
$LandTransfer_mi['signing_time'] = $vul[9] ? strtotime($vul[9]) : 0;
$LandTransfer_mi['delivery_time'] = $vul[10] ? strtotime($vul[10]) : 0;
$LandTransfer_mi['period'] = $vul[11];
$LandTransfer_mi['sort'] = 1;
$LandTransfer_mi['remarks'] = $vul[12];
$LandTransfer_mi['status'] = 2;
$LandTransfer_mi['number'] = 1;
$LandTransfer_mi['create_time'] = $time;
$LandTransfer_mi['update_time'] = $time;
$check_code = LandTransfer::where(['contract_code' => $LandTransfer_mi['contract_code']])->field('*')->find();
if (!empty($check_code)) {
$i += 1;
$cont .= $LandTransfer_mi['contract_code'] . ',';
} else {
$LandTransfer = LandTransfer::create($LandTransfer_mi);
$LandRefund_mi['transfer_id'] = $LandTransfer['id'];
$LandRefund_mi['bzj_payable_amount'] = $vul[13];
$LandRefund_mi['bzj_payable_time'] = $vul[14] ? strtotime($vul[14]) : 0;
$LandRefund_mi['bzj_actual_amount'] = $vul[15];
$LandRefund_mi['bzj_actual_time'] = $vul[16] ? strtotime($vul[16]) : 0;
$LandRefund_mi['kg_refund_payable_amount'] = $vul[17];
$LandRefund_mi['kg_refund_payable_time'] = $vul[18] ? strtotime($vul[18]) : 0;
$LandRefund_mi['kg_refund_actual_amount'] = $vul[19];
$LandRefund_mi['kg_refund_actual_time'] = $vul[20] ? strtotime($vul[20]) : 0;
$LandRefund_mi['kg_breach'] = $vul[21];
$LandRefund_mi['jg_refund_payable_amount'] = $vul[22];
$LandRefund_mi['jg_refund_payable_time'] = $vul[23] ? strtotime($vul[23]) : 0;
$LandRefund_mi['jg_refund_actual_amount'] = $vul[24];
$LandRefund_mi['jg_refund_actual_time'] = $vul[25] ? strtotime($vul[25]) : 0;
$LandRefund_mi['jg_breach'] = $vul[26];
$LandRefund_mi['dc_refund_payable_amount'] = $vul[27];
$LandRefund_mi['dc_refund_payable_time'] = $vul[28] ? strtotime($vul[28]) : 0;
$LandRefund_mi['dc_refund_actual_amount'] = $vul[29];
$LandRefund_mi['dc_refund_actual_time'] = $vul[30] ? strtotime($vul[30]) : 0;
$LandRefund_mi['dc_breach'] = $vul[31];
$LandRefund_mi['sort'] = 1;
$LandRefund_mi['status'] = 2;
$LandRefund_mi['create_time'] = $time;
$LandRefund_mi['update_time'] = $time;
if (
!empty($LandRefund_mi['bzj_payable_amount']) ||
!empty($LandRefund_mi['kg_refund_payable_amount']) ||
!empty($LandRefund_mi['jg_refund_payable_amount']) ||
!empty($LandRefund_mi['dc_refund_payable_amount'])
) {
LandRefund::create($LandRefund_mi);
}
$p += 1;
}
}
}
return $this->success($data, '有' . $i . '条重复,剩余' . $p . '条正在执行自动导入(' . $cont . ')');
}
导出
protected function exportData($title, $list)
{
$CellNameList = ["序号", "合同编号", "合同签订时间", "受让人", "用途", "面积(㎡)", "出让总金额(元)", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""];
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$titCol = 'A';
foreach ($CellNameList as $key => $value) {
$sheet->setCellValue($titCol . '3', $value);
$sheet->getColumnDimension($titCol)->setWidth(20);
$sheet->getStyle($titCol . '3')->getAlignment()
->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER)
->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER)
->setWrapText(true);
$styleArray1 = [
'borders' => [
'allBorders' => [
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN
]
]
];
$sheet->getStyle($titCol . '1')->applyFromArray($styleArray1);
$sheet->getStyle($titCol . '2')->applyFromArray($styleArray1);
$sheet->getStyle($titCol . '3')->applyFromArray($styleArray1);
$sheet->getStyle($titCol . '4')->applyFromArray($styleArray1);
$sheet->getStyle($titCol . '5')->applyFromArray($styleArray1);
$sheet->getStyle($titCol . '6')->applyFromArray($styleArray1);
$titCol++;
}
$sheet->mergeCells('A1:Z1');
$sheet->setCellValue('A1', '退费台账');
$sheet->getStyle('A1')->getAlignment()->setWrapText(true);
$sheet->getStyle('A1')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('A1')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->mergeCells('H3:K4');
$sheet->setCellValue('H3', '保证金收缴情况');
$sheet->getStyle('H3')->getAlignment()->setWrapText(true);
$sheet->getStyle('H3')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('H3')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->mergeCells('H5:I5');
$sheet->setCellValue('H5', '应交款');
$sheet->getStyle('H5')->getAlignment()->setWrapText(true);
$sheet->getStyle('H5')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('H5')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->mergeCells('J5:K5');
$sheet->setCellValue('J5', '实交款');
$sheet->getStyle('J5')->getAlignment()->setWrapText(true);
$sheet->getStyle('J5')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('J5')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->setCellValue('H6', '金额(元)');
$sheet->getStyle('H6')->getAlignment()->setWrapText(true);
$sheet->getStyle('H6')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('H6')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->setCellValue('I6', '时间');
$sheet->getStyle('I6')->getAlignment()->setWrapText(true);
$sheet->getStyle('I6')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('I6')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->setCellValue('J6', '金额(元)');
$sheet->getStyle('J6')->getAlignment()->setWrapText(true);
$sheet->getStyle('J6')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('J6')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->setCellValue('K6', '时间');
$sheet->getStyle('K6')->getAlignment()->setWrapText(true);
$sheet->getStyle('K6')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('K6')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->mergeCells('L3:Z3');
$sheet->setCellValue('L3', '保证金退费情况');
$sheet->getStyle('L3')->getAlignment()->setWrapText(true);
$sheet->getStyle('L3')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('L3')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->mergeCells('L4:P4');
$sheet->setCellValue('L4', '开工部分');
$sheet->getStyle('L4')->getAlignment()->setWrapText(true);
$sheet->getStyle('L4')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('L4')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->mergeCells('L5:M5');
$sheet->setCellValue('L5', '应退款');
$sheet->getStyle('L5')->getAlignment()->setWrapText(true);
$sheet->getStyle('L5')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('L5')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->mergeCells('N5:O5');
$sheet->setCellValue('N5', '实退款');
$sheet->getStyle('N5')->getAlignment()->setWrapText(true);
$sheet->getStyle('N5')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('N5')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->setCellValue('L6', '金额(元)');
$sheet->getStyle('L6')->getAlignment()->setWrapText(true);
$sheet->getStyle('L6')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('L6')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->setCellValue('M6', '时间');
$sheet->getStyle('M6')->getAlignment()->setWrapText(true);
$sheet->getStyle('M6')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('M6')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->setCellValue('N6', '金额(元)');
$sheet->getStyle('N6')->getAlignment()->setWrapText(true);
$sheet->getStyle('N6')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('N6')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->setCellValue('O6', '时间');
$sheet->getStyle('O6')->getAlignment()->setWrapText(true);
$sheet->getStyle('O6')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('O6')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->mergeCells('P5:P6');
$sheet->setCellValue('P5', '违约情况');
$sheet->getStyle('P5')->getAlignment()->setWrapText(true);
$sheet->getStyle('P5')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('P5')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->mergeCells('Q4:T4');
$sheet->setCellValue('Q4', '竣工部分');
$sheet->getStyle('Q4')->getAlignment()->setWrapText(true);
$sheet->getStyle('Q4')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('Q4')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->mergeCells('Q5:R5');
$sheet->setCellValue('Q5', '应退款');
$sheet->getStyle('Q5')->getAlignment()->setWrapText(true);
$sheet->getStyle('Q5')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('Q5')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->mergeCells('S5:T5');
$sheet->setCellValue('S5', '实退款');
$sheet->getStyle('S5')->getAlignment()->setWrapText(true);
$sheet->getStyle('S5')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('S5')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->setCellValue('Q6', '金额(元)');
$sheet->getStyle('Q6')->getAlignment()->setWrapText(true);
$sheet->getStyle('Q6')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('Q6')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->setCellValue('R6', '时间');
$sheet->getStyle('R6')->getAlignment()->setWrapText(true);
$sheet->getStyle('R6')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('R6')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->setCellValue('S6', '金额(元)');
$sheet->getStyle('S6')->getAlignment()->setWrapText(true);
$sheet->getStyle('S6')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('S6')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->setCellValue('T6', '时间');
$sheet->getStyle('T6')->getAlignment()->setWrapText(true);
$sheet->getStyle('T6')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('T6')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->mergeCells('U5:U6');
$sheet->setCellValue('U5', '违约情况');
$sheet->getStyle('U5')->getAlignment()->setWrapText(true);
$sheet->getStyle('U5')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('U5')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->mergeCells('V4:Y4');
$sheet->setCellValue('V4', '达产部分(退费情况)');
$sheet->getStyle('V4')->getAlignment()->setWrapText(true);
$sheet->getStyle('V4')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('V4')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->mergeCells('V5:W5');
$sheet->setCellValue('V5', '应退款');
$sheet->getStyle('V5')->getAlignment()->setWrapText(true);
$sheet->getStyle('V5')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('V5')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->mergeCells('X5:Y5');
$sheet->setCellValue('X5', '实退款');
$sheet->getStyle('X5')->getAlignment()->setWrapText(true);
$sheet->getStyle('X5')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('X5')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->setCellValue('V6', '金额(元)');
$sheet->getStyle('V6')->getAlignment()->setWrapText(true);
$sheet->getStyle('V6')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('V6')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->setCellValue('W6', '时间');
$sheet->getStyle('W6')->getAlignment()->setWrapText(true);
$sheet->getStyle('W6')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('W6')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->setCellValue('X6', '金额(元)');
$sheet->getStyle('X6')->getAlignment()->setWrapText(true);
$sheet->getStyle('X6')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('X6')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->setCellValue('Y6', '时间');
$sheet->getStyle('Y6')->getAlignment()->setWrapText(true);
$sheet->getStyle('Y6')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('Y6')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->mergeCells('Z5:Z6');
$sheet->setCellValue('Z5', '违约情况');
$sheet->getStyle('Z5')->getAlignment()->setWrapText(true);
$sheet->getStyle('Z5')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle('Z5')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$sheet->mergeCells('A3:A6');
$sheet->mergeCells('B3:B6');
$sheet->mergeCells('C3:C6');
$sheet->mergeCells('D3:D6');
$sheet->mergeCells('E3:E6');
$sheet->mergeCells('F3:F6');
$sheet->mergeCells('G3:G6');
$row = 7;
foreach ($list as $item) {
$dataCol = 'A';
$sheet->setCellValue($dataCol . $row, $item['id']);
$sheet->getStyle($dataCol . $row)->getAlignment()->setWrapText(true);
$sheet->getStyle($dataCol . $row)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle($dataCol . $row)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$dataCol++;
$sheet->setCellValue($dataCol . $row, $item['LandTransfer']['contract_code']);
$sheet->getStyle($dataCol . $row)->getAlignment()->setWrapText(true);
$sheet->getStyle($dataCol . $row)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle($dataCol . $row)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$dataCol++;
$sheet->setCellValue($dataCol . $row, $item['LandTransfer']['signing_time']);
$sheet->getStyle($dataCol . $row)->getAlignment()->setWrapText(true);
$sheet->getStyle($dataCol . $row)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle($dataCol . $row)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$dataCol++;
$sheet->setCellValue($dataCol . $row, $item['LandTransfer']['assigneer']);
$sheet->getStyle($dataCol . $row)->getAlignment()->setWrapText(true);
$sheet->getStyle($dataCol . $row)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle($dataCol . $row)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$dataCol++;
$sheet->setCellValue($dataCol . $row, $item['LandTransfer']['use']);
$sheet->getStyle($dataCol . $row)->getAlignment()->setWrapText(true);
$sheet->getStyle($dataCol . $row)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle($dataCol . $row)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$dataCol++;
$sheet->setCellValue($dataCol . $row, $item['LandTransfer']['area']);
$sheet->getStyle($dataCol . $row)->getAlignment()->setWrapText(true);
$sheet->getStyle($dataCol . $row)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle($dataCol . $row)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$dataCol++;
$sheet->setCellValue($dataCol . $row, $item['LandTransfer']['cy_total_amount']);
$sheet->getStyle($dataCol . $row)->getAlignment()->setWrapText(true);
$sheet->getStyle($dataCol . $row)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle($dataCol . $row)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$dataCol++;
$sheet->setCellValue($dataCol . $row, $item['bzj_payable_amount']);
$sheet->getStyle($dataCol . $row)->getAlignment()->setWrapText(true);
$sheet->getStyle($dataCol . $row)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle($dataCol . $row)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$dataCol++;
$sheet->setCellValue($dataCol . $row, $item['bzj_payable_time']);
$sheet->getStyle($dataCol . $row)->getAlignment()->setWrapText(true);
$sheet->getStyle($dataCol . $row)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle($dataCol . $row)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$dataCol++;
$sheet->setCellValue($dataCol . $row, $item['bzj_actual_amount']);
$sheet->getStyle($dataCol . $row)->getAlignment()->setWrapText(true);
$sheet->getStyle($dataCol . $row)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle($dataCol . $row)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$dataCol++;
$sheet->setCellValue($dataCol . $row, $item['bzj_actual_time']);
$sheet->getStyle($dataCol . $row)->getAlignment()->setWrapText(true);
$sheet->getStyle($dataCol . $row)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle($dataCol . $row)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$dataCol++;
$sheet->setCellValue($dataCol . $row, $item['kg_refund_payable_amount']);
$sheet->getStyle($dataCol . $row)->getAlignment()->setWrapText(true);
$sheet->getStyle($dataCol . $row)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle($dataCol . $row)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$dataCol++;
$sheet->setCellValue($dataCol . $row, $item['kg_refund_payable_time']);
$sheet->getStyle($dataCol . $row)->getAlignment()->setWrapText(true);
$sheet->getStyle($dataCol . $row)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle($dataCol . $row)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$dataCol++;
$sheet->setCellValue($dataCol . $row, $item['kg_refund_actual_amount']);
$sheet->getStyle($dataCol . $row)->getAlignment()->setWrapText(true);
$sheet->getStyle($dataCol . $row)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle($dataCol . $row)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$dataCol++;
$sheet->setCellValue($dataCol . $row, $item['kg_refund_actual_time']);
$sheet->getStyle($dataCol . $row)->getAlignment()->setWrapText(true);
$sheet->getStyle($dataCol . $row)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle($dataCol . $row)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$dataCol++;
$sheet->setCellValue($dataCol . $row, $item['kg_breach']);
$sheet->getStyle($dataCol . $row)->getAlignment()->setWrapText(true);
$sheet->getStyle($dataCol . $row)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle($dataCol . $row)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$dataCol++;
$sheet->setCellValue($dataCol . $row, $item['jg_refund_payable_amount']);
$sheet->getStyle($dataCol . $row)->getAlignment()->setWrapText(true);
$sheet->getStyle($dataCol . $row)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle($dataCol . $row)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$dataCol++;
$sheet->setCellValue($dataCol . $row, $item['jg_refund_payable_time']);
$sheet->getStyle($dataCol . $row)->getAlignment()->setWrapText(true);
$sheet->getStyle($dataCol . $row)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle($dataCol . $row)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$dataCol++;
$sheet->setCellValue($dataCol . $row, $item['jg_refund_actual_amount']);
$sheet->getStyle($dataCol . $row)->getAlignment()->setWrapText(true);
$sheet->getStyle($dataCol . $row)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle($dataCol . $row)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$dataCol++;
$sheet->setCellValue($dataCol . $row, $item['jg_refund_actual_time']);
$sheet->getStyle($dataCol . $row)->getAlignment()->setWrapText(true);
$sheet->getStyle($dataCol . $row)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle($dataCol . $row)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$dataCol++;
$sheet->setCellValue($dataCol . $row, $item['jg_breach']);
$sheet->getStyle($dataCol . $row)->getAlignment()->setWrapText(true);
$sheet->getStyle($dataCol . $row)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle($dataCol . $row)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$dataCol++;
$sheet->setCellValue($dataCol . $row, $item['dc_refund_payable_amount']);
$sheet->getStyle($dataCol . $row)->getAlignment()->setWrapText(true);
$sheet->getStyle($dataCol . $row)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle($dataCol . $row)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$dataCol++;
$sheet->setCellValue($dataCol . $row, $item['dc_refund_payable_time']);
$sheet->getStyle($dataCol . $row)->getAlignment()->setWrapText(true);
$sheet->getStyle($dataCol . $row)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle($dataCol . $row)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$dataCol++;
$sheet->setCellValue($dataCol . $row, $item['dc_refund_actual_amount']);
$sheet->getStyle($dataCol . $row)->getAlignment()->setWrapText(true);
$sheet->getStyle($dataCol . $row)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle($dataCol . $row)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$dataCol++;
$sheet->setCellValue($dataCol . $row, $item['dc_refund_actual_time']);
$sheet->getStyle($dataCol . $row)->getAlignment()->setWrapText(true);
$sheet->getStyle($dataCol . $row)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle($dataCol . $row)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$dataCol++;
$sheet->setCellValue($dataCol . $row, $item['dc_breach']);
$sheet->getStyle($dataCol . $row)->getAlignment()->setWrapText(true);
$sheet->getStyle($dataCol . $row)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getStyle($dataCol . $row)->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
$row++;
}
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="' . $title . '.xlsx"');
header('Cache-Control: max-age=0');
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
$writer->save('php://output');
$spreadsheet->disconnectWorksheets();
}
这个方法可以实现自定义合并单元格,修改字体大小,文件默认格式等一系列操作,还是很方便。