package info.typea.sample.poi.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
public class POITest {
public static void main(String[] args) {
try {
POITest me = new POITest();
File f = new File("c:\\work\\poi.xls");
if (!f.exists()) {
// Bookを作成
me.createNewWorkBook(f);
// Sheetを追加
String[] sheets = {"POIにより追加(1)","POIにより追加(2)"};
for (String s : sheets) {
me.addNewWorkSheet(f, s);
}
}
String[][] data = {
{"A1", "B1" , "C1" , "D", "E"}
,{"A2", "B2" , "C2" , "D1"}
,{"A3", "B3" }
,{"A4", }
};
me.writeTableData(f, 0, data);
System.out.println("finish.");
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* ワークブックの作成
* @param file
* @throws Exception
*/
public void createNewWorkBook(File file) throws Exception {
FileOutputStream out = new FileOutputStream(file);
HSSFWorkbook wb = new HSSFWorkbook();
wb.write(out);
out.close();
}
/**
* シートの追加
* @param file
* @param shtName
* @throws Exception
*/
public void addNewWorkSheet(File file, String shtName) throws Exception {
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(file));
HSSFWorkbook wb = new HSSFWorkbook(fs);
wb.createSheet(shtName);
FileOutputStream out = new FileOutputStream(file);
wb.write(out);
out.close();
}
/**
* セルを作成し、データの書き込み
* @param file
* @param shtId
* @param data
* @throws Exception
*/
public void writeTableData(File file, int shtId, String[][] data) throws Exception {
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(file));
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sht = wb.getSheetAt(shtId);
int r=0;
for (String[] row : data) {
HSSFRow xlsrow = sht.createRow(r++);
short c=0;
for (String col : row) {
HSSFCell xlscell = xlsrow.createCell(c++);
xlscell.setCellValue(new HSSFRichTextString(col));
}
}
FileOutputStream out = new FileOutputStream(file);
wb.write(out);
out.close();
}
}
YAGI Hiroto (piroto@a-net.email.ne.jp)
twitter http://twitter.com/pppiroto
Copyright© 矢木 浩人 All Rights Reserved.