logo

Java'da Excel Dosyası Nasıl Okunur?

Bu bölümde excel dosyasındaki verileri nasıl okuyabileceğimizi öğreneceğiz.

sinema oyuncusu kajal

Java'da excel dosyasını okumak, excel dosyasındaki hücreler nedeniyle word dosyasını okumaya benzemez. JDK, Microsoft Excel veya Word belgesini okumak veya yazmak için doğrudan API sağlamaz. Apache POI olan üçüncü taraf kütüphaneye güvenmek zorundayız.

Apache POI nedir?

Apache İÇN'si (Zayıf Gizleme Uygulaması), Microsoft Belgelerini her iki biçimde de okumak ve yazmak için kullanılan bir Java API'sidir. .xls Ve .xlsx . Sınıfları ve arayüzleri içerir. Apache POI kitaplığı, excel dosyalarını okumak için iki uygulama sağlar:

    HSSF (Korkunç Elektronik Tablo Formatı) Uygulaması:Excel 2003 veya önceki sürümlerle çalışan bir API'yi belirtir.XSSF (XML Elektronik Tablo Formatı) Uygulaması:Excel 2007 veya sonraki sürümlerle çalışan bir API'yi belirtir.

Apache POI'de Arayüzler ve Sınıflar

Arayüzler

    Çalışma kitabı:Bir şeyi temsil ediyor Excel Çalışma Kitabı . tarafından uygulanan bir arayüzdür. HSSFÇalışma Kitabı Ve XSSFÇalışma Kitabı .Çarşaf:temsil eden bir arayüzdür. Excel çalışma sayfası . Sayfa, çalışma kitabının hücre ızgarasını temsil eden merkezi yapısıdır. Sayfa arayüzü genişletiliyor java.lang.Yinelenebilir .Sıra:Aynı zamanda temsil eden bir arayüzdür. sıra elektronik tablonun. Satır arayüzü genişletiliyor java.lang.Yinelenebilir . İki somut sınıf vardır: HSSFRow Ve XSSFSatır .Hücre:Bu bir arayüzdür. Bu, bir şeyin üst düzey bir temsilidir. hücre e-tablonun bir satırında. HSSFCücresi Ve XSSFCücre Hücre arayüzünü uygulayın.

Sınıflar

XLS Sınıfları

    HSSFÇalışma Kitabı:XLS dosyasını temsil eden bir sınıftır.HSSF Sayfası:Bir XLS dosyasındaki sayfayı temsil eden bir sınıftır.HSSFRaze:XLS dosyasının sayfasındaki bir satırı temsil eden bir sınıftır.HSSFCücresi:XLS dosyasındaki bir satırdaki hücreyi temsil eden bir sınıftır.

XLSX Sınıfları

    XSSFÇalışma Kitabı:XLSX dosyasını temsil eden bir sınıftır.XSSF Sayfası:Bir XLSX dosyasındaki sayfayı temsil eden bir sınıftır.XSSF Satır:XLSX dosyasının sayfasındaki bir satırı temsil eden bir sınıftır.XSSFCücresi:XLSX dosyasındaki bir satırdaki hücreyi temsil eden bir sınıftır.

XLS dosyasından veri okuma adımları

Aşama 1: Eclipse'de basit bir Java projesi oluşturun.

Adım 2: Şimdi projede bir lib klasörü oluşturun.

Aşama 3: Aşağıdaki jar dosyalarını indirip lib klasörüne ekleyin:

Adım 4: Sınıf Yolunu Ayarlayın:

Projeye sağ tıklayın -> Yol Oluştur -> Harici JAR Ekle -> yukarıdaki tüm jar dosyalarını seçin -> Uygula ve kapatın.

Adım 5: Şimdi isimli bir sınıf dosyası oluşturun ExcelFileDemo'yu Okuyun ve dosyanın içerisine aşağıdaki kodu yazın.

Adım 6: 'Student.xls' adında bir excel dosyası oluşturun ve içine bazı veriler yazın.


Java'da Excel Dosyası Nasıl Okunur?

Adım 7: Programı kaydedip çalıştırın.

