C++ में स्प्रेडशीट कैसे लोड करें
Aspose.Cells FOSS for C++ आपको मौजूदा XLSX स्प्रेडशीट्स को लोड और पढ़ने की अनुमति देता है, बिना Microsoft Excel की आवश्यकता के। यह गाइड वर्कबुक लोड करने, वर्कशीट्स तक पहुँचने, और Workbook, Worksheet, और Cell क्लासेस का उपयोग करके सेल मान पढ़ने की प्रक्रिया दर्शाता है।
चरण-दर-चरण गाइड
चरण 1: बिल्ड सेट अप करें
अपने CMake प्रोजेक्ट में Aspose.Cells FOSS for C++ जोड़ें:
cmake_minimum_required(VERSION 3.15)
project(LoadSpreadsheet CXX)
set(CMAKE_CXX_STANDARD 17)
add_subdirectory(path/to/Aspose.Cells-FOSS-for-Cpp)
add_executable(LoadSpreadsheet main.cpp)
target_link_libraries(LoadSpreadsheet PRIVATE Aspose.Cells.Foss.Cpp)चरण 2: आवश्यक हेडर शामिल करें
#include "aspose/cells_foss/Workbook.h"
#include "aspose/cells_foss/WorksheetCollection.h"
#include "aspose/cells_foss/Worksheet.h"
#include "aspose/cells_foss/Cell.h"
using namespace Aspose::Cells_FOSS;चरण 3: वर्कबुक लोड करें
Workbook कन्स्ट्रक्टर को फ़ाइल पथ प्रदान करें ताकि मौजूदा XLSX फ़ाइल लोड की जा सके:
int main() {
Workbook workbook("input.xlsx");
// workbook is now loaded and ready to use
return 0;
}चरण 4: एक वर्कशीट तक पहुंचें
Workbook::GetWorksheets() का उपयोग करके वर्कशीट संग्रह प्राप्त करें, फिर अनुक्रमांक द्वारा पहुंचें:
Worksheet& sheet = workbook.GetWorksheets()[0];
std::string name = sheet.GetName();चरण 5: सेल मान पढ़ें
पता स्ट्रिंग द्वारा सेल्स तक पहुंचें और उनके मान पढ़ें:
std::string text = sheet.GetCells()["A1"].GetStringValue();
double number = sheet.GetCells()["B2"].GetValue().AsDouble();
bool flag = sheet.GetCells()["C3"].GetValue().AsBool();चरण 6: कोई भी परिवर्तन सहेजें
परिवर्तनों को करने के बाद, फ़ाइल में वापस सहेजें:
workbook.Save("output.xlsx");
workbook.Dispose();सामान्य समस्याएँ और समाधान
लोड पर फ़ाइल नहीं मिली त्रुटि फ़ाइल पथ सही है और फ़ाइल मौजूद है, यह जाँचें। यदि कार्य निर्देशिका अनिश्चित है तो पूर्ण पथ (absolute path) उपयोग करें।
संख्यात्मक कोशिका के लिए खाली स्ट्रिंग लौटाई गई उपयोग करें GetValue().AsDouble() के बजाय GetStringValue() — GetStringValue() पाठ के बजाय संख्याएँ रखने वाली कोशिकाओं के लिए खाली स्ट्रिंग लौटाता है।
वर्कबुक लोड होती है लेकिन कोशिकाएँ खाली दिखती हैं। सुनिश्चित करें कि XLSX फ़ाइल पासवर्ड-सुरक्षित न हो। Aspose.Cells C++ के लिए FOSS एन्क्रिप्टेड फ़ाइलों का समर्थन नहीं करता।
फ़ॉर्मूला सेल अप्रत्याशित मान लौटाता है फ़ॉर्मूला कोशिकाएँ फ़ॉर्मूला स्ट्रिंग को संग्रहीत करती हैं, गणना किए गए मान को नहीं। फ़ॉर्मूला को फ़ाइल खोलते समय Excel द्वारा मूल्यांकन किया जाता है। Use GetFormula() फ़ॉर्मूला पाठ प्राप्त करने के लिए।
प्रसंस्करण के बाद मेमोरी मुक्त नहीं हुई। Call workbook.Dispose() सभी कार्य समाप्त होने के बाद अनमैनेज्ड संसाधनों को रिलीज़ करने के लिए।
अक्सर पूछे जाने वाले प्रश्न
क्या मैं एक ही फ़ाइल से कई कार्यपत्रक लोड कर सकता हूँ?
हां। सभी शीट्स तक पहुँचने और इंडेक्स से इटरेट करने के लिए Workbook::GetWorksheets() का उपयोग करें। प्रत्येक शीट को नाम से पहचानने के लिए sheet.GetName() को कॉल करें।
क्या मैं कई शीट्स वाली XLSX फ़ाइलें लोड कर सकता हूँ और किसी विशिष्ट शीट से पढ़ सकता हूँ?
हां। शीट्स को शून्य-आधारित इंडेक्स से एक्सेस करें: workbook.GetWorksheets()[1] दूसरा शीट लौटाता है।
क्या फ़ाइल लोड करने से फ़ॉर्मूला पुनर्गणना शुरू होती है?
नहीं। लाइब्रेरी सेल वैल्यूज़ और फ़ॉर्मूला स्ट्रिंग्स को XLSX फ़ाइल में संग्रहीत रूप में लोड करती है। फ़ॉर्मूला पुनर्गणना तब Excel या किसी संगत रीडर में फ़ाइल खोलने पर होती है।
अगर फ़ाइल पाथ में यूनिकोड अक्षर हों तो क्या होता है?
पाथ को std::string के रूप में सही एन्कोडिंग के साथ पास करें जो आपके प्लेटफ़ॉर्म के लिए उपयुक्त हो। UTF-8 पाथ Linux और macOS पर समर्थित हैं। Windows पर, सुनिश्चित करें कि पाथ एन्कोडिंग सिस्टम लोकेल से मेल खाती है।
क्या एक ही फ़ाइल को एक साथ कई बार लोड करना सुरक्षित है?
लाइब्रेरी समान Workbook इंस्टेंस तक एक साथ पहुँच के लिए थ्रेड-सेफ नहीं है। प्रत्येक थ्रेड के लिए अलग Workbook इंस्टेंस लोड करें।