एक्सेल फ़ाइल से डेटा कैसे पढ़ें/लिखें: Selenium POI
फ़ाइल IO किसी भी सॉफ़्टवेयर प्रक्रिया का एक महत्वपूर्ण हिस्सा है। हम अक्सर अपने कंप्यूटर में फ़ाइल बनाते हैं, उसे खोलते हैं और कुछ अपडेट करते हैं या उसे हटाते हैं। ऐसा ही मामला है Selenium स्वचालन। हमें फ़ाइलों में हेरफेर करने के लिए एक प्रक्रिया की आवश्यकता है Selenium.
Java हमें फ़ाइल हेरफेर के लिए अलग-अलग कक्षाएं प्रदान करता है Seleniumइस ट्यूटोरियल में, हम सीखेंगे कि हम कैसे पढ़ और लिख सकते हैं एक्सेल की मदद से फाइल करें Java आईओ पैकेज और अपाचे पीओआई लाइब्रेरी.
अपाचे POI में Selenium
RSI अपाचे POI में Selenium सेलेनियम डेटा संचालित परीक्षण के लिए एक व्यापक रूप से इस्तेमाल किया जाने वाला एपीआई है। यह एक POI लाइब्रेरी है जो सेलेनियम में लिखी गई है। Java जो उपयोगकर्ताओं को हेरफेर करने के लिए एक एपीआई देता है Microsoft .xls और .xlsx जैसे दस्तावेज़। उपयोगकर्ता आसानी से एक्सेल फ़ाइलें बना सकते हैं, संशोधित कर सकते हैं और पढ़/लिख सकते हैं। POI का मतलब है "खराब अस्पष्टीकरण कार्यान्वयन।"
एक्सेल निर्यात करना
POI (Maven POM निर्भरता) का उपयोग करके एक्सेल फ़ाइल को कैसे संभालें
एक्सेल फ़ाइल को पढ़ने और लिखने के लिए Javaअपाचे एक बहुत प्रसिद्ध लाइब्रेरी POI प्रदान करता है। यह लाइब्रेरी पढ़ने और लिखने दोनों में सक्षम है XLS और XLSX एक्सेल फ़ाइल प्रारूप.
पढ़ने के लिए XLS फ़ाइलें, एक एचएसएसएफ कार्यान्वयन POI लाइब्रेरी द्वारा प्रदान किया गया है।
पढ़ने के लिए एक्सएलएसएक्स, एक्सएसएसएफ का कार्यान्वयन POI पुस्तकालय विकल्प होगा। आइए इन कार्यान्वयनों का विस्तार से अध्ययन करें।
यदि आप अपने प्रोजेक्ट में मावेन का उपयोग कर रहे हैं, तो मावेन निर्भरता होगी
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.1</version> </dependency>
या आप बस नवीनतम संस्करण POI जार डाउनलोड कर सकते हैं http://poi.apache.org/download.html & नवीनतम ज़िप फ़ाइल डाउनलोड करें
जब आप इस जार के लिए ज़िप फ़ाइल डाउनलोड करते हैं, तो आपको इसे अनज़िप करना होगा और इन सभी जार को अपने प्रोजेक्ट के क्लास पथ में जोड़ना होगा।
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 फ़ाइल की एक पंक्ति में एक सेल का प्रतिनिधित्व करता है।
पढ़ने/लिखने का कार्य
हमारे उदाहरण के लिए, हम नीचे दिए गए एक्सेल फ़ाइल प्रारूप पर विचार करेंगे
एक्सेल फ़ाइल से डेटा पढ़ें
पूरा उदाहरण: यहां हम एक्सेल से डेटा पढ़ने की कोशिश कर रहे हैं 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 भी एक्सेल फ़ाइल को पढ़ने के लिए एक और प्रसिद्ध जार है Java और फ़ाइलें लिखना। आजकल, POI का उपयोग अधिकांश परियोजनाओं में किया जाता है, लेकिन POI से पहले, JXL ही एकमात्र था Java एक्सेल में हेरफेर के लिए एपीआई। यह एक्सेल पढ़ने के लिए एक बहुत छोटा और सरल एपीआई है Selenium.
सुझाव: मेरा सुझाव है कि किसी भी नए प्रोजेक्ट में JXL का उपयोग न करें, क्योंकि यह लाइब्रेरी 2010 से सक्रिय विकास में नहीं है और POI API की तुलना में इसमें सुविधाओं की कमी है।
JXL डाउनलोड करें:
यदि आप JXL के साथ काम करना चाहते हैं, तो आप इसे इस लिंक से डाउनलोड कर सकते हैं
https://sourceforge.net/projects/jexcelapi/files/jexcelapi/2.6.12/
आप 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 प्रारूप के साथ काम नहीं कर सकता।









