Cara Mengunggah Spreadsheet dalam 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, dan Cell kelas.
Panduan Langkah-Langkah
Langkah 1: Siapkan Bangunan
Tambahkan Aspose.Cells FOSS untuk C++ ke proyek CMake Anda:
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)Langkah 2: Sertakan Judul yang Diperlukan
#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;Langkah 3: Isi Buku Kerja
Pasang jalur file ke Workbook Konstruktor untuk memuat file XLSX yang ada:
int main() {
Workbook workbook("input.xlsx");
// workbook is now loaded and ready to use
return 0;
}Langkah 4: Akses Lembar Kerja
Penggunaan Workbook::GetWorksheets() untuk mengambil koleksi lembar kerja, lalu akses dengan indeks:
Worksheet& sheet = workbook.GetWorksheets()[0];
std::string name = sheet.GetName();Langkah 5: Baca Nilai Sel
Akses sel dengan string alamat dan baca nilainya:
std::string text = sheet.GetCells()["A1"].GetStringValue();
double number = sheet.GetCells()["B2"].GetValue().AsDouble();
bool flag = sheet.GetCells()["C3"].GetValue().AsBool();Langkah 6: Simpan Perubahan Anda
Setelah melakukan modifikasi, simpan kembali ke file:
workbook.Save("output.xlsx");
workbook.Dispose();Masalah dan Fixes Umum
File tidak ditemukan kesalahan saat loading Verifikasi jalur file benar dan file itu ada. Gunakan jalur mutlak jika direktori kerja tidak pasti.
String kosong dikembalikan untuk sel numerik Penggunaan GetValue().AsDouble() sebagai pengganti GetStringValue() — GetStringValue() mengembalikan string kosong untuk sel yang berisi angka bukan teks.
Buku kerja dimuat tetapi sel tampak kosong Pastikan file XLSX tidak dilindungi kata sandi. Aspose.Cells FOSS untuk C++ tidak mendukung file terenkripsi.
Sel rumus mengembalikan nilai tak terduga Sel rumus menyimpan string formula, bukan nilai yang dihitung. Formula dievaluasi oleh Excel saat file dibuka. Gunakan GetFormula() untuk mengambil teks rumus.
Memori tidak dilepaskan setelah pemrosesan Call workbook.Dispose() setelah semua operasi selesai untuk melepaskan sumber daya yang tidak dikelola.
Pertanyaan yang sering ditanya
Bisakah saya memuat beberapa lembar kerja dari satu file?
Ya, gunakan. Workbook::GetWorksheets() untuk mengakses semua lembar dan mengulang dengan indeks. Call sheet.GetName() untuk mengidentifikasi setiap lembar dengan nama.
Bisakah saya memuat file XLSX dengan beberapa lembar dan membaca dari satu tertentu?
Ya, lembar akses berdasarkan indeks nol: workbook.GetWorksheets()[1] mengembalikan lembar kedua.
Apakah memuat file memicu rumus perhitungan ulang?
Tidak. Perpustakaan memuat nilai sel dan string rumus seperti yang disimpan dalam file XLSX. Rekomputasi formula terjadi di Excel atau pembaca kompatibel ketika file dibuka.
Apa yang terjadi jika jalur file berisi karakter Unicode?
Pergilah sebagai seorang std::string dengan pengkodean yang benar untuk platform Anda. Jalur UTF-8 didukung pada Linux dan macOS. Pada Windows, pastikan penekanan jalur sesuai dengan lokasi sistem.
Apakah aman untuk memuat file yang sama beberapa kali secara bersamaan?
Perpustakaan tidak aman untuk akses bersamaan ke yang sama. Workbook contoh. beban terpisah Workbook instansi per thread.