Excel dosyası (.xls) dosyasını okuma örneği

 import java.io.File; import java.io.FileInputStream; import java.io.IOException; 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.FormulaEvaluator; import org.apache.poi.ss.usermodel.Row; public class ReadExcelFileDemo { public static void main(String args[]) throws IOException { //obtaining input bytes from a file FileInputStream fis=new FileInputStream(new File('C:\demo\student.xls')); //creating workbook instance that refers to .xls file HSSFWorkbook wb=new HSSFWorkbook(fis); //creating a Sheet object to retrieve the object HSSFSheet sheet=wb.getSheetAt(0); //evaluating cell type FormulaEvaluator formulaEvaluator=wb.getCreationHelper().createFormulaEvaluator(); for(Row row: sheet) //iteration over row using for each loop { for(Cell cell: row) //iteration over cell using for each loop { switch(formulaEvaluator.evaluateInCell(cell).getCellType()) { case Cell.CELL_TYPE_NUMERIC: //field that represents numeric cell type //getting the value of the cell as a number System.out.print(cell.getNumericCellValue()+ '		'); break; case Cell.CELL_TYPE_STRING: //field that represents string cell type //getting the value of the cell as a string System.out.print(cell.getStringCellValue()+ '		'); break; } } System.out.println(); } } } 

Çıktı:

ikili arama algoritması
 Name Age Height Swarit 23.0 5' Puneet 25.0 6'1' Swastik 22.0 5'5' Tejas 12.0 4'9' 

XLSX Dosyasını Okuma

Dosya formatı dışında tüm adımlar aynı kalacaktır.

Masa: çalışan.xslx


Java'da Excel Dosyası Nasıl Okunur?

Excel dosyasını okuma örneği (.xlsx)

Bu örnekte XSSFWorkbook sınıfını kullanıyoruz.

 import java.io.File; import java.io.FileInputStream; 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 XLSXReaderExample { public static void main(String[] args) { try { File file = new File('C:\demo\employee.xlsx'); //creating a new file instance FileInputStream fis = new FileInputStream(file); //obtaining bytes from the file //creating Workbook instance that refers to .xlsx file XSSFWorkbook wb = new XSSFWorkbook(fis); XSSFSheet sheet = wb.getSheetAt(0); //creating a Sheet object to retrieve object Iterator itr = sheet.iterator(); //iterating over excel file while (itr.hasNext()) { Row row = itr.next(); Iterator cellIterator = row.cellIterator(); //iterating over each column while (cellIterator.hasNext()) { Cell cell = cellIterator.next(); switch (cell.getCellType()) { case Cell.CELL_TYPE_STRING: //field that represents string cell type System.out.print(cell.getStringCellValue() + '			'); break; case Cell.CELL_TYPE_NUMERIC: //field that represents number cell type System.out.print(cell.getNumericCellValue() + '			'); break; default: } } System.out.println(''); } } catch(Exception e) { e.printStackTrace(); } } } 

Çıktı:

 Employee ID Employee Name Salary Designation Department 1223.0 Harsh 20000.0 Marketing Manager Marketing 3213.0 Vivek 15000.0 Financial Advisor Finance 6542.0 Krishna 21000.0 HR Manager HR 9213.0 Sarika 34000.0 Sales Manager Sales 

Bir excel dosyasından (.xlsx) belirli bir hücre değerini okuma

Masa: ÇalışanVerileri.xlsx

tepki tablosu

Java'da Excel Dosyası Nasıl Okunur?

Örnek

Aşağıdaki örnekte 2'nin değerini okuyoruz.vesıra ve 2vekolon. Satır ve sütun sayımı 0'dan başlar. Böylece program 'Yazılım Mühendisi' sonucunu döndürür.


Java'da Excel Dosyası Nasıl Okunur?

 //reading value of a particular cell import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class ReadCellExample { public static void main(String[] args) { ReadCellExample rc=new ReadCellExample(); //object of the class //reading the value of 2nd row and 2nd column String vOutput=rc.ReadCellData(2, 2); System.out.println(vOutput); } //method defined for reading a cell public String ReadCellData(int vRow, int vColumn) { String value=null; //variable for storing the cell value Workbook wb=null; //initialize Workbook null try { //reading data from a file in the form of bytes FileInputStream fis=new FileInputStream('C:\demo\EmployeeData.xlsx'); //constructs an XSSFWorkbook object, by buffering the whole stream into the memory wb=new XSSFWorkbook(fis); } catch(FileNotFoundException e) { e.printStackTrace(); } catch(IOException e1) { e1.printStackTrace(); } Sheet sheet=wb.getSheetAt(0); //getting the XSSFSheet object at given index Row row=sheet.getRow(vRow); //returns the logical row Cell cell=row.getCell(vColumn); //getting the cell representing the given column value=cell.getStringCellValue(); //getting cell value return value; //returns the cell value } } 

Çıktı:

 Software Engineer