ホームページ  >  記事  >  PHPフレームワーク  >  ThinkPHP6 で Excel をインポートおよびエクスポートするにはどうすればよいですか?

ThinkPHP6 で Excel をインポートおよびエクスポートするにはどうすればよいですか?

WBOY
WBOYオリジナル
2023-06-12 11:01:483089ブラウズ

インターネット アプリケーションの人気が高まり、さまざまな種類のデータ間のやり取りやデータ転送の需要が高まるにつれ、ファイル形式の変換、インポート、エクスポートが共通のニーズの 1 つになりました。 Web アプリケーションでは、Excel ファイルのインポートとエクスポートは、日常業務におけるデータ交換の一般的な方法です。この記事では、ThinkPHP6 フレームワークで Excel のインポートおよびエクスポート機能を実装する方法を紹介します。

1. ThinkPHP6 フレームワークの概要

ThinkPHP6 は、無料のオープンソースで、高速かつシンプルなオブジェクト指向の軽量 PHP フレームワークです。高性能、豊富な機能、柔軟な構成、強い拡張性などの特徴を持ち、PHPアプリケーション開発の分野では人気のフレームワークとなっています。

2. Excel エクスポート

  1. サンプル コード
<?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;
    }
}
  1. 説明

上記のサンプル コードは、その方法を示しています。 PHPExcel ライブラリを使用して Excel エクスポートを実装します。 PHPExcel ライブラリは、PHP が Excel ファイルを読み書きするためのオープンソース ライブラリであり、強力で操作が簡単です。

まず、PHPExcel インスタンスを作成し、次に現在のアクティブ シートを設定し、タイトルとヘッダーを設定します。その後、データを設定し、列幅を設定します。最後に、ヘッダー関数を使用して Excel をエクスポートするためのコンテンツ タイプ、ファイル名、キャッシュ コントロールを設定し、PHPExcel_IOFactory クラスの createWriter メソッドを使用して Excel2007 形式のライターを作成し、データ ストリームをブラウザに出力します。

3. Excel インポート

  1. サンプル コード
<?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);
    }
}
  1. 説明

上記のサンプル コードは、その方法を示しています。 PHPExcel ライブラリを使用して Excel インポートを実装します。まず、クライアントがファイルをアップロードしたかどうかを判断し、PHPExcel_IOFactory クラスの createReader メソッドを使用して Excel2007 形式のリーダーを作成します。次に、$reader の load メソッドを使用して Excel ファイルをメモリに読み取り、その中の最初のワークシートを取得します。次に、最上位の行と最上位の列のインデックス値を使用して Excel テーブルをループし、各行のデータを連想配列の形式で $data 変数に格納し、最後に変数を出力します。

4. 概要

この記事の導入部を通じて、ThinkPHP6 フレームワークと PHPExcel ライブラリを組み合わせて Excel ファイルのインポートおよびエクスポート機能を実装する方法を学びました。 Web アプリケーション開発の利便性をサポートします。実際のニーズに応じて PHPExcel ライブラリのさまざまなメソッドとプロパティを柔軟に使用して、ファイル形式の交換を実現し、アプリケーションをより適切に提供できます。

以上がThinkPHP6 で Excel をインポートおよびエクスポートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。