Dengan peningkatan populariti aplikasi Internet dan permintaan yang semakin meningkat untuk interaksi antara pelbagai jenis data dan pemindahan data, penukaran format fail, import dan eksport telah menjadi salah satu keperluan biasa. Dalam aplikasi web, mengimport dan mengeksport fail Excel adalah kaedah pertukaran data biasa dalam kerja harian. Artikel ini akan memperkenalkan cara melaksanakan fungsi import dan eksport Excel dalam rangka kerja ThinkPHP6.
1. Pengenalan kepada rangka kerja ThinkPHP6
ThinkPHP6 ialah rangka kerja PHP ringan berorientasikan objek percuma, cepat dan ringkas. Ia mempunyai ciri-ciri prestasi tinggi, fungsi yang kaya, konfigurasi fleksibel, kebolehskalaan yang kuat, dsb., dan telah menjadi rangka kerja yang popular dalam bidang pembangunan aplikasi PHP.
2. Eksport Excel
<?php namespace appindexcontroller; use PHPExcel; use PHPExcel_IOFactory; class ExcelExport { public function export() { $objPHPExcel = new PHPExcel(); // 设置当前活动sheet $objPHPExcel->setActiveSheetIndex(0); // 设置标题 $objPHPExcel->getActiveSheet()->setTitle('学生成绩'); // 设置表头 $objPHPExcel->getActiveSheet()->setCellValue('A1', '学号'); $objPHPExcel->getActiveSheet()->setCellValue('B1', '姓名'); $objPHPExcel->getActiveSheet()->setCellValue('C1', '语文'); $objPHPExcel->getActiveSheet()->setCellValue('D1', '数学'); $objPHPExcel->getActiveSheet()->setCellValue('E1', '英语'); $objPHPExcel->getActiveSheet()->setCellValue('F1', '总分'); // 设置数据 $data = [ ['1001', '张三', '85', '90', '88', '263'], ['1002', '李四', '90', '88', '90', '268'], ['1003', '王五', '92', '87', '91', '270'] ]; $row = 2; foreach ($data as $val) { $objPHPExcel->getActiveSheet()->setCellValue('A' . $row, $val[0]); $objPHPExcel->getActiveSheet()->setCellValue('B' . $row, $val[1]); $objPHPExcel->getActiveSheet()->setCellValue('C' . $row, $val[2]); $objPHPExcel->getActiveSheet()->setCellValue('D' . $row, $val[3]); $objPHPExcel->getActiveSheet()->setCellValue('E' . $row, $val[4]); $objPHPExcel->getActiveSheet()->setCellValue('F' . $row, $val[5]); $row++; } // 设置列宽 $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(15); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(15); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(15); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(15); $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(15); $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(15); // 导出Excel header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="学生成绩.xlsx"'); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save('php://output'); exit; } }
Kod sampel di atas menunjukkan Bagaimana untuk menggunakan perpustakaan PHPExcel untuk melaksanakan eksport Excel. Pustaka PHPExcel ialah perpustakaan sumber terbuka untuk membaca dan menulis fail Excel dalam PHP. Ia berkuasa dan mudah dikendalikan.
Pertama, kami mencipta contoh PHPExcel, kemudian tetapkan helaian aktif semasa, dan tetapkan tajuk dan pengepala. Selepas itu, kami menetapkan data dan menetapkan lebar lajur. Akhir sekali, kami menggunakan fungsi pengepala untuk menetapkan jenis kandungan, nama fail dan kawalan cache untuk mengeksport Excel, dan kemudian menggunakan kaedah createWriter kelas PHPExcel_IOFactory untuk mencipta penulis dalam format Excel2007 dan mengeluarkan aliran data ke penyemak imbas.
3. Import Excel
<?php namespace appindexcontroller; use PHPExcel; use PHPExcel_IOFactory; class ExcelImport { public function import() { if (empty($_FILES['file']['tmp_name'])) { echo '请选择文件!'; exit; } $reader = PHPExcel_IOFactory::createReader('Excel2007'); $PHPExcel = $reader->load($_FILES['file']['tmp_name']); $sheet = $PHPExcel->getSheet(0); // 获得第1个工作表 $highestRow = $sheet->getHighestRow(); // 取得总行数 $highestColumn = $sheet->getHighestColumn(); // 取得总列数 $data = []; for ($row = 2; $row <= $highestRow; $row++) { $rowData = []; for ($col = 'A'; $col <= $highestColumn; $col++) { $rowData[$col] = (string)$sheet->getCell($col . $row)->getValue(); } $data[] = $rowData; } var_dump($data); } }
Kod sampel di atas menunjukkan Bagaimana untuk menggunakan perpustakaan PHPExcel untuk melaksanakan import Excel. Pertama, kami menentukan sama ada klien telah memuat naik fail dan menggunakan kaedah createReader kelas PHPExcel_IOFactory untuk mencipta pembaca dalam format Excel2007. Kemudian, kami menggunakan kaedah muat $reader untuk membaca fail Excel ke dalam ingatan dan mendapatkan lembaran kerja pertama di dalamnya. Seterusnya, kita gelung melalui jadual Excel melalui nilai indeks baris tertinggi dan lajur tertinggi, menyimpan setiap baris data dalam bentuk tatasusunan bersekutu ke dalam pembolehubah $data, dan akhirnya mengeluarkan pembolehubah.
4. Ringkasan
Melalui pengenalan artikel ini, kami telah mempelajari cara menggunakan rangka kerja ThinkPHP6 yang digabungkan dengan perpustakaan PHPExcel untuk melaksanakan fungsi import dan eksport fail Excel, yang memberikan kemudahan dan kemudahan untuk pembangunan aplikasi web kami. Kami secara fleksibel boleh menggunakan pelbagai kaedah dan sifat perpustakaan PHPExcel mengikut keperluan sebenar untuk merealisasikan pertukaran format fail dan menyediakan aplikasi kami dengan lebih baik.
Atas ialah kandungan terperinci Bagaimana untuk mengimport dan mengeksport Excel dalam ThinkPHP6?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!