解説動画
今回は、Apache POIを使って、Excelシートを書き換えるアプリケーションを作成します。
雛形になるExcelファイルを元に、定型レポートを作ります。
■動画はこちら
■Youtube版の解説で使用しているソースコード
動画と一緒にこちらも参考にどうぞ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.Calendar; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; public class ExcelReportTest { public static void main(String[] args) { //ワークブックを開く try(FileInputStream fis = new FileInputStream("d:\\work\\テンプレート.xlsx"); FileOutputStream fos = new FileOutputStream("d:\\work\\週間_戦国武将人気トップ3.xlsx"); Workbook workbook = WorkbookFactory.create(fis)){ Sheet sheet = workbook.getSheetAt(0); //集計期間(FROM=C6(5,2) TO=C8(7,2)) Calendar cFrom = Calendar.getInstance(); cFrom.set(2023, 8, 15); sheet.getRow(5).getCell(2).setCellValue(cFrom); Calendar cTo = Calendar.getInstance(); cTo.set(2023, 8, 21); sheet.getRow(7).getCell(2).setCellValue(cTo); //ランキング(人名=F7:F9(6,5):(8,5) 得票数=G7:G9(6,6):(8,6) 前回順位=H7:H9(6,7):(8,7)) sheet.getRow(6).getCell(5).setCellValue("武田信玄"); sheet.getRow(6).getCell(6).setCellValue(3564); sheet.getRow(6).getCell(7).setCellValue(3); sheet.getRow(7).getCell(5).setCellValue("上杉謙信"); sheet.getRow(7).getCell(6).setCellValue(2864); sheet.getRow(7).getCell(7).setCellValue(1); sheet.getRow(8).getCell(5).setCellValue("織田信長"); sheet.getRow(8).getCell(6).setCellValue(1588); sheet.getRow(8).getCell(7).setBlank(); //エクセルファイルを書き込み workbook.write(fos); } catch (Exception e) { e.printStackTrace(); } } } |