PHPでExcelファイルを作成する

スプレッドシートは、データの保持、整理、分析に欠かせない要素になっています。最近では自動化されたソリューションのビジネスが進んでいるため、Excelドキュメント(XLS / XLSX)を作成および操作する傾向が現れ、急速に成長しています。上記のシナリオに従って、この記事では、PHPベースのWebアプリケーションでExcelXLSXまたはXLSファイルを作成する方法について説明します。

Excelファイルを作成するためのPHPAPI

PHPベースのWebアプリケーションでExcelファイルを作成および操作するには、Aspose.Cells for PHP via Javaを使用します。これは、Excel自動化のための幅広い機能を提供する強力なAPIです。 APIパッケージはこちらからダウンロードできます。

使用法

以下は、Javaを介してPHP用のAspose.Cellsを使用するために満たす必要のある前提条件です。

前提条件を完了したら、以下の手順に従って、テスト用にexample.phpファイルを実行します。

  1. ダウンロードしたAPIのパッケージのルートフォルダにJava.incファイルを配置します。
  2. コマンドプロンプトで以下のコマンドを使用してJavaBridge.jarを実行します。
    • cd aspose.cells

    • %JAVAHOME%\bin\java -Djava.ext.dirs = lib -jar JavaBridge.jar SERVLETLOCAL:8080

  3. 以下のコマンドを使用して、APIのルートフォルダーからexample.phpを実行します。
    • php example.php

PHPを使用してExcelXLSまたはXLSXファイルを作成する

以下は、PHPを使用してExcel XLSX/XLSファイルを作成する手順です。

次のコードサンプルは、PHPを使用してExcelXLSXファイルを作成する方法を示しています。

require_once("http://localhost:8080/JavaBridge/java/Java.inc");
require_once("aspose.cells.php");

use aspose\cells;

// ブッククラスのオブジェクトを作成する
$workbook = new cells\Workbook();

// ワークシートにアクセスする
$sheets = $workbook->getWorksheets();

// 目的のワークシートのセルにアクセスします
$cells = $sheets->get(0)->getCells();

// セルに値を挿入します
$cells->get("A1")->putValue("Hello world!");

// Excelファイルを保存します
$workbook->save("output.xlsx", cells\SaveFormat::XLSX);

PHPを使用して既存のExcelファイルにデータを書き込む

前のセクションでは、Excelファイルを最初から作成しました。それでは、既存のExcelファイルを編集してデータを挿入しましょう。以下は、Java経由でPHP用のAspose.Cellsを使用してXLSXファイルにデータを書き込む手順です。

次のコードサンプルは、PHPを使用してExcelファイルを変更してデータを書き込む方法を示しています。

// ワークブッククラスのオブジェクトを作成してExcelファイルをロードします
$workbook = new cells\Workbook("workbook.xlsx");

// ワークシートにアクセスする
$sheets = $workbook->getWorksheets();

// 目的のワークシートのセルにアクセスします
$cells = $sheets->get(0)->getCells();

// セルに値を挿入します
$cells->get("A1")->putValue("Hello world!");

// Excelファイルを保存します
$workbook->save("updated.xlsx");

PHPを使用してExcelファイルにグラフを作成する

以下は、PHPを使用してExcelファイルにグラフを作成する手順です。

  • Workbookクラスを使用して、新しいExcelファイルを作成するか、既存のファイルをロードします。
  • 新しいワークブックが作成された場合は、ワークシートにデータを追加します。
  • $worksheet->getCharts()メソッドを使用して、ワークシートのチャートコレクションを取得します。
  • $worksheet->getCharts()->add()メソッドを使用して新しいグラフを追加します。
  • コレクションから新しく作成したチャートを取得します。
  • セルの範囲を指定して、グラフのNSeriesを設定します。
  • $workbook->save(“output.xlsx”, cells\SaveFormat::XLSX)メソッドを使用して、ブックをExcel.xlsxファイルとして保存します。

次のコードサンプルは、PHPのExcelファイルでグラフを作成する方法を示しています。

// Excelファイルをロードします
$workbook = new Workbook("Book2.xlsx");

// 最初のワークシートの参照を取得します
$worksheets = $workbook->getWorksheets();
$sheet = $worksheets->get(0);

// セルにサンプル値を追加する
$cells = $sheet->getCells();
$cell = $cells->get("A1");
$cell->setValue(50);
$cell = $cells->get("A2");
$cell->setValue(100);
$cell = $cells->get("A3");
$cell->setValue(150);
$cell = $cells->get("B1");
$cell->setValue(4);
$cell = $cells->get("B2");
$cell->setValue(20);
$cell = $cells->get("B3");
$cell->setValue(50);

