עבודה עם תאים ומודל הנתונים
עבודה עם תאים ומודל הנתונים
The 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();The 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 לפני קריאה |
| פורמולה לא הוערכה | פורמולה שנשמרה כקשת | שימוש SetFormula(expr) במקום PutValue(expr) |
| הצטרפות נכשלת | גודל טווח מוגבל | ביטחון endRow >= startRow ו endColumn >= startColumn |
| סוג שגיאה ב-Read | קוראים לא נכון As*() שיטת | תואם את המכשיר למקור PutValue סוג |
סיכום התייחסות API
| שיעור / שיטה | תיאור |
|---|---|
Cell::PutValue(value) | כתוב ערך מילולי לתא |
Cell::SetFormula(formula) | הגדרת Excel Formula String |
Cell::GetValue() | לחזור את הערך של התא כ- A CellValue |
Cell::GetStringValue() | להחזיר את הערך של התא כקשר |
Cell::GetDisplayStringValue() | להחזיר את מסגרת הצג פורמט |
Cell::GetRow() | קבל את אינדיקטור שורה מבוסס אפס |
Cell::GetColumn() | קבל את אינדיקטור העמודה המבוסס על אפס |
Cell::GetStyle() | קבלו את סגנון התא הנוכחי |
Cell::SetStyle(style) | הגדרת סגנון משתנה לתא |
CellValue::AsDouble() | להמיר ערך תא ל-Double |
CellValue::AsString() | להפוך ערך תא ל- string |
Cells::Merge(row, col, rows, cols) | להוסיף רצועה ישר |