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シートであると仮定しましょう。
|
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によって発行されました。