ApachePOIで、セルをコピーするサンプルです。
サンプルソース
例)読み込んだExcelのA1セルの内容をC1セルにコピーする
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.io.InputStream; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; public class PoiSample { public static void main(String[] args) { InputStream is = null; Workbook wb = null; FileOutputStream out = null; try { //Excelファイル読込 is = new FileInputStream("C:¥¥temp¥¥sample.xlsx"); wb = WorkbookFactory.create(is); //コピー元セル(A1)を取得する Sheet sh = wb.getSheetAt(0); //1番目のシートを読み込む Row row = sh.getRow(0); //1行目を読み込む Cell cell = row.getCell(0); //1セル目を読み込む //コピー先セル(C1)にセルをコピーする Cell cell2 = row.createCell(2); //セルを作成する cell2.setCellStyle(cell.getCellStyle()); //コピー元セルのスタイルをセットする cell2.setCellValue(cell.getStringCellValue()); //コピー元セルの値をセットする(型を意識したgetメソッドを使用してください) //Excelファイル出力 out = new FileOutputStream("C:¥¥temp¥¥sample.xlsx"); wb.write(out); } catch (Exception ex) { ex.printStackTrace(); } finally { try { wb.close(); out.close(); } catch (Exception ex2) { ex2.printStackTrace(); } } } } |
備考
- セルのコピーは、スタイルと値を別々にセットする必要があります。
- .xlsx形式、.xls形式どちらのExcelにも対応します。