Javaアプリケーション内からExcelを使用して作業しているJavaアプリケーション開発者である場合、アプリケーションでExcelデータを操作する機能を提供することに興味があります。 Excelでは、セルのスタイリングをフォーマットしたり、セルのタイプを異なるデータ型に設定したり、セルを異なる色で埋めるなどしたりできます。 Apache Poiは、JavaとExcelの間の橋を架け、Excel xlsxファイルをプログラムで操作するためのツールを提供します。このブログシリーズでは、JavaのApache Poiを使用してExcel Cell操作の技術を発表します。ダイビングして、コードとスプレッドシートの相乗効果を発見しましょう!

目次

ブログ全体で、コードサンプルと以下の説明を説明します。

  1. Excelファイルでセルを作成します
  2. Excelで日付セルを作成します 3.さまざまな種類のセルを使用します 4.セルの外観の設定

JavaのExcelファイルでセルを操作

excelファイルでセルの作成

//Create Cells
XSSFWorkbook wb = new XSSFWorkbook();
XSSFCreationHelper createHelper = wb.getCreationHelper();
XSSFSheet sheet = wb.createSheet("new sheet");
// Create a row and put some cells in it. Rows are 0 based.
Row row = sheet.createRow(0);
// Create a cell and put a value in it.
Cell cell = row.createCell(0);
cell.setCellValue(1);
row.createCell(1).setCellValue(1.2);
row.createCell(2).setCellValue(createHelper.createRichTextString("This is a string"));
row.createCell(3).setCellValue(true);
// Write the output to a file
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
    wb.write(fileOut);
}

上記のJavaコードスニペットは、Apache POI APIの使用法を示しており、Excelワークブックでセルを操作します。コードは、新しいExcelワークブック(\ **xssfworkbook** \)を作成し、ワークブック内のシートを初期化し、さまざまなタイプのデータにセルに入力します。最初に、コードは「 new Sheet 」という名前の新しいシートを作成します。次に、シート上のインデックス0で行を生成し、その行内のセルを埋めるために進みます。最初のセル(インデックス0)には、\ **setCellValue** \メソッドを使用して1の整数値が割り当てられます。対照的に、2番目のセル(インデックス1)は、\ **createcell** \メソッド内で直接1.2の小数値に設定されます。 3番目のセル(インデックス2)には、\ **createrichTextString** \メソッドを使用して作成された文字列値「This is string」が含まれています。最後に、4番目のセル(インデックス3)には、ブール値「真」が入力されています。セル値が設定された後、コードは、\ **fileoutputStream** \を使用して、「workbook.xlsx」という名前のExcelファイルに結果のワークブックを書き込みます。

作成日タイプセル

XSSFWorkbook wb = new XSSFWorkbook();
//Workbook wb = new XSSFWorkbook();
CreationHelper createHelper = wb.getCreationHelper();
org.apache.poi.ss.usermodel.Sheet sheet = wb.createSheet("new sheet");
// Create a row and put some cells in it. Rows are 0 based.
Row row = sheet.createRow(0);
// Create a cell and put a date value in it.  The first cell is not styled
// as a date.
Cell cell = row.createCell(0);
cell.setCellValue(new Date());
// we style the second cell as a date (and time).  It is important to
// create a new cell style from the workbook otherwise you can end up
// modifying the built in style and effecting not only this cell but other cells.
CellStyle cellStyle = wb.createCellStyle();
cellStyle.setDataFormat(
    createHelper.createDataFormat().getFormat("m/d/yy h:mm"));
cell = row.createCell(1);
cell.setCellValue(new Date());
cell.setCellStyle(cellStyle);
//you can also set date as java.util.Calendar
cell = row.createCell(2);
cell.setCellValue(Calendar.getInstance());
cell.setCellStyle(cellStyle);
// Write the output to a file
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
    wb.write(fileOut);
}

このJavaコードスニペットは、Excelワークブックで日付型セルを操作するためのApache POI APIの使用を紹介します。コードは、新しいExcelワークブック(\ **xssfworkbook** \)を作成することから始まります。 最初のセル(インデックス0)は、日付値を保持することを目的としています。 a \ **date** \現在の日付と時間を表すオブジェクトは、\ **setCellValue** \メソッドを使用してセルの値として設定されます。このセルは、日付として明示的にスタイルされていません。 2番目のセル(インデックス1)の場合、ワークブックの\ createcellstyle \メソッドを使用して、新しいセルスタイル(\ cellstyle \)が作成されます。このスタイルは、\ setDataFormat \メソッドを使用して特定の日付と時刻形式を持つように構成されます。 \ createdataformat()。getFormat(“ m/d/yy h:mm”)\プロセスは、「m/d/yy h:mm」の形式パターンを持つカスタム日付形式を作成します。 2番目のセルには現在の日付と時刻の値が割り当てられ、新しく作成されたセルスタイルは\ setCellStyle \メソッドを使用して適用されます。 3番目のセル(インデックス2)は、\ java.util.calendar \を使用して日付型セルを埋める代替方法を示しています。 2番目のセルと同様に、カスタムセルスタイルもこのセルに適用されます。

さまざまな種類のセルを使用して作業

XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("new sheet");
Row row = sheet.createRow(2);
row.createCell(0).setCellValue(1.1);
row.createCell(1).setCellValue(new Date());
row.createCell(2).setCellValue(Calendar.getInstance());
row.createCell(3).setCellValue("a string");
row.createCell(4).setCellValue(true);
row.createCell(5).setCellType(CellType.ERROR);		// Write the output to a file
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
    wb.write(fileOut);
}

このコードサンプルでは、​​次の手順で説明されているように、Apache POI APIを使用して、Excelファイルのセルに異なるセルスタイルが適用されます。 1.行は、\ **CREATEROW** (2)\を使用してシートのインデックス2で作成されます。次に、セルは次のデータをこの列に入力します。 2.最初のセル(インデックス0)には、\ **setCellValue** \メソッドを使用して1.1の小数値が割り当てられます。 3. 2番目のセル(インデックス1)では、現在の日付と時刻が\ date \オブジェクトを使用して挿入されます。 4. 3番目のセル(インデックス2)には、\ カレンダー\インスタンスからの日付と時刻が含まれています。 5. 4番目のセル(インデックス3)には、テキスト「文字列」が保持されます。 6. 5番目のセル(インデックス4)は、ブール値「真」に指定されています。 7.前進すると、特定のセルタイプが\ **setCellType** \メソッドを呼び出すことにより、6番目のセル(インデックス5)に割り当てられます。このセルは、\ **celltype.error** \列挙を使用してエラーセルとして構成されており、エラー値を表示することを示します。 最後に、変更されたワークブックは、\ **fileoutputStream** \を使用して「workbook.xlsx」という名前のファイルに書き込まれます。要約すると、このコードの例は、Excelワークブックを確立し、さまざまなデータ型に対応するためにさまざまなセルスタイルを適用し、最終的に修正されたワークブックをファイルに保存する方法を示しています。この実用的なイラストは、JavaのExcelファイルを操作するためのApache Poiライブラリの機能を紹介しています。

セルの外観の設定

XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("new sheet");
// Create a row and put some cells in it. Rows are 0 based.
Row row = sheet.createRow(1);
// Aqua background
CellStyle style = wb.createCellStyle();
style.setFillBackgroundColor(IndexedColors.AQUA.getIndex());
style.setFillPattern(FillPatternType.BIG_SPOTS);
Cell cell = row.createCell(1);
cell.setCellValue("X");
cell.setCellStyle(style);
// Orange "foreground", foreground being the fill foreground not the font color.
style = wb.createCellStyle();
style.setFillForegroundColor(IndexedColors.ORANGE.getIndex());
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
cell = row.createCell(2);
cell.setCellValue("X");
cell.setCellStyle(style);
// Write the output to a file
try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) {
    wb.write(fileOut);
}
wb.close();

このコードスニペットは、JavaのApache Poiライブラリを使用してExcelファイルでセルの外観を操作する方法を示しています。これは、次の手順を使用して達成されます。

  1. \ クリーター(1)\を使用して、シートのインデックス1で行が作成されます。この行内のセルに次の変更が行われます。 2.最初のセル(インデックス1)の場合、\ wb.createcellstyle()\を使用してカスタムセルスタイルが作成されます。このスタイルは、\ setFillBackGroundColor \および\ indexedColors.aqua.getIndex()\を使用してAquaの背景色で構成されています。背景のパターンは、\ setFillPattern(fillPatterntype.big_spots)\を使用して「大きなスポット」に設定されています。セルは、インデックス1のこの行に作成され、値「x」で満たされています。以前に作成されたスタイルは、\ setCellStyle \を使用してこのセルに適用されます。
  2. 2番目のセル(インデックス2)の場合、新しいセルスタイルが作成されます。このスタイルは、\ setfillforegroundcolor \および\ indexedColors.orange.getIndex()\を使用してオレンジ色の前景色で設計されています。塗りつぶしパターンは、\ setFillPattern(fillpatterntype.solid_foreground)\を使用して「前景」に設定されています。別のセルは、同じ行のインデックス2で作成され、値「x」が入力されます。新しく生成されたスタイルは、\ setCellStyle \を使用してこのセルに割り当てられます。 セルの外観を構成した後、変更されたワークブックは、\ fileoutputStream \を使用して「workbook.xlsx」という名前のファイルに書き込まれます。 要約すると、このコードの例では、Apache POIライブラリを使用してExcelファイルでセルの外観を操作する方法を示しています。実証されたテクニックには、背景と前景の色を制御するカスタムセルスタイルを作成し、パターンを埋めることができ、Javaを使用して視覚的にカスタマイズするExcelスプレッドシートの柔軟性を提供します。

結論

Apache POIライブラリの上記のすべてのJavaの例では、Javaアプリケーション内からExcelファイルコンテンツを使用する方法を示しました。コードサンプルは、Excelファイルでセルを作成し、これらの外観を設定し、弦、数値、小数などのさまざまなデータ型にセルスタイルを設定する方法、およびセルタイプを日付型に設定する方法を示しました。 JavaにApache Poiを使用してExcelファイルを操作するための例を追加する予定ですので、お楽しみに。

{.wp-block-heading}も参照してください