- ベストアンサー
java excel書き込みについて
現在、poiで日報システムを作成しております。 入力されたデータはexcelに出力されるような処理をしました。 日報を入力し、ボタンを押されるたびに既存のexcelファイルに上書きされるようにしたいです。 前回が1行目だった場合は今回2行目、次は3行目というようにしていきたいです。 このためにexcelを読み込んで、空白セルを確認する処理をすればいいのでしょうが、試行錯誤してもうまく行きません。 ご教授いただければと思います。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
試行錯誤したソースプリーズ。 そのソースがあったほうがアドバイスしやすい。
お礼
新規で質問立てさせていただきます。 宜しくお願い致します。
補足
現状ではソースを削除してしまった状態です。 申し訳ございません。 現状ではボタンが押されるとエクセルが作成される関数が完成しています。 ボタンクリックイベントに下記関数を読み込んでいます。 public void ExcelOutput() { Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); Row head = sheet.createRow(0); Row contents = sheet.createRow(1); Cell head1 = head.createCell(0); Cell head2 = head.createCell(1); Cell head3 = head.createCell(2); Cell head4 = head.createCell(3); Cell head5 = head.createCell(4); head1.setCellValue("名前"); head2.setCellValue("会社"); head3.setCellValue("日付"); CellStyle styleHead = wb.createCellStyle(); styleHead.setFillPattern(CellStyle.SOLID_FOREGROUND); styleHead.setFillForegroundColor(IndexedColors.RED.getIndex()); head1.setCellStyle(styleHead); head2.setCellStyle(styleHead); head3.setCellStyle(styleHead); Cell contents1 = contents.createCell(0); Cell contents2 = contents.createCell(1); Cell contents3 = contents.createCell(2); contents1.setCellValue(aInput.getText()); contents2.setCellValue(bInput.getText()); // Calendar.YEAR等で変数に代入しています contents3.setCellValue(year + "/" + month + "/" + date); FileOutputStream out = null; try{ out = new FileOutputStream("sample.xls"); wb.write(out); }catch(IOException e){ //System.out.println(e.toString()); }finally{ try { out.close(); }catch(IOException e){ //System.out.println(e.toString()); } } } この状態のままだとボタンを押すたび1行目から上書きされてしまうため、 次にボタンが押されると3行目から上書きというようにしたいと思っています。 よろしくお願いいたします。