کار با سلول ها و مدل داده
کار با سلول ها و مدل داده
و این 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) برای نوشتن فرمول سازگار با اکسل، فرموله ها توسط اکسیل یا خوانندگان سازنده در هنگام باز کردن فایل ارزیابی می شوند.
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 کلاس ها دارای لوازم جانبی هستند:
| Method | نوع بازگشت |
|---|---|
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();راهنمایی ها و بهترین شیوه ها
- Prefer
PutValueبیش ازSetValueبرای اعمال مستقیم به صورت حروف -PutValueبرای همه نوع های اولیه استفاده می شود. - استفاده از
GetStringValue()برای دریافت متن بدون تبدیل نوع؛ استفاده ازGetValue().AsDouble()در صورت نیاز به دقت عددی. - همیشه تماس بگیرید
SetFormulaبرای سلول های فرمول، نهPutValue("=SUM(...)")این بخش یک فرمول است نه یک قاشق. - استفاده از
CellArea::CreateCellArea(start, end)برای ساختن اشیاء محدوده برای ادغام و فرمت عملیات.
مسائل مشترک
| Issue | Cause | اصلاحی |
|---|---|---|
GetValue() بازگشت خالی | سلول نوشته نشده است. | ارزش را با PutValue قبل از خواندن |
| فرمول مورد ارزیابی قرار نگرفته است. | فرمول به عنوان string ذخیره شده است | استفاده از SetFormula(expr) به جای آن که PutValue(expr) |
| شکست خوردن | ابعاد محدوده معلول | Ensure endRow >= startRow و endColumn >= startColumn |
| نوع اشتباه در خواندن | نام اشتباه As*() روش | با این ابزار به اصل مطابقت دارد. PutValue نوع |
API خلاصه ای از ارجاعات
| کلاس / روش | Description |
|---|---|
Cell::PutValue(value) | یک مقدار واقعی برای سلول بنویسید. |
Cell::SetFormula(formula) | یک فرمول اکسل را تنظیم کنید |
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) | یک محدوده مستقیم را به هم متصل کنید. |