Rumah  >  Artikel  >  rangka kerja php  >  Cara menggunakan rangka kerja Hyperf untuk eksport Excel

Cara menggunakan rangka kerja Hyperf untuk eksport Excel

WBOY
WBOYasal
2023-10-20 15:15:191152semak imbas

Cara menggunakan rangka kerja Hyperf untuk eksport Excel

Cara menggunakan rangka kerja Hyperf untuk eksport Excel

Mengeksport data ke Excel adalah salah satu keperluan yang sering kita hadapi semasa proses pembangunan. Di bawah rangka kerja Hyperf, kita boleh menggunakan PhpSpreadsheet perpustakaan pihak ketiga untuk melaksanakan fungsi eksport Excel. Artikel ini akan memperkenalkan secara terperinci cara menggunakan rangka kerja Hyperf untuk eksport Excel dan memberikan contoh kod khusus.

1. Pasang perpustakaan bergantung

Pertama, anda perlu memasang perpustakaan PhpSpreadsheet dalam projek rangka kerja Hyperf. Jalankan arahan berikut dalam direktori akar projek:

composer require phpoffice/phpspreadsheet

2. Buat kelas eksport

Kami mula-mula mencipta kelas eksport Excel untuk merangkum pelaksanaan khusus fungsi eksport. Cipta fail ExcelExporter.php dalam direktori AppUtils Kod adalah seperti berikut: AppUtils目录下创建ExcelExporter.php文件,代码如下:

namespace AppUtils;

use PhpOfficePhpSpreadsheetSpreadsheet;
use PhpOfficePhpSpreadsheetWriterXlsx;

class ExcelExporter
{
    public static function export($data, $fileName, $headers, $title = null)
    {
        // 创建Excel对象
        $spreadsheet = new Spreadsheet();
        
        // 设置工作表名称
        $worksheet = $spreadsheet->getActiveSheet();
        $worksheet->setTitle($title ?: 'Sheet1');

        // 写入表头
        foreach ($headers as $key => $header) {
            $column = chr(65 + $key); // 列名,如A、B、C...
            $worksheet->setCellValue($column.'1', $header);
        }

        // 写入数据
        $row = 2; // 数据行起始行号
        foreach ($data as $item) {
            foreach ($item as $key => $value) {
                $column = chr(65 + $key); // 列名,如A、B、C...
                $worksheet->setCellValue($column.$row, $value);
            }
            $row++;
        }

        // 导出Excel文件
        $writer = new Xlsx($spreadsheet);
        $writer->save($fileName);
    }
}

以上代码中,export方法接收四个参数:

  • $data: 需要导出的数据,二维数组
  • $fileName: 导出的文件名,含文件路径
  • $headers: 表头,一维数组
  • $title
    <?php
    
    namespace AppController;
    
    use AppUtilsExcelExporter;
    use HyperfHttpServerAnnotationAutoController;
    
    /**
     * @AutoController()
     */
    class UserController extends AbstractController
    {
        public function export()
        {
            // 模拟数据
            $data = [
                ['id' => 1, 'name' => 'Tom', 'age' => 18],
                ['id' => 2, 'name' => 'Jerry', 'age' => 20],
                ['id' => 3, 'name' => 'Alice', 'age' => 22],
            ];
    
            // 表头
            $headers = ['ID', '姓名', '年龄'];
    
            // 文件名
            $fileName = '/path/to/export/user.xlsx';
    
            // 调用导出方法
            ExcelExporter::export($data, $fileName, $headers, '用户信息');
    
            return $this->success('导出成功');
        }
    }
  • Dalam kod di atas, kaedah eksport menerima. empat parameter:
  • $data: Data yang akan dieksport, tatasusunan dua dimensi

  • $fileName: Nama fail yang dieksport, termasuk laluan fail
  • $headers: pengepala, tatasusunan satu dimensi

  • $title: nama lembaran kerja, parameter pilihan, lalai ialah Sheet1

    3 . Gunakan kelas yang dieksport

    Selepas melengkapkan penulisan kelas eksport, kita boleh memanggilnya dalam pengawal yang perlu mengeksport data. Berikut ialah contoh, mengambil mengeksport maklumat pengguna sebagai contoh:

    rrreee

    Dalam contoh di atas, kami mensimulasikan set data maklumat pengguna, menetapkan pengepala dan nama fail yang dieksport. Selepas memanggil kaedah eksport, fail Excel berjaya dieksport dan gesaan bahawa eksport berjaya dikembalikan. 🎜🎜4. Ringkasan🎜🎜Menggunakan rangka kerja Hyperf untuk mengeksport Excel, anda boleh menggunakan fungsi yang disediakan oleh perpustakaan PhpSpreadsheet untuk melaksanakannya dengan merangkum kelas eksport. Melalui contoh kod di atas, kita boleh melaksanakan fungsi mengeksport data ke fail Excel dengan cepat. Pada masa yang sama, kami juga boleh melanjutkan kelas eksport mengikut keperluan sebenar untuk memenuhi keperluan eksport yang lebih kompleks. 🎜
  • Atas ialah kandungan terperinci Cara menggunakan rangka kerja Hyperf untuk eksport Excel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn