Öncelikle bu adresten kütüphaneyi indirin ve projenize dahil edin. Ben 3.10 sürümünü kullanmaktayım.
#ÖNEMLİ :
Excel dosyalarıyla işlem yaparken kullanacağımız sınıflar, kullandığımız excel formatına göre farklılıklar gösterecek.
Eğer xls(Excel 97-2003) uzantılı dosyalarla çalışacaksanız HSSF etiketine sahip sınıflarla, xlsx uzantısındaki dosyalarda ise XSSF etiketine sahip sınıflarla çalışmalısınız.
Burada her iki format için de kullanımı göreceksiniz. Zaten sadece sınıfların başındaki HSSF kısmını XSSF olarak değiştireceğiz hepsi bu.
1. Apache POI Kullanarak XLS Uzantılı Excel Dosyalarını Okumak
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Iterator; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; public class Test { public static void main(String[] args) { try { //Excel Dosya Yolu FileInputStream file = new FileInputStream(new File("K:\\personel.xls")); // Excel Dosyamizi Temsil Eden Workbook Nesnesi HSSFWorkbook workbook = new HSSFWorkbook(file); // Excel Dosyasının Hangi Sayfası İle Çalışacağımızı Seçelim. HSSFSheet sheet = workbook.getSheetAt(0); // Belirledigimiz sayfa icerisinde tum satirlari tek tek dolasacak // iterator nesnesi IteratorrowIterator = sheet.iterator(); // Okunacak Satir Oldugu Surece while (rowIterator.hasNext()) { // Excel içerisindeki satiri temsil eden nesne Row row = rowIterator.next(); // Her bir satir icin tum hucreleri dolasacak iterator nesnesi Iterator
cellIterator = row.cellIterator(); while (cellIterator.hasNext()) { // Excel icerisindeki hucreyi temsil eden nesne Cell cell = cellIterator.next(); // Hucrede bulunan deger turunu kontrol et switch (cell.getCellType()) { case Cell.CELL_TYPE_NUMERIC: System.out.print("\tPersonel Maaş : "+ cell.getNumericCellValue() +"\n"); break; case Cell.CELL_TYPE_STRING: System.out.print("Personel Ad : "+ cell.getStringCellValue()); break; } } } file.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } |
#ÇIKTI :
Personel Ad : Kemal Soydar Personel Maaş : 1200.0
Personel Ad : Hale Yeşiler Personel Maaş : 2500.0
Personel Ad : Şenol Baht Personel Maaş : 3000.0
2. Apache POI Kullanarak XLSX Uzantılı Excel Dosyalarını Okumak
Önceden de belirttiğimiz gibi sadece HSSF yazdığınız kısımları XSSF olarak değiştirerek işleminizi xlsx dosyaları üzerinde gerçekleştirebileceksiniz.import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Iterator; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class Test { public static void main(String[] args) { try { //Excel Dosya Yolu FileInputStream file = new FileInputStream(new File("K:\\personel.xlsx")); // Excel Dosyamizi Temsil Eden Workbook Nesnesi XSSFWorkbook workbook = new XSSFWorkbook(file); // Excel Dosyasının Hangi Sayfası İle Çalışacağımızı Seçelim. XSSFSheet sheet = workbook.getSheetAt(0); // Belirledigimiz sayfa icerisinde tum satirlari tek tek dolasacak // iterator nesnesi Iterator#KAYNAKLAR#rowIterator = sheet.iterator(); // Okunacak Satir Oldugu Surece while (rowIterator.hasNext()) { // Excel içerisindeki satiri temsil eden nesne Row row = rowIterator.next(); // Her bir satir icin tum hucreleri dolasacak iterator nesnesi Iterator
cellIterator = row.cellIterator(); while (cellIterator.hasNext()) { // Excel icerisindeki hucreyi temsil eden nesne Cell cell = cellIterator.next(); // Hucrede bulunan deger turunu kontrol et switch (cell.getCellType()) { case Cell.CELL_TYPE_NUMERIC: System.out.print("\tPersonel Maaş : "+ cell.getNumericCellValue() +"\n"); break; case Cell.CELL_TYPE_STRING: System.out.print("Personel Ad : "+ cell.getStringCellValue()); break; } } } file.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } |
Aşağıdaki adreslerde bu gibi örnekler ve daha fazlasını bulabilirsiniz. Burada paylaşılan yazı ve örnekler kendimce bulduğum ve hazırladığım notlardır.
http://howtodoinjava.com/2013/06/19/readingwriting-excel-files-in-java-poi-tutorial/
http://poi.apache.org/spreadsheet/quick-guide.html
0 yorum:
Yorum Gönder