วิธีการอัตราค่าตารางใน C++

วิธีการอัตราค่าตารางใน 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 constructor เพื่ออัตราการโหลดไฟล์ 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 for C++ ไม่ได้สนับสนุนไฟลีกที่เข้ารบ.

เซลล์สูตรคืนค่าที่ไม่คาดหวัง เซลล์สูตรเก็บรหัสสูท, ไม่ใช่ค่าคํานวณ. สูตรจะประเมินโดย Excel เมื่อไฟล์ถูกเปิด ใช้ GetFormula() เพื่อหาคําบรรยายสูตร.

ความจําไม่ได้ปล่อยหลังจากการประมวลผล Call workbook.Dispose() หลังจากการดําเนินงานทั้งหมดจะเสร็จสิ้น เพื่อปล่อยทรัพยากรที่ไม่ได้จัดการ.

คําถามที่พบบ่อย

ผมสามารถอัตราการทํางานหลายใบจากไฟล์เดียวได้หรือไม่?

ใช่ ใช้ Workbook::GetWorksheets() เพื่อเข้าถึงทุกใบ และการคัดสรรตามอัตรานิยาม. เรียก sheet.GetName() การระบุใบแต่ละใบตามชื่อ.

ผมสามารถอัตราการโหลดไฟล์ XLSX ด้วยใบหลายแผ่น และอ่านจากชิ้นหนึ่งเฉพาะ?

ใช่ ใบเข้าถึงตามอัตราฐานศูนย์: workbook.GetWorksheets()[1] กลับใบที่สอง.

การอัตราค่าไฟล์จะทําให้สูตรคํานวณใหม่ได้หรือไม่?

ไม่ ห้องสมุดจะโหลดค่าเซลล์และเส้นสูตรตามที่เก็บไว้ในไฟล์ XLSX การคํานวณใหม่ของสูติเกิดขึ้นใน Excel หรือ Reader ที่สอดคล้อง เมื่อเปิดไฟ่.

เกิดอะไรขึ้นถ้าเส้นทางไฟล์มีตัวอักษร Unicode?

ผ่านทางเป็น std::string ด้วยการโค้ดที่ถูกต้องสําหรับแพลตฟอร์มของคุณ. UTF-8 Paths ได้รับรองใน Linux และ macOS ใน Windows, ให้แน่ใจว่า การโค๊ดทางตรงกับระบบท้องถิ่น.

มันปลอดภัยไหมที่จะอัพโหลดไฟล์เดียวกันหลายครั้งพร้อมกัน?

ห้องสมุดไม่ปลอดภัยสําหรับการเข้าถึงในขณะเดียวกันกับ Workbook ตัวอย่าง การแบ่งภาระแยกกัน Workbook ตัวอย่างต่อเส้นความรู้.

See Also

 ภาษาไทย