एक्सेल फ़ाइल से डेटा कैसे पढ़ें/लिखें: Selenium POI

फ़ाइल IO किसी भी सॉफ़्टवेयर प्रक्रिया का एक महत्वपूर्ण हिस्सा है। हम अक्सर अपने कंप्यूटर में फ़ाइल बनाते हैं, उसे खोलते हैं और कुछ अपडेट करते हैं या उसे हटाते हैं। ऐसा ही मामला है Selenium स्वचालन। हमें फ़ाइलों में हेरफेर करने के लिए एक प्रक्रिया की आवश्यकता है Selenium.

Java हमें फ़ाइल हेरफेर के लिए अलग-अलग कक्षाएं प्रदान करता है Seleniumइस ट्यूटोरियल में, हम सीखेंगे कि हम कैसे पढ़ और लिख सकते हैं एक्सेल की मदद से फाइल करें Java आईओ पैकेज और अपाचे पीओआई लाइब्रेरी.

अपाचे POI में Selenium

RSI अपाचे POI में Selenium सेलेनियम डेटा संचालित परीक्षण के लिए एक व्यापक रूप से इस्तेमाल किया जाने वाला एपीआई है। यह एक POI लाइब्रेरी है जो सेलेनियम में लिखी गई है। Java जो उपयोगकर्ताओं को हेरफेर करने के लिए एक एपीआई देता है Microsoft .xls और .xlsx जैसे दस्तावेज़। उपयोगकर्ता आसानी से एक्सेल फ़ाइलें बना सकते हैं, संशोधित कर सकते हैं और पढ़/लिख सकते हैं। POI का मतलब है "खराब अस्पष्टीकरण कार्यान्वयन।"

एक्सेल निर्यात करना

POI (Maven POM निर्भरता) का उपयोग करके एक्सेल फ़ाइल को कैसे संभालें

POI का उपयोग करके Excel फ़ाइल को संभालें

एक्सेल फ़ाइल को पढ़ने और लिखने के लिए Javaअपाचे एक बहुत प्रसिद्ध लाइब्रेरी POI प्रदान करता है। यह लाइब्रेरी पढ़ने और लिखने दोनों में सक्षम है XLS और XLSX एक्सेल फ़ाइल प्रारूप.

पढ़ने के लिए XLS फ़ाइलें, एक एचएसएसएफ कार्यान्वयन POI लाइब्रेरी द्वारा प्रदान किया गया है।

पढ़ने के लिए एक्सएलएसएक्स, एक्सएसएसएफ का कार्यान्वयन POI पुस्तकालय विकल्प होगा। आइए इन कार्यान्वयनों का विस्तार से अध्ययन करें।

यदि आप अपने प्रोजेक्ट में मावेन का उपयोग कर रहे हैं, तो मावेन निर्भरता होगी

POI का उपयोग करके Excel फ़ाइल को संभालें

<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.1</version>
</dependency>

या आप बस नवीनतम संस्करण POI जार डाउनलोड कर सकते हैं http://poi.apache.org/download.html & नवीनतम ज़िप फ़ाइल डाउनलोड करें

POI का उपयोग करके Excel फ़ाइल को संभालें

जब आप इस जार के लिए ज़िप फ़ाइल डाउनलोड करते हैं, तो आपको इसे अनज़िप करना होगा और इन सभी जार को अपने प्रोजेक्ट के क्लास पथ में जोड़ना होगा।

POI का उपयोग करके Excel फ़ाइल को संभालें

POI में कक्षाएं और इंटरफेस

अपाचे POI में क्लासेस और इंटरफेस
अपाचे POI में क्लासेस और इंटरफेस

निम्नलिखित विभिन्न प्रकार की सूची है Java इंटरफेस और कक्षाएं POI पढ़ने के लिए XLS और XLSX पट्टिका-

  • कार्यपुस्तिका: XSSFWorkbook और HSSFWorkbook वर्ग इस इंटरफ़ेस को कार्यान्वित करते हैं।
  • XSSFकार्यपुस्तिका: XLSX फ़ाइल का एक वर्ग प्रतिनिधित्व है।
  • HSSFकार्यपुस्तिका: XLS फ़ाइल का एक वर्ग प्रतिनिधित्व है.
  • चादर: XSSFSheet और HSSFSheet वर्ग इस इंटरफ़ेस को कार्यान्वित करते हैं।
  • XSSFशीट: एक क्लास है जो XLSX फ़ाइल में शीट का प्रतिनिधित्व करता है।
  • एचएसएसएफशीट: एक क्लास है जो XLS फ़ाइल में शीट का प्रतिनिधित्व करता है।
  • पंक्ति: XSSFRow और HSSFRow वर्ग इस इंटरफ़ेस को कार्यान्वित करते हैं।
  • XSSFRow: XLSX फ़ाइल की शीट में एक पंक्ति का प्रतिनिधित्व करने वाला एक वर्ग है।
  • एचएसएसएफरो: एक वर्ग है जो XLS फ़ाइल की शीट में एक पंक्ति का प्रतिनिधित्व करता है।
  • सेल: XSSFCell और HSSFCell वर्ग इस इंटरफ़ेस को कार्यान्वित करते हैं।
  • XSSFCell: एक वर्ग है जो XLSX फ़ाइल की एक पंक्ति में एक सेल का प्रतिनिधित्व करता है।
  • एचएसएसएफसेल: यह एक क्लास है जो XLS फ़ाइल की एक पंक्ति में एक सेल का प्रतिनिधित्व करता है।

