फ़ाइल IO किसी भी सॉफ्टवेयर प्रक्रिया का एक महत्वपूर्ण हिस्सा है। हम अक्सर एक फ़ाइल बनाते हैं, इसे खोलें और कुछ अपडेट करें या इसे अपने कंप्यूटर में हटा दें। वही सेलेनियम ऑटोमेशन का मामला है। हमें सेलेनियम के साथ फ़ाइलों में हेरफेर करने के लिए एक प्रक्रिया की आवश्यकता है।
जावा हमें सेलेनियम के साथ फ़ाइल मैनीपुलेशन के लिए विभिन्न कक्षाएं प्रदान करता है। इस ट्यूटोरियल में, हम यह जानने जा रहे हैं कि हम जावा आईओ पैकेज और अपाचे पीओआई लाइब्रेरी की मदद से एक्सेल फाइल पर कैसे पढ़ और लिख सकते हैं।
सेलेनियम में अपाचे POI
सेलेनियम में Apache POI परीक्षण संचालित सेलेनियम डेटा के लिए एक व्यापक रूप से इस्तेमाल एपीआई है। यह जावा में लिखी एक POI लाइब्रेरी है जो उपयोगकर्ताओं को .xls और .xlsx जैसे Microsoft दस्तावेज़ों में हेरफेर करने के लिए एपीआई देती है। उपयोगकर्ता एक्सेल फाइलों में आसानी से बना, संशोधित और पढ़ / लिख सकते हैं। POI का अर्थ है "खराब आक्षेप कार्यान्वयन"।
- POI (Maven POM निर्भरता) का उपयोग करके एक्सेल फाइल को कैसे संभालें
- POI में कक्षाएं और इंटरफेस
- पढ़ें / लिखें ऑपरेशन
- एक्सेल फ़ाइल से डेटा पढ़ें
- Excel फ़ाइल पर डेटा लिखें
- एक्सेल मैनिपुलेशन JXL एपीआई का उपयोग कर
एक्सेल निर्यात कर रहा है
POI (Maven POM निर्भरता) का उपयोग करके एक्सेल फाइल को कैसे संभालें
जावा में एक्सेल फाइल को पढ़ने और लिखने के लिए, अपाचे एक बहुत प्रसिद्ध पुस्तकालय पीओआई प्रदान करता है। यह लाइब्रेरी एक्सेल के XLS और XLSX फाइल फॉर्मेट दोनों को पढ़ने और लिखने में काफी सक्षम है ।
एक्सएलएस फाइलों को पढ़ने के लिए पीओआई लाइब्रेरी द्वारा एक एचएसएसएफ कार्यान्वयन प्रदान किया जाता है।
XLSX को पढ़ने के लिए POI लाइब्रेरी के XSSF कार्यान्वयन का विकल्प होगा। आइए इन कार्यान्वयनों का विस्तार से अध्ययन करें।
यदि आप अपनी परियोजना में मावेन का उपयोग कर रहे हैं, तो मावेन निर्भरता होगी
<निर्भरता>org.apache.poi groupId><विरूपण साक्ष्य> कविता> विरूपण साक्ष्य><संस्करण> 4.1.1 संस्करण> निर्भरता>
या आप बस http://poi.apache.org/download.html से नवीनतम संस्करण POI जार डाउनलोड कर सकते हैं और नवीनतम ज़िप फ़ाइल डाउनलोड कर सकते हैं
जब आप इस जार के लिए ज़िप फ़ाइल डाउनलोड करते हैं, तो आपको इसे अनज़िप करने की आवश्यकता होती है और इन सभी जार को अपने प्रोजेक्ट के क्लास पाथ में जोड़ना होता है।
POI में कक्षाएं और इंटरफेस:

