Javada Excel İşlemleri

Merhaba arkadaşlar bugun yapmış olduğum işte kullanmak zorunda kaldığım bir yapıyı sizle paylaşmak istiyorum…

1. POI Jar kütüphanesini projeye eklemekle başlıyoruz
2. Excel Okuma
-İlk olarak File İnpıt Stream ile dosyaya erişim sağlanmalıdır.
-workbook nesnesi oluşturulmalı (excel dosyası anlamına gelmektedir POI tarafında)
-sheet nesnesi (excel içersinde 1 den fazla sayfa yapısı oldugundan işlem yapacagınız sayfa)
-İterator Satır / hücre ayraçları

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

//..

FileInputStream file = new FileInputStream(new File(“C:\test.xls”));

           

HSSFWorkbook workbook = new HSSFWorkbook(file);

HSSFSheet sheet = workbook.getSheetAt(0);

Iterator<Row> rowIterator = sheet.iterator();

Iterator<Cell> cellIterator = row.cellIterator();

try {

   

    FileInputStream file = new FileInputStream(new File(“C:\test.xls”));

   

    HSSFWorkbook workbook = new HSSFWorkbook(file);

    HSSFSheet sheet = workbook.getSheetAt(0);

   

    Iterator<Row> rowIterator = sheet.iterator();

    while(rowIterator.hasNext()) {

        Row row = rowIterator.next();

       

        Iterator<Cell> cellIterator = row.cellIterator();

        while(cellIterator.hasNext()) {

           

            Cell cell = cellIterator.next();

           

            switch(cell.getCellType()) {

                case Cell.CELL_TYPE_BOOLEAN:

                    System.out.print(cell.getBooleanCellValue() + “tt”);

                    break;

                case Cell.CELL_TYPE_NUMERIC:

                    System.out.print(cell.getNumericCellValue() + “tt”);

                    break;

                case Cell.CELL_TYPE_STRING:

                    System.out.print(cell.getStringCellValue() + “tt”);

                    break;

            }

        }

        System.out.println(“”);

    }

    file.close();

    FileOutputStream out =

        new FileOutputStream(new File(“C:\test.xls”));

    workbook.write(out);

    out.close();

   

} catch (FileNotFoundException e) {

    e.printStackTrace();

} catch (IOException e) {

    e.printStackTrace();

}

Çıktı:

Emp Id      Name        Salary    

1.0     John        2000000.0    

2.0     Dean        420000.0      

3.0     Sam     280000.0      

4.0     Cass        6000000.0

3. Yeni Excel Oluşturma
Aşağğıdaki yapı ile bir excel oluşturup içine veri yazabiliriz.

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

//..

HSSFWorkbook workbook = new HSSFWorkbook();

HSSFSheet sheet = workbook.createSheet(“Sample Sheet”);

Row row = sheet.createRow(0);

Cell cell = row.createCell(0);

cell.setCellValue(“Test

HSSFWorkbook workbook = new HSSFWorkbook();

HSSFSheet sheet = workbook.createSheet(“Sample Sheet”);

Map<String, Object[]> data = new HashMap<String, Object[]>();

data.put(“1”, new Object[] {“Emp No.”, “Name”, “Salary”});

data.put(“2”, new Object[] {1d, “John”, 1500000d});

data.put(“3”, new Object[] {2d, “Sam”, 800000d});

data.put(“4”, new Object[] {3d, “Dean”, 700000d});

Set<String> keyset = data.keySet();

int rownum = 0;

for (String key : keyset) {

    Row row = sheet.createRow(rownum++);

    Object [] objArr = data.get(key);

    int cellnum = 0;

    for (Object obj : objArr) {

        Cell cell = row.createCell(cellnum++);

        if(obj instanceof Date)

            cell.setCellValue((Date)obj);

        else if(obj instanceof Boolean)

            cell.setCellValue((Boolean)obj);

        else if(obj instanceof String)

            cell.setCellValue((String)obj);

        else if(obj instanceof Double)

            cell.setCellValue((Double)obj);

    }

}

try {

    FileOutputStream out =

            new FileOutputStream(new File(“C:\test2.xls”));

    workbook.write(out);

    out.close();

    System.out.println(“Excel yazıldı..”);

   

} catch (FileNotFoundException e) {

    e.printStackTrace();

} catch (IOException e) {

    e.printStackTrace();

}

4. Var olan Excel dosyaya veri girişi

try {

    FileInputStream file = new FileInputStream(new File(“C:\test3.xls”));

    HSSFWorkbook workbook = new HSSFWorkbook(file);

    HSSFSheet sheet = workbook.getSheetAt(0);

    Cell cell = null;

 

    cell = sheet.getRow(1).getCell(2);

    cell.setCellValue(cell.getNumericCellValue() * 2);

    cell = sheet.getRow(2).getCell(2);

    cell.setCellValue(cell.getNumericCellValue() * 2);

    cell = sheet.getRow(3).getCell(2);

    cell.setCellValue(cell.getNumericCellValue() * 2);

   

    file.close();

   

    FileOutputStream outFile =new FileOutputStream(new File(“C:\test3.xls”));

    workbook.write(outFile);

    outFile.close();

   

} catch (FileNotFoundException e) {

    e.printStackTrace();

} catch (IOException e) {

    e.printStackTrace();

}

Adımlar:
Dosyayı oku (inputstream)
POI API ile oku
veriyi güncelle setCellValue methoduyla
Exceli kapat (inputstream)

İyi günlerde kullanmanız dileğiyle…

Ramazan CESUR…