पढ़ने/लिखने का कार्य

हमारे उदाहरण के लिए, हम नीचे दिए गए एक्सेल फ़ाइल प्रारूप पर विचार करेंगे

पढ़ना लिखना Operaउत्पादन

एक्सेल फ़ाइल से डेटा पढ़ें

पूरा उदाहरण: यहां हम एक्सेल से डेटा पढ़ने की कोशिश कर रहे हैं Selenium:

package excelExportAndFileIO;

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

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

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.xssf.usermodel.XSSFWorkbook;

public class ReadGuru99ExcelFile {

    public void readExcel(String filePath,String fileName,String sheetName) throws IOException{

    //Create an object of File class to open xlsx file

    File file =    new File(filePath+"\\"+fileName);

    //Create an object of FileInputStream class to read excel file

    FileInputStream inputStream = new FileInputStream(file);

    Workbook guru99Workbook = null;

    //Find the file extension by splitting file name in substring  and getting only extension name

    String fileExtensionName = fileName.substring(fileName.indexOf("."));

    //Check condition if the file is xlsx file

    if(fileExtensionName.equals(".xlsx")){

    //If it is xlsx file then create object of XSSFWorkbook class

    guru99Workbook = new XSSFWorkbook(inputStream);

    }

    //Check condition if the file is xls file

    else if(fileExtensionName.equals(".xls")){

        //If it is xls file then create object of HSSFWorkbook class

        guru99Workbook = new HSSFWorkbook(inputStream);

    }

    //Read sheet inside the workbook by its name

    Sheet guru99Sheet = guru99Workbook.getSheet(sheetName);

    //Find number of rows in excel file

    int rowCount = guru99Sheet.getLastRowNum()-guru99Sheet.getFirstRowNum();

    //Create a loop over all the rows of excel file to read it

    for (int i = 0; i < rowCount+1; i++) {

        Row row = guru99Sheet.getRow(i);

        //Create a loop to print cell values in a row

        for (int j = 0; j < row.getLastCellNum(); j++) {

            //Print Excel data in console

            System.out.print(row.getCell(j).getStringCellValue()+"|| ");

        }

        System.out.println();
    } 

    }  

    //Main function is calling readExcel function to read data from excel file

    public static void main(String...strings) throws IOException{

    //Create an object of ReadGuru99ExcelFile class

    ReadGuru99ExcelFile objExcelFile = new ReadGuru99ExcelFile();

    //Prepare the path of excel file

    String filePath = System.getProperty("user.dir")+"\\src\\excelExportAndFileIO";

    //Call read file method of the class to read data

    objExcelFile.readExcel(filePath,"ExportExcel.xlsx","ExcelGuru99Demo");

    }

}

नोट: हम इसका उपयोग नहीं कर रहे हैं टेस्टिंग फ्रेमवर्क यहाँ है। क्लास को इस प्रकार चलाएँ Java अनुप्रयोग एक्सेल पढ़ने के फ़ंक्शन का उपयोग कर Selenium जैसा कि उपरोक्त उदाहरण में दिखाया गया है।

एक्सेल फ़ाइल से डेटा पढ़ें

एक्सेल फ़ाइल पर डेटा लिखें

पूर्ण उदाहरण: यहां हम एक्सेल फ़ाइल में नई पंक्ति जोड़कर एक्सेल फ़ाइल से डेटा लिखने का प्रयास कर रहे हैं

package excelExportAndFileIO;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

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

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.xssf.usermodel.XSSFWorkbook;

public class WriteGuru99ExcelFile {

