0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Laravel SailでLibXLを使う

Last updated at Posted at 2022-12-09

開発環境

macOS  13.0.1
PHP  7.4.33
Laravel  8.83.16
laravel/sail  1.14.10

環境構築

公式ドキュメント

1. 以下二つをダウンロード

ブラウザからでもCLIでもお好きなやり方で。

$ cd docker/7.4
$ wget https://github.com/iliaal/php_excel/archive/php7.zip https://www.libxl.com/download/libxl-lin-4.1.0.tar.gz

以下のリンクを確認して最新ものがあればそれをダウンロードする。
その場合、ファイル名などは適宜読み替える。
https://github.com/iliaal/php_excel/releases
https://www.libxl.com/download.html

ダウンロードが完了したらdocker/7.4に配置する。

2. Dockerfile 編集

以下を追記。

docker/7.4/Dockerfile
COPY ./libxl-lin-4.1.0.tar.gz /usr/local/src/libxl-lin-4.1.0.tar.gz
COPY ./php_excel-php7.zip /usr/local/src/php_excel-php7.zip

RUN cd /usr/local/src/ && \
    tar xf libxl-lin-4.1.0.tar.gz && \
    unzip php_excel-php7.zip

RUN cd /usr/local/src/ && \
    cd php_excel-php7 && \
    phpize && \
    ./configure --with-excel=/usr/local/src/libxl-4.1.0/ --with-libxl-incdir=/usr/local/src/libxl-4.1.0/include_c/ --with-libxl-libdir=/usr/local/src/libxl-4.1.0/lib64/ && \
    make && \
    make install

3. php.ini 編集

以下を追記。

docker/7.4/php.ini
[LibXL]
extension=excel.so

4. dockerをビルドし直す && 再起動

vendor/bin/sail build --no-cache
vendor/bin/sail up -d

5. 動作確認

routes/web.php
Route::get('excel', function () {
    // バッファをクリアする
    ob_end_clean();
    ob_start();

    $book = new \ExcelBook(null, null, true);

    // 日本語対応
    $book->setLocale('UTF-8');

    $sheet = $book->addSheet("Sheet1");

    // A2にテキストを追加
    $sheet->write(1, 0, 'PHP_EXCELのテストです。');

    header('Content-Type: application/octet-stream');
    header('Content-Disposition:attachment;filename="test.xlsx"');

    $book->save('php://output');
});

http://localhost/excel
にアクセスするとExcelファイルがブラウザでダウンロードされる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?