XLS और XLSX फ़ाइल पढ़ने के लिए POI में विभिन्न जावा इंटरफेसेस और कक्षाओं की सूची निम्न है-
- कार्यपुस्तिका : XSSFWorkbook और HSSFWorkbook कक्षाएं इस इंटरफ़ेस को लागू करती हैं।
- XSSFWorkbook : XLSX फ़ाइल का एक वर्ग प्रतिनिधित्व है।
- HSSFWorkbook : XLS फ़ाइल का एक वर्ग प्रतिनिधित्व है।
- शीट : XSSFSheet और HSSFSheet कक्षाएं इस इंटरफ़ेस को लागू करती हैं।
- XSSFSheet : एक क्लास एक XLSX फ़ाइल में शीट का प्रतिनिधित्व करती है।
- HSSFSheet : एक्सएलएस फ़ाइल में शीट का प्रतिनिधित्व करने वाला एक वर्ग है।
- पंक्ति : XSSFRow और HSSFRow कक्षाएं इस इंटरफ़ेस को लागू करती हैं।
- XSSFRow : एक वर्ग है जो XLSX फ़ाइल की शीट में एक पंक्ति का प्रतिनिधित्व करता है।
- HSSFRow : एक वर्ग है जो XLS फ़ाइल की शीट में एक पंक्ति का प्रतिनिधित्व करता है।
- सेल : XSSFCell और HSSFCell कक्षाएं इस इंटरफ़ेस को लागू करती हैं।
- XSSFCell : XLSX फ़ाइल की एक पंक्ति में एक सेल का प्रतिनिधित्व करने वाला एक वर्ग है।
- HSSFCell: एक्सएलएस फ़ाइल की एक पंक्ति में एक सेल का प्रतिनिधित्व करने वाला एक वर्ग है।
पढ़ें / लिखें ऑपरेशन-
हमारे उदाहरण के लिए, हम नीचे दिए गए एक्सेल फ़ाइल प्रारूप पर विचार करेंगे
एक्सेल फ़ाइल से डेटा पढ़ें
पूरा उदाहरण: यहां हम सेलेनियम में एक्सेल से डेटा पढ़ने की कोशिश कर रहे हैं:
पैकेज excelExportAndFileIO;आयात java.io.File;आयात java.io.FileInputStream;आयात java.io.IOException;आयात org.apache.poi.hssf.usermodel.HSSFWorkbook;आयात org.apache.poi.ss.usermodel.Row;आयात org.apache.poi.ss.usermodel.Sheet;आयात org.apache.poi.ss.usermodel.Workbook;आयात org.apache.poi.xssf.usermodel.XSSFWorkbook;पब्लिक क्लास ReadGuru99ExcelFile {public void readExcel (स्ट्रिंग फ़ाइलपाठ, स्ट्रिंग फ़ाइलनाम, स्ट्रिंग पत्रक नाम) IOSExlight को फेंकता है {// xlsx फ़ाइल को खोलने के लिए फ़ाइल वर्ग का ऑब्जेक्ट बनाएँफ़ाइल फ़ाइल = नई फ़ाइल (filePath + "\\" + fileName);// एक्सेल फाइल पढ़ने के लिए FileInputStream क्लास का ऑब्जेक्ट बनाएंFileInputStream inputStream = नई FileInputStream (फ़ाइल);कार्यपुस्तिका गुरु 99 वॉर्कबुक = अशक्त;// फ़ाइल एक्सटेंशन को सब्स्टिट्यूट में फ़ाइल नाम से विभाजित करके और केवल एक्सटेंशन नाम प्राप्त करेंस्ट्रिंग fileExtensionName = fileName.substring (fileName.indexOf ("।"));// अगर xlsx फाइल है तो कंडीशन चेक करेंअगर (fileExtensionName.equals ("। xlsx")) {// अगर यह xlsx फाइल है तो XSSFWorkbook क्लास का ऑब्जेक्ट बनाएंGuru99Workbook = नया XSSFWorkbook (inputStream);}// स्थिति की जाँच करें यदि फ़ाइल xls फ़ाइल हैऔर अगर (fileExtensionName.equals ("। xls")) {// अगर यह xls फाइल है तो HSSFWorkbook क्लास का ऑब्जेक्ट बनाएंGuru99Workbook = नया HSSFWorkbook (inputStream);}// अपने नाम से कार्यपुस्तिका के अंदर शीट पढ़ेंशीट गुरु 99Sheet = guru99Workbook.getSheet (पत्रक नाम);// एक्सेल फाइल में पंक्तियों की संख्या ज्ञात कीजिएint rowCount = guru99Sheet.getLastRowNum () - guru99Sheet.getFirstRowNum ();// इसे पढ़ने के लिए एक्सेल फाइल की सभी पंक्तियों पर एक लूप बनाएंfor (int i = 0; मैंनोट: हम यहाँ Testng ढांचे का उपयोग नहीं कर रहे हैं। सेलेनियम में फ़ंक्शन रीड एक्सेल का उपयोग करके जावा एप्लिकेशन को क्लास में चलाएं जैसा कि ऊपर दिए गए उदाहरण में दिखाया गया है।
Excel फ़ाइल पर डेटा लिखें
पूरा उदाहरण: यहां हम एक्सेल फाइल में नई पंक्ति जोड़कर एक्सेल फाइल से डेटा लिखने की कोशिश कर रहे हैं
पैकेज excelExportAndFileIO;आयात java.io.File;आयात java.io.FileInputStream;आयात java.io.FileOutputStream;आयात java.io.IOException;आयात org.apache.poi.hssf.usermodel.HSSFWorkbook;आयात org.apache.poi.ss.usermodel.Cell;आयात org.apache.poi.ss.usermodel.Row;आयात org.apache.poi.ss.usermodel.Sheet;आयात org.apache.poi.ss.usermodel.Workbook;आयात org.apache.poi.xssf.usermodel.XSSFWorkbook;सार्वजनिक वर्ग WriteGuru99ExcelFile {सार्वजनिक शून्य लिखना// xlsx फ़ाइल को खोलने के लिए फ़ाइल वर्ग का ऑब्जेक्ट बनाएँफ़ाइल फ़ाइल = नई फ़ाइल (filePath + "\\" + fileName);// एक्सेल फाइल पढ़ने के लिए FileInputStream क्लास का ऑब्जेक्ट बनाएंFileInputStream inputStream = नई FileInputStream (फ़ाइल);कार्यपुस्तिका गुरु 99 वॉर्कबुक = अशक्त;// फ़ाइल एक्सटेंशन को सब्स्टिट्यूट में फ़ाइल नाम से विभाजित करके और केवल एक्सटेंशन नाम प्राप्त करेंस्ट्रिंग fileExtensionName = fileName.substring (fileName.indexOf ("।"));// अगर xlsx फाइल है तो कंडीशन चेक करेंअगर (fileExtensionName.equals ("। xlsx")) {// अगर यह xlsx फाइल है तो XSSFWorkbook क्लास का ऑब्जेक्ट बनाएंGuru99Workbook = नया XSSFWorkbook (inputStream);}// स्थिति की जाँच करें यदि फ़ाइल xls फ़ाइल हैऔर अगर (fileExtensionName.equals ("। xls")) {// अगर यह xls फाइल है तो XSSFWorkbook क्लास का ऑब्जेक्ट बनाएंGuru99Workbook = नया HSSFWorkbook (inputStream);}// शीट नाम से एक्सेल शीट पढ़ेंशीट शीट = गुरु99 वॉर्कबुक.गेटशीट (शीटनाम);// एक्सेल फ़ाइल में पंक्तियों की वर्तमान संख्या प्राप्त करेंint rowCount = sheet.getLastRowNum () - sheet.getFirstRowNum ();// शीट से पहली पंक्ति प्राप्त करेंपंक्ति पंक्ति = पत्रक.सेट रो (0);// एक नई पंक्ति बनाएं और इसे शीट के आखिरी में जोड़ देंपंक्ति newRow = sheet.createRow (rowCount + 1);// नव निर्मित रो के सेल पर एक लूप बनाएंfor (int j = 0; j
एक्सेल मैनिपुलेशन JXL एपीआई का उपयोग कर
JXL जावा में एक्सेल फाइल पढ़ने और फाइल लिखने के लिए एक और प्रसिद्ध जार भी है। आजकल, अधिकांश परियोजनाओं में POI का उपयोग किया जाता है, लेकिन POI से पहले, JXL केवल Excel API के लिए जावा एपीआई था। यह सेलेनियम में एक्सेल पढ़ने के लिए एक बहुत छोटा और सरल एपीआई है।
सुझाव: मेरा सुझाव किसी भी नई परियोजना में जेएक्सएल का उपयोग करने के लिए नहीं है क्योंकि पुस्तकालय 2010 से सक्रिय विकास में नहीं है और पीओआई एपीआई की तुलना में सुविधा की कमी है।
डाउनलोड JXL:
यदि आप JXL के साथ काम करना चाहते हैं, तो आप इसे इस लिंक से डाउनलोड कर सकते हैं
https://sourceforge.net/projects/jexcelapi/files/jexcelapi/2.6.12.12
आप JXL के लिए इस ज़िप की गई फ़ाइल के अंदर डेमो उदाहरण भी प्राप्त कर सकते हैं।
कुछ विशेषताएं:
- JXL 95, 97, 2000, XP, 2003 कार्यपुस्तिका के लिए सेलेनियम में एक्सेल फाइल को पढ़ने में सक्षम है।
- हम अंग्रेजी, फ्रेंच, स्पेनिश, जर्मन के साथ काम कर सकते हैं।
- एक्सेल में एक चार्ट और छवि प्रविष्टि को कॉपी करना संभव है
दोष:
- हम एक्सेल 97 और बाद में ही लिख सकते हैं (एक्सेल 95 में लेखन समर्थित नहीं है)।
- JXL एक्सेल फ़ाइल के XLSX प्रारूप का समर्थन नहीं करता है।
- यह एक्सेल 2000 प्रारूप में स्प्रेडशीट उत्पन्न करता है।
सारांश:
- एक्सेल फाइल को जावा आईओ ऑपरेशन द्वारा पढ़ा जा सकता है। उसके लिए, हमें Apache POI Jar का उपयोग करने की आवश्यकता है ।
- एक्सेल फाइल, XLSX और XLS फाइल में दो तरह की वर्कबुक होती है ।
- POI की अलग-अलग Interfaces Workbook, Sheet, Row, Cell है।
- ये इंटरफेस संबंधित XLS ( HSSFWorkbook, HSSFSheet, HSSFRow, HSSFCell ) और XLSX ( XSSFWorkbook, XSSFSheet, XSSFRow, XSSFRell ) फ़ाइल हेरफेर क्लासेस द्वारा लागू किए जाते हैं।
- जेएक्सएल सेलेनियम में एक्सेल हैंडलिंग के लिए एक और एपीआई है।
- JXL एक्सेल के XLSX प्रारूप के साथ काम नहीं कर सकता।