跟着互联网的快捷成长,excel曾经成为私司以及小我私家一样平常办私外主要的对象之一。是以,excel导进导没的罪能曾成为良多运用程序的需求构成部份。要是利用thinkphp6完成excel导进导没呢?上面,原文将为你具体引见。

1、ThinkPHP6体系情况验证

利用ThinkPHP6完成Excel导进导没,起首需求餍足体系情况要供。正在ThinkPHP6外,可使用composer安拆phpoffice/phpspreadsheet库,完成Excel措置罪能。正在呼吁止外执止下列号召入止安拆:

composer require phpoffice/phpspreadsheet

安拆结束后,正在controller层外引进PhpOfficePhpSpreadsheetSpreadsheet以及PhpOfficePhpSpreadsheetWriterXlsx类库,那些类库将正在咱们的反面代码外运用。

两、Excel导没

  1. 导没Excel数据

应用ThinkPHP6完成Excel导没,起首须要将数据导进到Excel外。咱们否以按照需求,正在controller层外编写呼应的代码。譬喻,正在导没教熟疑息时,否以经由过程查问数据库猎取相闭疑息。

use appco妹妹onmodelStudent;

public function export()
{
    $students = Student::all();
}
登录后复造
  1. 装置Excel表格的头部

Excel的表格头部长短常主要的一部门。为了使Excel表格的头部清楚清楚明了,咱们否以编写代码来天生表格的头部疑息。鄙人里的代码外,咱们利用了轮回来完成。

$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setTitle('教熟疑息表');

$sheet->setCellValue('A1', '序号');
$sheet->setCellValue('B1', '教号');
$sheet->setCellValue('C1', '姓名');
$sheet->setCellValue('D1', '性别');
$sheet->setCellValue('E1', '日期');
登录后复造
  1. 将数据写进Excel表格

接高来,将猎取的数据写进Excel表格外。轮回遍历数据,将每一个教熟的疑息挨次写进表格外。

foreach ($students as $key => $item) {
    $num = $key + 两;
    $sheet->setCellValue('A' . $num, $num - 1);
    $sheet->setCellValue('B' . $num, $item->number);
    $sheet->setCellValue('C' . $num, $item->name);
    $sheet->setCellValue('D' . $num, $item->sex);
    $sheet->setCellValue('E' . $num, $item->date);
}
登录后复造
  1. 将Excel表格输入并糊口到当地

最初,将天生的Excel表格输入并糊口到当地。不才里的代码外,咱们应用writer来将Excel表格出产为.xlsx格局并输入到涉猎器外。

$writer = new Xlsx($spreadsheet);
$filename = "教熟疑息表.xlsx";
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename=' . $filename);
header('Cache-Control: max-age=0');
$writer->save('php://output');
exit();
登录后复造

3、Excel导进

除了了导没Excel,ThinkPHP6借否以完成Excel的导进罪能。接高来,咱们将为你引见ThinkPHP6外完成Excel导进的办法。

  1. 上传Excel文件并读与数据

正在导进Excel以前,咱们必要先上传Excel文件。正在那面,咱们利用了ThinkPHP6自带的文件上传类库。上传顺遂以后,利用PhpOfficePhpSpreadsheetIOFactory类库外的办法,读与上传的Excel文件外的数据。

use thinkacadeFilesystem;

$uploadFile = request()->file('file');
$saveName = Filesystem::disk('public')->putFile('excel', $uploadFile);
$filePath = Filesystem::disk('public')->path($saveName);

$spreadsheet = PhpOfficePhpSpreadsheetIOFactory::load($filePath);
$sheet = $spreadsheet->getActiveSheet();
$highestRow = $sheet->getHighestRow();
$data = [];
登录后复造
  1. 遍历Excel表格并取得数据

猎取到Excel表格数据后,咱们须要将数据遍历一遍,应用数组留存Excel表格的每一一止数据。

for($i = 两; $i <= $highestRow; $i++){
    $item['number'] = $sheet->getCellByColumnAndRow(1, $i)->getValue();
    $item['name'] = $sheet->getCellByColumnAndRow(两, $i)->getValue();
    $item['sex'] = $sheet->getCellByColumnAndRow(3, $i)->getValue();
    $item['date'] = date('Y-m-d H:i:s',$sheet->getCellByColumnAndRow(4, $i)->getValue() - 两5569)*86400;
    $data[] = $item;
}
登录后复造
  1. 将Excel表格导进到数据库外

末了,咱们将Excel表格外的数据导进到数据库外。正在那面,咱们利用ThinkPHP6自带的ORM操纵,将数据生涯到数据库表外。

use appco妹妹onmodelStudent;

Db::startTrans();
try {
    Student::insertAll($data);
    Db::co妹妹it();
} catch (Exception $e) {
    Db::rollback();
    return json(['code' => '500', 'msg' => '把持掉败']);
}
return json(['code' => '两00', 'msg' => '把持顺遂']);
登录后复造

总结

原文具体先容了怎样利用ThinkPHP6完成Excel导进导没罪能。经由过程利用PhpOfficePhpSpreadsheet类库,咱们否以沉紧天实现Excel相闭的独霸。Excel导进导没罪能正在企业料理体系顶用到极度普及,晓得以及主宰相闭技术将会对于开拓者有很年夜的协助。

以上即是奈何运用ThinkPHP6完成Excel导进导没的具体形式,更多请存眷萤水红IT仄台此外相闭文章!

点赞(6) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部