2019年10月11日午後02時09分40秒
構成設定
PhpSpreadsheetファイルは、スクリプトではなく、インスタンスに含まれた後、Spreadsheet
オブジェクトまたはブックファイルをロードする前に、あなたは多くの設定オプションを設定することができ、これらの設定オプションは、スクリプトのその後の行動に影響を与えます。
細胞は、キャッシュを収集しました
デフォルトでは、PhpSpreadsheetすべてのセルオブジェクトはメモリに残りますが、あなたは、メモリ消費量を削減するスピードのコストを削減する別の方法を指定することができます。記事を読むメモリ節約詳細については。
セルのキャッシュを行うために、あなたは、このようなキャッシュを独自の実装を提供する必要があります。
$cache = new MyCustomPsr16Implementation();
\PhpOffice\PhpSpreadsheet\Settings::setCache($cache);
言語/地域
PhpSpreadsheetは、すでにいくつかのローカライズされた要素が含まれています。あなたは、設定を変更することでロケールを設定することができます。ポルトガル語(ブラジル)、使用するロケールには:
$locale = 'pt_br';
$validLocale = \PhpOffice\PhpSpreadsheet\Settings::setLocale($locale);
if (!$validLocale) { echo 'Unable to set locale to ' . $locale . " - reverting to en_us" . PHP_EOL; }
- ファイルには、ポルトガル語(ブラジル)で利用できない場合は、ポルトガルが有効になります
- ファイルはポルトガル語ではない場合、
setLocale()
メソッドはエラーを返し、常にアメリカ英語(en_US)の設定を使用します。
ロケールを設定した後、あなたがすることができ、現在サポートされているロケールと言語のリストを含む、より詳細な情報については、利用可能な機能を使用することができます「式のロケール設定が」見つけ。
ワークシート
シートのセル、数式、画像、グラフィックスなどのコレクションです。これは、スプレッドシートワークシートに代わって必要なすべてのデータが含まれています。
スプレッドシートファイルからワークブックをロードする場合(あなたがロードされなければならないだけで、特定のワークシートを指定しない限り)、それはすべての既存のワークシートがロードされます。(例えばCSVやHTMLファイルなど)非スプレッドシートファイルを名前でロードされるか、または(例えばSYLKなど)ワークシートのスプレッドシート形式を識別することができない場合は、からファイルが含まれている、「WorkSheet1」という名前のワークシートを作成します。
あなたは新しいブックをインスタンス化するとき、PhpSpreadsheetは、それを作成するために、「WorkSheet1」と呼ばれるワークシートを使用します。
このgetSheetCount()
方法は、あなたのワークブック内のワークシートの数を教えてくれます。そして、getSheetNames()
この方法は、その「タブ」が表示されますにMSエクセル(または他の適切なスプレッドシートプログラム)で開くためとプレスをインデックス、ワークブック内のすべてのワークシートのリストを返します。
ブックに名前またはインデックス位置によって個々のシートにアクセスすることができます。位置は、各インデックス紙のブックをMSエクセル(または他の適切なスプレッドシートプログラム)で開かれる「ラベル」の表示順を表します。インデックスワークシートワークシートを介してアクセスするには、使用getSheet()
方法を。
// Get the second sheet in the workbook
// Note that sheets are indexed from 0
$spreadsheet->getSheet(1);
ワークブックでワークシートを並べ替えることができます方法もあります。
名前のアクセスワークシートでは、使用getSheetByName()
方法を、ワークシートにアクセスする名前を指定します。
// Retrieve the worksheet called 'Worksheet 1'
$spreadsheet->getSheetByName('Worksheet 1');
また、ワークシートを使用して、直接ワークシートにアクセスすることができ、常に現在アクティブなワークシートです。ワークシートは、MSエクセル(または他の適切なスプレッドシートプログラム)内のアクティブワークシート現在アクティブ開いているブックです。
// Retrieve the current active worksheet
$spreadsheet->getActiveSheet();
あなたは使用することができますsetActiveSheetIndex()
し、setActiveSheetIndexByName()
この方法は、インデックスまたは名前で現在アクティブなワークシートを変更します 。
新しいワークシートを追加します
あなたは使用することができ、オブジェクトのcreateSheet()
メソッドをワークブックに新しいワークシートを追加しますSpreadsheet
。デフォルトでは、新しい「最終」のワークシートとして作成されます。しかし、あなたはまた、ワークシートが位置に後続のすべての作業テーブルを設定します位置に挿入され、パラメータとしてインデックスの場所を指定することができます。
$spreadsheet->createSheet();
呼ばれる新しいワークシートを作成するには、この方法を使用 Worksheet<n>
した、 <n>
最低の数字の唯一の保証のタイトルです。
また、あなたは、新しいワークシート(お好みの名前に設定タイトル)をインスタンス化し、この使用することができるaddSheet()
方法をワークブックを挿入します 。
// Create a new worksheet called "My Data"
$myWorkSheet = new \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet($spreadsheet, 'My Data'); // Attach the "My Data" worksheet as the first worksheet in the Spreadsheet object $spreadsheet->addSheet($myWorkSheet, 0);
インデックスは二番目のパラメータの場所を指定しない場合は、最後の既存のワークシートの後に新しいシートを追加します。
コピー用紙
あなたがコピーして、使用したいワークシートのコピーを作成することによりaddSheet()
、ワークブック挿入のコピーのための方法と同じワークブックのワークシートを複製します。
$clonedWorksheet = clone $spreadsheet->getSheetByName('Worksheet 1');
$clonedWorksheet->setTitle('Copy of Worksheet 1'); $spreadsheet->addSheet($clonedWorksheet);
PhpSpreadsheetは、2つのワークブック間のスタイルをコピーする必要がありますので、これは、より複雑ですが、あなたはまた、1つのブックから別のブックにワークシートをコピーすることができます。addExternalSheet()
提供することを目的と方法を。
$clonedWorksheet = clone $spreadsheet1->getSheetByName('Worksheet 1');
$spreadsheet->addExternalSheet($clonedWorksheet);
どちらの場合も、開発者は、ワークシート名が繰り返されないことを保証する責任があります。ワークシートを複製するためにつながる名をコピーしようとすると、PhpSpreadsheetは例外をスローします。
シートを削除します。
あなたは、次の使用可能removeSheetByIndex()
な方法をそのインデックスロケータによって、ワークブックからワークシートをワークシートを削除します
$sheetIndex = $spreadsheet->getIndex(
$spreadsheet->getSheetByName('Worksheet 1')
);
$spreadsheet->removeSheetByIndex($sheetIndex);
あなたが現在アクティブなワークシートを削除すると、ワークシートのインデックスの前の場所は、ワークシートが現在アクティブであるだろう。