Java でExcel を操作することはできないかと探し
以下を参考にしました。
http://www.javadrive.jp/poi/
POIのバージョンは、この時点での最新バージョンで
ある、3.8-beta4を使用しました。
はじめLinuxのJavaの環境でやってみたのですが、
「許可がありません」というメッセージがでてコンパイル
できませんでした。
ただWindowsの環境で動作することが確認できました
ので、いいかなと思っています。
サンプルソース(testというシートを作成する)
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class sample{
public static void main(String[] args){
HSSFWorkbook workbook = new HSSFWorkbook();
workbook.createSheet("test");
FileOutputStream out = null;
try{
out = new FileOutputStream("sample.xls");
workbook.write(out);
}catch(IOException e){
System.out.println(e.toString());
}finally{
try {
out.close();
}catch(IOException e){
System.out.println(e.toString());
}
}
}
}
サンプル2(sample2_1.xlsというファイルを作成する。)
import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Workbook; import java.io.*; public class Sample2_1{ public static void main(String[] args){ Workbook wb = new HSSFWorkbook(); FileOutputStream out = null; try{ out = new FileOutputStream("sample2_1.xls"); wb.write(out); }catch(IOException e){ System.out.println(e.toString()); }finally{ try { out.close(); }catch(IOException e){ System.out.println(e.toString()); } } } }
Excelファイルを編集するサンプル。sample2_2.xls を読み出して、左から6列について、2行めに値が入っていたら3行めにCHeck! と記入します。その後sample2_3.xls という名前で保存します。
//import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.WorkbookFactory; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import java.io.*; public class Sample2_2{ public static void main(String[] args){ FileInputStream in = null; Workbook wb = null; try{ in = new FileInputStream("sample2_2.xls"); wb = WorkbookFactory.create(in); }catch(IOException e){ System.out.println(e.toString()); }catch(InvalidFormatException e){ System.out.println(e.toString()); }finally{ try{ in.close(); }catch (IOException e){ System.out.println(e.toString()); } } Sheet sheet = wb.getSheetAt(0); Row row1 = sheet.getRow(1); Row row2 = sheet.createRow(2); for (int i = 0 ; i < 6 ; i++){ Cell cell = row1.getCell(i); if (cell != null){ row2.createCell(i).setCellValue("Check!"); System.out.println(cell); } } FileOutputStream out = null; try{ out = new FileOutputStream("sample2_3.xls"); wb.write(out); }catch(IOException e){ System.out.println(e.toString()); }finally{ try { out.close(); }catch(IOException e){ System.out.println(e.toString()); } } } }
0 件のコメント:
コメントを投稿