Cara Mengunggah Spreadsheet dalam C++

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.

See Also

 Bahasa Indonesia