Excel ExcelでマルチワークシートExcelファイルを作成する
最近、プロジェクトのために大きなデータエクスポートを作成しなければなりませんでした.私はそれが非常に簡単で、使用するように非常に簡単で、大量のデータをCSVファイルやExcelファイルにエクスポートするときは、ブラウザにダウンロードするストリームを使用するとうまく動作するように空間のシンプルなExcelパッケージを使用してください.この特定のプロジェクトは、追加の要件を持っていた、一度に複数のワークシートのデータをエクスポートします.幸いにも、このパッケージは、あなたもこれを行うことができます.
writerオブジェクト
Simple Excelパッケージは、フードの下にbox/spoutパッケージを使用しています.ReadMeでは、
ワークシートの命名
ワークシートの名前を指定するには、
新しいワークシートの作成
新しいシートを作成するには、
一緒にすべてをもたらす
今、我々はどのように我々は一緒にそれをもたらすことができる個々のタスクを行う方法を知っている. SimpleExcelWriter を使用してStreamDownloaderを作成します現在のシートを取得して名前を取得する は「名前」シート にデータの行を加えます新しいシートを作成し、現在のシートを作成します. ヘッダー行を'アドレス' に加えますは「アドレス」シート にデータの行を加えます最終的に、ストリームをブラウザに戻す
単一のワークシートを作成するときは、単純なExcelパッケージは通常、私たちのヘッダー行を作成しますが、新しいシートを作成するときに、データの新しいヘッダーを定義する必要があるようです.
以下に出力されたExcelファイルのスクリーンショットを示します.
PhotoのWilfred IvenによるStockSnap
writerオブジェクト
Simple Excelパッケージは、フードの下にbox/spoutパッケージを使用しています.ReadMeでは、
->getWriter()
を使用して、基本的なライターになることができます.$writer = SimpleExcelWriter::create($pathToCsv)->getWriter();
ボックス/噴出パッケージのドキュメントにジャンプする場合は、Playing with sheetsにセクションがあります.ドキュメントでは、現在のシートを取得し、現在のシートの名前を設定し、新しいシートを作成する方法を確認できます.ワークシートの命名
ワークシートの名前を指定するには、
getCurrentSheet()
を使用して、現在のシートをライターで取得し、名前を設定するにはsetName()
を使用します.$writer = SimpleExcelWriter::streamDownload('your-export.xlsx')->getWriter()
$nameSheet = $writer->getCurrentSheet();
$nameSheet->setName('Names');
新しいワークシートの作成
新しいシートを作成するには、
addNewSheetAndMakeItCurrent()
を使用することができますし、この新しいシートの名前を設定するためにもう一度setName()
を使用することができます.$addressSheet = $writer->addNewSheetAndMakeItCurrent();
$addressSheet->setName('Addresses');
一緒にすべてをもたらす
今、我々はどのように我々は一緒にそれをもたらすことができる個々のタスクを行う方法を知っている.
use Spatie\SimpleExcel\SimpleExcelWriter;
$stream = SimpleExcelWriter::streamDownload('your-export.xlsx');
$writer = $stream->getWriter();
// Set the name of the current sheet to Names
$nameSheet = $writer->getCurrentSheet();
$nameSheet->setName('Names');
// Add rows to the Names sheet
$stream->addRows([
['first_name' => 'Boaty', 'last_name' => 'Mc Boatface'],
['first_name' => 'Dave', 'last_name' => 'Mc Dave'],
]);
// Create a new sheet and set the name to Addresses
$addressSheet = $writer->addNewSheetAndMakeItCurrent();
$addressSheet->setName('Addresses');
// Manually add header rows to the Addresses sheet
$stream->addRow(['house_number', 'postcode']);
// Add rows to the Addresses sheet
$stream->addRows([
['house_number' => '1', 'postcode' => 'AB1 2BC'],
['house_number' => '2', 'postcode' => 'AB1 2BD'],
]);
return $stream->toBrowser();
ラーラーブでの輸出の詳細については、Using Laravel Resource Collections with exportsをチェックしてください.単一のワークシートを作成するときは、単純なExcelパッケージは通常、私たちのヘッダー行を作成しますが、新しいシートを作成するときに、データの新しいヘッダーを定義する必要があるようです.
以下に出力されたExcelファイルのスクリーンショットを示します.
PhotoのWilfred IvenによるStockSnap
Reference
この問題について(Excel ExcelでマルチワークシートExcelファイルを作成する), 我々は、より多くの情報をここで見つけました https://dev.to/chrisrhymes/creating-multi-worksheet-excel-files-with-simple-excel-3lnjテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol