วิธีการอัตราค่าตารางใน 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 ตัวอย่างต่อเส้นความรู้.