Πώς να φορτίσετε ένα πλάνο σε C++
Aspose.Cells FOSS for C++ allows you to load and read existing XLSX spreadsheets without requiring Microsoft Excel. This guide walks through loading a workbook, accessing worksheets, and reading cell values using the Workbook, Worksheet,και Cell τάξεις .
Βήμα προς βήμα οδηγός
Βήμα 1: Εισάγετε το κτίριο
Προσθήκη Aspose.Cells FOSS για C++ στο έργο CMake σας:
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();Κοινά προβλήματα και τακτοποιήσεις
Δεν βρέθηκε σφάλμα στο αρχείο φορτίο Ελέγξτε το μονοπάτι του αρχείου είναι σωστό και το αρχείο υπάρχει. Χρησιμοποιήστε ένα απόλυτο μονό εάν ο οδηγός εργασίας δεν είναι σίγουρος.
Ελεύθερη γραμμή επιστρέφει για μια αριθμητική κελιά Χρησιμοποιήστε GetValue().AsDouble() Αντί να GetStringValue() — GetStringValue() επιστρέφει μια κενή γραμμή για τα κύτταρα που περιέχουν αριθμούς αντί του κειμένου.
Το βιβλίο εργασίας φορτίζεται αλλά τα κύτταρα φαίνονται κενά Βεβαιωθείτε ότι το αρχείο XLSX δεν προστατεύεται με κωδικό πρόσβασης. Aspose.Cells FOSS για C++ δεν υποστηρίζει κρυπτογραφημένα αρχεία.
Η φράση επιστρέφει απροσδόκητη αξία Τα κύτταρα φόρμουλα αποθηκεύουν τη γραμμή φόρουμ, όχι την υπολογισμένη τιμή. Η φόρομη αξία αξιολογείται από το Excel όταν ανοίγει το αρχείο. GetFormula() Να ανακτήσει το κείμενο της φόρμουλας.
Μνήμη που δεν κυκλοφορεί μετά την επεξεργασία Κλήση workbook.Dispose() Μετά από όλες τις εργασίες ολοκληρώνονται για την απελευθέρωση μη διαχειριζόμενων πόρων.
Συχνές ερωτήσεις
Μπορώ να φορτώσει πολλαπλά φύλλα εργασίας από ένα μόνο αρχείο;?
Ναι, χρησιμοποιήστε το Workbook::GetWorksheets() Για να έχετε πρόσβαση σε όλα τα φύλλα και ιθερά με δείκτη. sheet.GetName() Να αναγνωρίσουμε κάθε φύλλο με όνομα.
Μπορώ να φορτώ τα αρχεία XLSX με πολλαπλά φύλλα και να διαβάσω από ένα συγκεκριμένο;?
Ναι. Τα φύλλα πρόσβασης με μηδενικό δείκτη: workbook.GetWorksheets()[1] Επιστρέφει το δεύτερο φύλλο.
Η φόρτωση ενός αρχείου προκαλεί ανακαθολογία της φόρουμ;?
Η βιβλιοθήκη φορτώνει τις τιμές των κυττάρων και τις γραμμές φόρμουλα όπως είναι αποθηκευμένες στο αρχείο XLSX. Η αναδιάθεση φόρουμ συμβαίνει στο Excel ή σε έναν συμβατό ανάγνωμο όταν το αρχικό αρχείου ανοίγει.
Τι συμβαίνει αν το αρχείο περιέχει χαρακτήρες Unicode;?
Περνάει το δρόμο ως ένα std::string με την σωστή κωδικοποίηση για τη πλατφόρμα σας. τα μονοπάτια UTF-8 υποστηρίζονται στο Linux και το macOS. Στα Windows, βεβαιωθείτε ότι η κωδική πορεία ταιριάζει με το τοπικό σύστημα.
Είναι ασφαλές να φορτώσετε το ίδιο αρχείο πολλές φορές ταυτόχρονα;?
Η βιβλιοθήκη δεν είναι ασφαλής για συνεχή πρόσβαση στο ίδιο Workbook Ετικέτες: Διαχωρισμός φορτίου Workbook Ετικέτες ανά thread.