Apache POI –スプレッドシート
この章では、スプレッドシートを作成し、Javaを使用して操作する方法について説明します。スプレッドシートはExcelファイルのページです。特定の名前の行と列が含まれています。
この章を完了すると、スプレッドシートを作成して読み取り操作を実行できるようになります。
スプレッドシートを作成する
まず、前の章で説明した参照クラスを使用してスプレッドシートを作成しましょう。前の章に従って、最初にワークブックを作成してから、次にシートを作成します。
次のコードスニペットは、スプレッドシートの作成に使用されます。
//Create Blank workbook
XSSFWorkbook workbook = new XSSFWorkbook();
//Create a blank spreadsheet
XSSFSheet spreadsheet = workbook.createSheet("Sheet Name");
スプレッドシートの行
スプレッドシートにはグリッドレイアウトがあります。行と列は特定の名前で識別されます。列はアルファベットで識別され、行は数字で識別されます。
次のコードスニペットは、行を作成するために使用されます。
XSSFRow row = spreadsheet.createRow((short)1);
スプレッドシートに書き込む
従業員データの例を考えてみましょう。ここでは、従業員データが表形式で示されています。
Emp ID | Emp名 | 指定 |
---|---|---|
Tp01 | ゴパル | 技術管理者 |
TP02 | マニシャ | 校正者 |
Tp03 | マサン | テクニカルライター |
Tp04 | サティッシュ | テクニカルライター |
Tp05 | クリシュナ | テクニカルライター |
次のコードは、上記のデータをスプレッドシートに書き込むために使用されます。
import java.io.File;
import java.io.FileOutputStream;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class Writesheet {
public static void main(String[] args) throws Exception {
//Create blank workbook
XSSFWorkbook workbook = new XSSFWorkbook();
//Create a blank sheet
XSSFSheet spreadsheet = workbook.createSheet(" Employee Info ");
//Create row object
XSSFRow row;
//This data needs to be written (Object[])
Map < String, Object[] > empinfo =
new TreeMap < String, Object[] >();
empinfo.put( "1", new Object[] { "EMP ID", "EMP NAME", "DESIGNATION" });
empinfo.put( "2", new Object[] { "tp01", "Gopal", "Technical Manager" });
empinfo.put( "3", new Object[] { "tp02", "Manisha", "Proof Reader" });
empinfo.put( "4", new Object[] { "tp03", "Masthan", "Technical Writer" });
empinfo.put( "5", new Object[] { "tp04", "Satish", "Technical Writer" });
empinfo.put( "6", new Object[] { "tp05", "Krishna", "Technical Writer" });
//Iterate over data and write to sheet
Set < String > keyid = empinfo.keySet();
int rowid = 0;
for (String key : keyid) {
row = spreadsheet.createRow(rowid++);
Object [] objectArr = empinfo.get(key);
int cellid = 0;
for (Object obj : objectArr) {
Cell cell = row.createCell(cellid++);
cell.setCellValue((String)obj);
}
}
//Write the workbook in file system
FileOutputStream out = new FileOutputStream(new File("Writesheet.xlsx"));
workbook.write(out);
out.close();
System.out.println("Writesheet.xlsx written successfully");
}
}
上記のJavaコードを次のように保存します Writesheet.java、次に、次のようにコマンドプロンプトからコンパイルして実行します-
$javac Writesheet.java
$java Writesheet
コンパイルして実行し、という名前のExcelファイルを生成します Writesheet.xlsx 現在のディレクトリにあると、コマンドプロンプトに次の出力が表示されます。
Writesheet.xlsx written successfully
ザ・ Writesheet.xlsx ファイルは次のようになります。
スプレッドシートから読む
上記のExcelファイルという名前のファイルを考えてみましょう Writesheet.xslx入力として。次のコードを確認してください。スプレッドシートからデータを読み取るために使用されます。
import java.io.File;
import java.io.FileInputStream;
import java.util.Iterator;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class Readsheet {
static XSSFRow row;
public static void main(String[] args) throws Exception {
FileInputStream fis = new FileInputStream(new File("WriteSheet.xlsx"));
XSSFWorkbook workbook = new XSSFWorkbook(fis);
XSSFSheet spreadsheet = workbook.getSheetAt(0);
Iterator < Row > rowIterator = spreadsheet.iterator();
while (rowIterator.hasNext()) {
row = (XSSFRow) rowIterator.next();
Iterator < Cell > cellIterator = row.cellIterator();
while ( cellIterator.hasNext()) {
Cell cell = cellIterator.next();
switch (cell.getCellType()) {
case Cell.CELL_TYPE_NUMERIC:
System.out.print(cell.getNumericCellValue() + " \t\t ");
break;
case Cell.CELL_TYPE_STRING:
System.out.print(
cell.getStringCellValue() + " \t\t ");
break;
}
}
System.out.println();
}
fis.close();
}
}
上記のコードを保持しましょう Readsheet.java ファイルを作成し、次のようにコマンドプロンプトからコンパイルして実行します-
$javac Readsheet.java
$java Readsheet
システム環境がPOIライブラリで構成されている場合、POIライブラリはコンパイルおよび実行され、コマンドプロンプトで次の出力を生成します。
EMP ID EMP NAME DESIGNATION
tp01 Gopal Technical Manager
tp02 Manisha Proof Reader
tp03 Masthan Technical Writer
tp04 Satish Technical Writer
tp05 Krishna Technical Writer