Εργασία με τα κύτταρα και το μοντέλο δεδομένων
Εργασία με τα κύτταρα και το μοντέλο δεδομένων
Η Cell Η τάξη είναι η κύρια διεπαφή για την ανάγνωση και τη γραφή μεμονωμένων τιμών κυττάρων, φόρμουλας και στυλ. Cells Η συλλογή χρησιμοποιεί μια γραμμή διεύθυνσης.
Γράψτε τιμές στα κύτταρα
Χρησιμοποιήστε Cell::PutValue Για να γράψετε κείμενο, αριθμούς, μπολεάν ή ημερομηνίες σε ένα κύτταρο:
#include "aspose/cells_foss/Workbook.h"
#include "aspose/cells_foss/Worksheet.h"
#include "aspose/cells_foss/Cell.h"
using namespace Aspose::Cells_FOSS;
int main() {
Workbook workbook;
Worksheet& sheet = workbook.GetWorksheets()[0];
sheet.GetCells()["A1"].PutValue("Product");
sheet.GetCells()["B1"].PutValue("Price");
sheet.GetCells()["A2"].PutValue("Widget");
sheet.GetCells()["B2"].PutValue(9.99);
sheet.GetCells()["C2"].PutValue(true);
workbook.Save("data.xlsx");
return 0;
}Εισαγωγή Φόρμουλα
Χρησιμοποιήστε Cell::SetFormula(formula) Για να γράψετε μια φόρμουλα συμβατή με το Excel. οι φόροι αξιολογούνται από το excel ή τους συμβατούς αναγνώστες όταν ανοίγει το αρχείο.
sheet.GetCells()["B4"].SetFormula("=SUM(B2:B3)");
sheet.GetCells()["C4"].SetFormula("=AVERAGE(B2:B3)");Διαβάστε τιμές κυττάρων
Διαβάστε την τρέχουσα αξία ενός κελιού με Cell::GetValue(),που επιστρέφει σε CellValue Μετατρέψτε σε ένα συγκεκριμένο τύπο χρησιμοποιώντας το κατάλληλο πρόσθετο:
CellValue val = sheet.GetCells()["B2"].GetValue();
double price = val.AsDouble();
std::string text = sheet.GetCells()["A2"].GetStringValue();Η CellValue Η τάξη παρέχει τυποποιημένα αξεσουάρ:
| Μέθοδος | Τύπος επιστροφής |
|---|---|
AsDouble() | double |
AsInteger() | int |
AsBool() | bool |
AsString() | std::string |
AsDateTime() | DateTime |
Πρόσβαση σε κύτταρα με στήλη και στίχο
Εκτός από τις αλυσίδες διεύθυνσης, τα κύτταρα πρόσβασης με γραμμή μηδενικής βάσης και δείκτες στήλης:
// Address string
Cell& cellA1 = sheet.GetCells()["A1"];
// Row/column index (0-based)
int row = cellA1.GetRow();
int col = cellA1.GetColumn();Μειώνοντας κύτταρα
Χρησιμοποιήστε Cells::Merge Για να συγχωνευθεί μια ορθογώνια σειρά κυττάρων σε ένα:
CellArea area = CellArea::CreateCellArea("A1", "C1");
sheet.GetCells().Merge(area.StartRow, area.StartColumn,
area.EndRow - area.StartRow + 1,
area.EndColumn - area.StartColumn + 1);Δείχνει κείμενο
Για να ανακτήσετε την τιμή του κυττάρου ως μορφοποιημένο κείμενο (αποφασίζοντας τις μορφές αριθμών), χρησιμοποιήστε Cell::GetDisplayStringValue():
std::string display = sheet.GetCells()["B2"].GetDisplayStringValue();Συμβουλές και βέλτιστες πρακτικές
- Προτιμώ
PutValueΠάνω απόSetValueΓια τις άμεσες κυριολεκτικές αποστολές -PutValueΥπάρχουν υπερφόρτωση για όλους τους πρωτόγονους τύπους. - Χρησιμοποιήστε
GetStringValue()για να ανακτήσετε το κείμενο χωρίς μετατροπή τύπου. χρησιμοποιήστεGetValue().AsDouble()Όταν χρειάζεστε αριθμητική ακρίβεια. - Πάντα καλέστε
SetFormulaγια τα κύτταρα της φόρμουλας, όχιPutValue("=SUM(...)")- το τελευταίο αποθηκεύει μια γραμματική σφραγίδα, όχι μια φόρμουλα. - Χρησιμοποιήστε
CellArea::CreateCellArea(start, end)να δημιουργήσουν αντικείμενα εύρους για συγχώνευση και διαμόρφωση εργασιών.
κοινά ζητήματα
| Θέμα | Αιτία | ΦΙΛΕΞΗ |
|---|---|---|
GetValue() Επιστρέφει άδειο | Η κελιά δεν έχει γραφτεί | Γράψτε μια αξία με PutValue Πριν από το διάβασμα |
| Η φόρμουλα δεν αξιολογείται | Η φόρμουλα αποθηκεύεται ως string | Χρησιμοποιήστε SetFormula(expr) Αντί να PutValue(expr) |
| Μειώθηκαν οι αποτυχίες | Απεργία διαστάσεων | Ασφάλεια endRow >= startRow και endColumn >= startColumn |
| Τύπος λάθος ανάγνωσης | Λένε λάθος As*() Μέθοδος | Αντιστοιχίστε το αξεσουάρ με την αρχική PutValue Τύπος |
Συνοπτική αναφορά API
| Τάξη / Μέθοδος | Περιγραφή |
|---|---|
Cell::PutValue(value) | Γράψτε μια κυριολεκτική αξία στο κελί |
Cell::SetFormula(formula) | Εισάγετε μια στυλ φόρμουλα Excel |
Cell::GetValue() | Ανακτήστε την τιμή του κυττάρου ως ένα CellValue |
Cell::GetStringValue() | Αποκτήστε την τιμή του κυττάρου ως γραμμή |
Cell::GetDisplayStringValue() | Επαναλάβετε τη μορφοποιημένη γραμμή οθόνης |
Cell::GetRow() | Κάντε τον δείκτη γραμμής με βάση το μηδέν |
Cell::GetColumn() | Κάντε τον δείκτη στήλης με βάση το μηδέν |
Cell::GetStyle() | Πάρτε το τρέχον στυλ κυττάρων |
Cell::SetStyle(style) | Εφαρμόστε ένα τροποποιημένο στυλ στο κελί |
CellValue::AsDouble() | Μετατροπή της αξίας του κυττάρου σε διπλή |
CellValue::AsString() | Μετατρέψτε την τιμή κυττάρου σε string |
Cells::Merge(row, col, rows, cols) | Εναρμόνιση ενός ορθογώνου εύρους |