日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

隨著互聯網的快速發展,Excel已經成為公司和個人日常辦公中重要的工具之一。因此,Excel導入導出的功能已經成為許多應用程序的必要組成部分。如何使用ThinkPHP6實現Excel導入導出呢?下面,本文將為您詳細介紹。

一、ThinkPHP6系統環境驗證

使用ThinkPHP6實現Excel導入導出,首先需要滿足系統環境要求。在ThinkPHP6中,可以使用composer安裝phpoffice/phpspreadsheet庫,實現Excel處理功能。在命令行中執行以下命令進行安裝:

composer require phpoffice/phpspreadsheet

安裝完畢后,在controller層中引入PhpOfficePhpSpreadsheetSpreadsheet和PhpOfficePhpSpreadsheetWriterXlsx類庫,這些類庫將在我們的后面代碼中使用。

二、Excel導出

1、導出Excel數據

使用ThinkPHP6實現Excel導出,首先需要將數據導入到Excel中。我們可以根據需要,在controller層中編寫相應的代碼。例如,在導出學生信息時,可以通過查詢數據庫獲取相關信息。

use appcommonmodelStudent;
 
public function export()
{
    $students = Student::all();
}

2、設置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', '日期');

3、將數據寫入Excel表格

接下來,將獲取的數據寫入Excel表格中。循環遍歷數據,將每個學生的信息依次寫入表格中。

foreach ($students as $key => $item) {
    $num = $key + 2;
    $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);
}

4、將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();

三、Excel導入

除了導出Excel,ThinkPHP6還可以實現Excel的導入功能。接下來,我們將為您介紹ThinkPHP6中實現Excel導入的方法。

1、上傳Excel文件并讀取數據

在導入Excel之前,我們需要先上傳Excel文件。在這里,我們使用了ThinkPHP6自帶的文件上傳類庫。上傳成功之后,使用PhpOfficePhpSpreadsheetIOFactory類庫中的方法,讀取上傳的Excel文件中的數據。

use think/acade/Filesystem;
 
$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 = [];

2、遍歷Excel表格并得到數據

獲取到Excel表格數據后,我們需要將數據遍歷一遍,使用數組保存Excel表格的每一行數據。

for($i = 2; $i <= $highestRow; $i++){
    $item['number'] = $sheet->getCellByColumnAndRow(1, $i)->getValue();
    $item['name'] = $sheet->getCellByColumnAndRow(2, $i)->getValue();
    $item['sex'] = $sheet->getCellByColumnAndRow(3, $i)->getValue();
    $item['date'] = date('Y-m-d H:i:s',$sheet->getCellByColumnAndRow(4, $i)->getValue() - 25569)*86400;
    $data[] = $item;
}

3、將Excel表格導入到數據庫中

最后,我們將Excel表格中的數據導入到數據庫中。在這里,我們使用ThinkPHP6自帶的ORM操作,將數據保存到數據庫表中。

use app/common/model/Student;
 
Db::startTrans();
try {
    Student::insertAll($data);
    Db::commit();
} catch (Exception $e) {
    Db::rollback();
    return json(['code' => '500', 'msg' => '操作失敗']);
}
return json(['code' => '200', 'msg' => '操作成功']);

總結

本文詳細介紹了如何使用ThinkPHP6實現Excel導入導出功能。通過使用PhpOfficePhpSpreadsheet類庫,我們可以輕松地完成Excel相關的操作。Excel導入導出功能在企業管理系統中用到非常廣泛,理解和掌握相關技能將會對開發者有很大的幫助。


分享到:
標簽:ThinkPHP6實現Excel導入導出
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定