การทํางานกับเซลล์และแบบจําลองข้อมูล

การทํางานกับเซลล์และแบบจําลองข้อมูล

การทํางานกับเซลล์และแบบจําลองข้อมูล

การ Cell class เป็นอินเตอร์เฟสหลักสําหรับการอ่านและเขียนค่าเซลล์ตารางกระดาษส่วนตัว สูตร และรูปแบบ การเข้าถึงเซิลผ่านหน้างานของ worksheet 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(), ซึ่งคืน a CellValue object เปลี่ยนแปลงเป็นชนิดเฉพาะ โดยใช้เครื่องมือที่เหมาะสม:

CellValue val = sheet.GetCells()["B2"].GetValue();
double price = val.AsDouble();
std::string text = sheet.GetCells()["A2"].GetStringValue();

การ CellValue class ให้การประกอบ accessors:

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) เพื่อสร้างวัตถุระยะสําหรับการรวมและการจัดรูปแบบ.

ปัญหาทั่วไป

IssueCauseแก้ไข
GetValue() กลับเปล่าเซลล์ไม่ได้ถูกเขียนเขียนค่าด้วย PutValue ก่อนอ่าน
สูตรที่ไม่ได้ประเมินสูตรที่บันทึกเป็นสตริงการใช้งาน SetFormula(expr) แทนของ PutValue(expr)
การรวมทรัพย์สินล้มเหลวขนาดระยะที่ไม่ถูกต้องEnsure endRow >= startRow และ endColumn >= startColumn
การไม่ตรงกันของชนิดในการอ่านการเรียกผิด As*() วิธีการติดต่อเครื่องมือกับตัวเดิม PutValue ประเภท

คําอธิบายการพบบ่อย API

ประเภท/วิธีการDescription
Cell::PutValue(value)เขียนค่าตัวจริงในเซลล์
Cell::SetFormula(formula)กําหนดรุ่นสูตร Excel
Cell::GetValue()การเรียกค่าเซลล์เป็น a CellValue
Cell::GetStringValue()รับค่าเซลล์เป็นสตริง
Cell::GetDisplayStringValue()การค้นหารหัสการแสดงที่รูปแบบ
Cell::GetRow()รับอัตราการแสดงแถวที่เน้นศูนย์
Cell::GetColumn()รับอัตราการแสดงคอลัมน์ที่เน้นศูนย์
Cell::GetStyle()รับรูปแบบเซลล์ปัจจุบัน
Cell::SetStyle(style)ใช้รูปแบบที่เปลี่ยนไปในเซลล์
CellValue::AsDouble()เปลี่ยนค่าเซลล์เป็นสองเท่า
CellValue::AsString()เปลี่ยนค่าเซลล์เป็นสตริง
Cells::Merge(row, col, rows, cols)การรวมระยะสี่เหลี่ยม

See Also

 ภาษาไทย