// ワークシートでグラフを取得する
$charts = $sheet->getCharts();

// ワークシートにグラフを追加する
$chartIndex = $charts->add(ChartType::PYRAMID, 5, 0, 15, 5);
$chart = $charts->get($chartIndex);

// 「A1」の範囲のグラフにNSeries(グラフデータソース)を追加します
// 「B3」へのセル
$serieses = $chart->getNSeries();
$serieses->add("A1:B3", true);

// Excelファイルを書く 
$workbook.save("Excel_with_Chart.xlsx");

PHPを使用してExcelファイルにピボットテーブルを作成する

Excelワークシートのピボットテーブルは、データへのフィルターの追加、合計の計算、データの要約などに使用されます。ピボットテーブルは、ワークシートのセルの範囲を使用して作成できます。以下は、PHPを使用してExcelワークシートにピボットテーブルを作成する手順です。

次のコードサンプルは、PHPを使用してExcelでピボットテーブルを作成する方法を示しています。

// 変換するドキュメントをロードします
$workbook = new Workbook("Book2.xlsx");

// 最初のワークシートの参照を取得します
$worksheets = $workbook->getWorksheets();
$sheet = $worksheets->get(0);

// セルにサンプル値を追加する
$cells = $sheet->getCells();
$cell->setValue("Sport");
$cell = $cells->get("B1");
$cell->setValue("Quarter");
$cell = $cells->get("C1");
$cell->setValue("Sales");

$cell = $cells->get("A2");
$cell->setValue("Golf");
$cell = $cells->get("A3");
$cell->setValue("Golf");
$cell = $cells->get("A4");
$cell->setValue("Tennis");
$cell = $cells->get("A5");
$cell->setValue("Tennis");
$cell = $cells->get("A6");
$cell->setValue("Tennis");
$cell = $cells->get("A7");
$cell->setValue("Tennis");
$cell = $cells->get("A8");
$cell->setValue("Golf");

$cell = $cells->get("B2");
$cell->setValue("Qtr3");
$cell = $cells->get("B3");
$cell->setValue("Qtr4");
$cell = $cells->get("B4");
$cell->setValue("Qtr3");
$cell = $cells->get("B5");
$cell->setValue("Qtr4");
$cell = $cells->get("B6");
$cell->setValue("Qtr3");
$cell = $cells->get("B7");
$cell->setValue("Qtr4");
$cell = $cells->get("B8");
$cell->setValue("Qtr3");

$cell = $cells->get("C2");
$cell->setValue(1500);
$cell = $cells->get("C3");
$cell->setValue(2000);
$cell = $cells->get("C4");
$cell->setValue(600);
$cell = $cells->get("C5");
$cell->setValue(1500);
$cell = $cells->get("C6");
$cell->setValue(4070);
$cell = $cells->get("C7");
$cell->setValue(5000);
$cell = $cells->get("C8");
$cell->setValue(6430);

// ピボットテーブルを取得する
$pivotTables = $sheet->getPivotTables();

// ワークシートにピボットテーブルを追加します
$index = $pivotTables->add("=A1:C8", "E3", "PivotTable2");

// 新しく追加されたピボットテーブルのインスタンスにアクセスします
$pivotTable = $pivotTables->get($index);

// 行の総計を表示しない
$pivotTable->setRowGrand(false);

// 最初のフィールドを行領域にドラッグします
$pivotTable->addFieldToArea(PivotFieldType::ROW, 0);

// 2番目のフィールドを列領域にドラッグします
$pivotTable->addFieldToArea(PivotFieldType::COLUMN, 1);

// 3番目のフィールドをデータ領域にドラッグします
$pivotTable->addFieldToArea(PivotFieldType::DATA, 2);

// Excelファイルを書く
$workbook.save("Excel_with_Table.xlsx");

無料のAPIライセンスを取得する

一時ライセンスを使用すると、評価の制限なしにAPIを無料で使用できます。

結論

この記事では、PHPを使用してExcelファイルを最初から作成する方法を学びました。さらに、既存のExcelファイルにデータを書き込み、グラフや表を生成する方法を見てきました。 ドキュメントを使用して、PHPExcelAPIの詳細を調べることができます。ご不明な点がございましたら、フォーラムからお気軽にお問い合わせください。

関連項目