    public void writeExcel(String filePath,String fileName,String sheetName,String[] dataToWrite) throws IOException{

        //Create an object of File class to open xlsx file

        File file =    new File(filePath+"\\"+fileName);

        //Create an object of FileInputStream class to read excel file

        FileInputStream inputStream = new FileInputStream(file);

        Workbook guru99Workbook = null;

        //Find the file extension by splitting  file name in substring and getting only extension name

        String fileExtensionName = fileName.substring(fileName.indexOf("."));

        //Check condition if the file is xlsx file

        if(fileExtensionName.equals(".xlsx")){

        //If it is xlsx file then create object of XSSFWorkbook class

        guru99Workbook = new XSSFWorkbook(inputStream);

        }

        //Check condition if the file is xls file

        else if(fileExtensionName.equals(".xls")){

            //If it is xls file then create object of XSSFWorkbook class

            guru99Workbook = new HSSFWorkbook(inputStream);

        }    

    //Read excel sheet by sheet name    

    Sheet sheet = guru99Workbook.getSheet(sheetName);

    //Get the current count of rows in excel file

    int rowCount = sheet.getLastRowNum()-sheet.getFirstRowNum();

    //Get the first row from the sheet

    Row row = sheet.getRow(0);

    //Create a new row and append it at last of sheet

    Row newRow = sheet.createRow(rowCount+1);

    //Create a loop over the cell of newly created Row

    for(int j = 0; j < row.getLastCellNum(); j++){

        //Fill data in row

        Cell cell = newRow.createCell(j);

        cell.setCellValue(dataToWrite[j]);

    }

    //Close input stream

    inputStream.close();

    //Create an object of FileOutputStream class to create write data in excel file

    FileOutputStream outputStream = new FileOutputStream(file);

    //write data in the excel file

    guru99Workbook.write(outputStream);

    //close output stream

    outputStream.close();
	
    }

    public static void main(String...strings) throws IOException{

        //Create an array with the data in the same order in which you expect to be filled in excel file

        String[] valueToWrite = {"Mr. E","Noida"};

        //Create an object of current class

        WriteGuru99ExcelFile objExcelFile = new WriteGuru99ExcelFile();

        //Write the file using file name, sheet name and the data to be filled

        objExcelFile.writeExcel(System.getProperty("user.dir")+"\\src\\excelExportAndFileIO","ExportExcel.xlsx","ExcelGuru99Demo",valueToWrite);

    }

}

एक्सेल फ़ाइल पर डेटा लिखें

JXL API का उपयोग करके एक्सेल मैनिपुलेशन

JXL API का उपयोग करके एक्सेल में हेरफेर

JXL भी एक्सेल फ़ाइल को पढ़ने के लिए एक और प्रसिद्ध जार है Java और फ़ाइलें लिखना। आजकल, POI का उपयोग अधिकांश परियोजनाओं में किया जाता है, लेकिन POI से पहले, JXL ही एकमात्र था Java एक्सेल में हेरफेर के लिए एपीआई। यह एक्सेल पढ़ने के लिए एक बहुत छोटा और सरल एपीआई है Selenium.

सुझाव: मेरा सुझाव है कि किसी भी नए प्रोजेक्ट में JXL का उपयोग न करें, क्योंकि यह लाइब्रेरी 2010 से सक्रिय विकास में नहीं है और POI API की तुलना में इसमें सुविधाओं की कमी है।

JXL डाउनलोड करें:

यदि आप JXL के साथ काम करना चाहते हैं, तो आप इसे इस लिंक से डाउनलोड कर सकते हैं

https://sourceforge.net/projects/jexcelapi/files/jexcelapi/2.6.12/

JXL API का उपयोग करके एक्सेल में हेरफेर

आप JXL के लिए इस ज़िप्ड फ़ाइल के अंदर डेमो उदाहरण भी प्राप्त कर सकते हैं।

कुछ विशेषताएं:

  • JXL एक्सेल फ़ाइल को पढ़ने में सक्षम है Selenium 95, 97, 2000, XP, 2003 कार्यपुस्तिका के लिए.
  • हम अंग्रेजी, फ्रेंच, स्पेनिश, जर्मन भाषाओं के साथ काम कर सकते हैं।
  • चार्ट की प्रतिलिपि बनाना और एक्सेल में छवि सम्मिलित करना संभव है

दोष यह है:

  • हम केवल Excel 97 और उसके बाद के संस्करण ही लिख सकते हैं (Excel 95 में लिखना समर्थित नहीं है)।
  • JXL एक्सेल फ़ाइल के XLSX प्रारूप का समर्थन नहीं करता है।
  • यह एक्सेल 2000 प्रारूप में स्प्रेडशीट तैयार करता है।

सारांश

  • एक्सेल फ़ाइल को पढ़ा जा सकता है Java IO ऑपरेशन। इसके लिए, हमें उपयोग करने की आवश्यकता है अपाचे POI जार.
  • एक्सेल फ़ाइल में दो प्रकार की कार्यपुस्तिकाएँ होती हैं, XLSX और XLS फाइलें.
  • POI के विभिन्न इंटरफेस हैं - वर्कबुक, शीट, रो, सेल।
  • इन इंटरफेस को संगत द्वारा कार्यान्वित किया जाता है XLS (HSSFवर्कबुक, HSSFशीट, HSSFRow, HSSFCell) और XLSX (XSSFवर्कबुक, XSSFशीट, XSSFRow, XSSFCell) फ़ाइल हेरफेर कक्षाएं.
  • JXL एक्सेल को संभालने के लिए एक और एपीआई है Selenium.
  • JXL एक्सेल के XLSX प्रारूप के साथ काम नहीं कर सकता।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: