Javaを使用したExcelでのエクセル

貸借対照表、アカウント情報のダウンロード、税計算、給与明細など、すべてMicrosoftExcelで提供される傾向があります。IT以外の専門家は、データ交換テクノロジとしてMicrosoftExcelを快適に使用できます。Jakarta POI(Poor Obfuscation Implementation)APIは、JavaプログラマーがMicrosoftドキュメント形式にアクセスするための素晴らしい方法です。Jakarta POIの最も成熟したAPIは、Microsoft ExcelドキュメントにアクセスするHSSF(Horrible Spreadsheet Format)APIです。

この記事では、Excelドキュメントを作成して読み取る手順、およびフォントとセルスタイルを使用する手順をすべてJavaを使用して説明します。

注:この記事のすべての例のソースコードは、リソースからダウンロードできます。

POIの用語

JakartaPOIに関連する重要な用語は次のとおりです。

  • POIFS(Poor Obfuscation Implementation File System): OLE(Object Linking and Embedding)2複合ドキュメント形式の読み取りと書き込みのためのJava API
  • HSSF(Horrible Spreadsheet Format): MicrosoftExcelを読み取るためのJavaAPI
  • HDF(Horrible Document Format): Microsoft Word97を読み書きするためのJavaAPI
  • HPSF(Horrible Property Set Format):(のみ)Javaを使用してプロパティセットを読み取るためのJava API

Excelドキュメントを作成する

Jakarta POI APIを使用して、プログラムでExcelドキュメントを作成できます。関連する重要な手順は次のとおりです。

  • ブックを作成します。 HSSFWorkbook workbook = new HSSFWorkbook();
  • ワークブックに新しいワークシートを作成し、ワークシートに「JavaExcels」という名前を付けます。 HSSFSheet sheet = workbook.createSheet("Java Excels");
  • シートに新しい行を作成します。 HSSFRow row = sheet.createRow((short)0);
  • 行にセルを作成します。 HSSFCell cell = row.createCell((short) 0);
  • セルにコンテンツを入力します。 cell.setCellValue("Have a Cup of XL");
  • ワークブックをファイルシステムに書き込みます。 workbook.write(fileOutputStream);

Excelドキュメントからデータを読み取る

この例では、Excelドキュメントから値を読み取る方法を説明します。

これがExcelシートであると仮定しましょう。

従業員名 専門分野 指定
あんぶ プログラミング シニアプログラマー
ジェイソン 銀行業界 ビジネスアナリスト
ラメッシュ データベース DBA
MackyB 会計 デリバリーヘッド

Excelシートを読む際の主な手順は次のとおりです。

  • 新しいExcelドキュメント参照を作成しますHSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));
  • シートを参照してください。デフォルトでは、Excelドキュメントの最初のシートは参照0にありますHSSFSheet sheet = workbook.getSheetAt(0);。シートは名前で参照することもできます。Excelシートのデフォルト名が「Sheet1」であると仮定します。次のように参照できますHSSFSheet sheet = workbook.getSheet("Sheet1");
  • 行を参照してください:HSSFRow row = sheet.getRow(0);
  • 次の行のセルを参照してくださいHSSFCell cell = row.getCell((short)0);
  • そのセルの値を取得しますcell.getStringCellValue();

実用例

ここで、jarファイル内の宣言されたすべてのメソッドとメンバー変数のリストを表示するとします。すべての情報の統合リストを1つのファイルにまとめることが理想的です。クラス名が最初の列にあり、宣言されたフィールドが2番目の列にあり、宣言されたメソッドが3番目の列にあり、列見出しが赤で表示されるように情報を表示します。

プログラムは、次のアクティビティを完了する必要があります。

  • jarファイルを解凍します
  • jarファイル内のすべてのクラスファイルを読み取ります
  • jarファイルにクラスをロードします
  • リフレクションを使用して、宣言されたメソッドとフィールドを取得します
  • Jakarta POIを使用して、クラス情報をExcelシートに書き込みます

JakartaPOIの使用法の興味深いステップだけに集中しましょう。

  • 新しいExcelドキュメントを作成します。 workbook = new HSSFWorkbook();
  • そのドキュメントにワークシートを作成し、ワークシートに名前を付けます。 sheet = workbook.createSheet("Java Class Info");
  • 最初の3列の幅を設定します。 sheet.setColumnWidth((short)0,(short)10000 );
  • ヘッダー行を作成します。 HSSFRow row = sheet.createRow((short)0);
  • フォントとセルスタイルを作成および設定します。
    HSSFFont font = workbook.createFont(); font.setColor(HSSFFont.COLOR_RED); font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); //スタイルを作成しますHSSFCellStylecellStyle = workbook.createCellStyle(); cellStyle.setFont(font);
  • セルスタイルを使用します。
    HSSFCellセル= row.createCell((short)0); cell.setCellStyle(cellStyle); cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setCellValue( "クラス名");
  • 出力ファイルを書き込みます。
    FileOutputStream fOut = new FileOutputStream(outputFile); // Excelシートを作成しますworkbook.write(fOut); fOut.flush(); //取引を完了しました。それを閉じます。fOut.close();

概要

この記事で示されているように、Java開発者はExcelシートのデータにひるむ必要がなくなりました。プログラムでExcelドキュメントにアクセスできます。Javaを一杯飲んで、Excelで優れています!

Elango Sundaramは、分散コンピューティングアーキテクチャ、エージェントベースのテクノロジ、およびオブジェクト指向の方法論に関心を持つ経験豊富なJavaプログラマーです。彼はバージニア工科大学でコンピューターサイエンスの修士号を取得しており、JiniおよびWebsphere Studio Application Developer Tail Plug-in(WSAD 4.0用)を使用して分散コンピューティングを作成しています。

このトピックの詳細

  • この記事に付属のソースコードをダウンロードしてください

    //images.techhive.com/downloads/idge/imported/article/jvw/2004/03/jw-0322-poi.zip

  • ジャカルタPOIウェブサイト

    //jakarta.apache.org/poi/

  • POIの詳細については、「It's POI-fect」、Tony Sintes(JavaWorld、 2002年5月)を参照してください。

    //www.javaworld.com/javaworld/javaqa/2002-05/01-qa-0503-excel3.html

  • その他のJavaツールについては、JavaWorldのトピックインデックスの開発ツール」セクションを参照してください。

    //www.javaworld.com/channel_content/jw-tools-index.shtml

  • オープンソースツールに関するその他の記事については、ErikSwensonのオープンソースプロファイルの列を参照してください。

    //www.javaworld.com/columns/jw-opensource-index.shtml

このストーリー「ExcellinginExcel with Java」は、もともとJavaWorldによって発行されました。