چگونه با بسته بندی XLSX در C++ کار کنیم

چگونه با بسته بندی XLSX در C++ کار کنیم

Aspose.Cells FOSS for C++ reads and writes Excel files in the .xlsx در فرمت XML باز، در داخل XlsxWorkbookSerializer کلاس ارکستر بارگذاری و ذخیره تمام قطعات کتاب کار.این راهنمای توضیح می دهد که چگونه از API بار / ذخایر استفاده کنید و چه چیزی لایه بسته بندی به طور خودکار مدیریت می شود.

راهنمای گام به گام

مرحله اول: ساختن ساختمان را تنظیم کنید.

cmake_minimum_required(VERSION 3.15)
project(XlsxPackaging CXX)
set(CMAKE_CXX_STANDARD 17)

add_subdirectory(path/to/Aspose.Cells-FOSS-for-Cpp)
add_executable(XlsxPackaging main.cpp)
target_link_libraries(XlsxPackaging PRIVATE Aspose.Cells.Foss.Cpp)

مرحله دوم: شامل سرها

#include "aspose/cells_foss/Workbook.h"
#include "aspose/cells_foss/Worksheet.h"
#include "aspose/cells_foss/Cell.h"

using namespace Aspose::Cells_FOSS;

مرحله 3: یک فایل XLSX موجود را بارگذاری کنید.

و این Workbook(filePath) سازنده تماس XlsxWorkbookSerializer::Load برای حذف تمام قسمت های XML باز:

int main() {
    Workbook workbook("input.xlsx");
    Worksheet& sheet = workbook.GetWorksheets()[0];
    std::string title = sheet.GetCells()["A1"].GetStringValue();
    return 0;
}

مرحله چهارم: تغییر کتاب کار

هر گونه تغییرات سلولی، سبک یا ساختاری را با استفاده از API استاندارد انجام دهید:

sheet.GetCells()["A1"].PutValue("Updated Title");
sheet.GetCells()["B2"].PutValue(99.0);
sheet.GetCells()["C3"].SetFormula("=B2*2");

مرحله پنجم: کتاب را ذخیره کنید.

Call Workbook::Save(fileName) برای بسته بندی تمام قطعات XML باز به یک آرشیو XLSX:

workbook.Save("output.xlsx");
workbook.Dispose();

این فرم از .xlsx تمدید - The XlsxWorkbookSerializer::Save روش نوشتن کار با نوشتار xl/workbook.xml, xl/worksheets/sheet*.xml, xl/styles.xmlxl/sharedStrings.xml به صورت اتوماتیک تقسیم می شود.


مرحله 6: درک آنچه که لایه بسته بندی مدیریت می کند

شما نیازی به تعامل با داخل بسته بندی ندارید.در این قسمت از مجموعه ها:

Partمدیریت شده توسط
ساختار کتاب کارXlsxWorkbookProperties
کارگاه داده هاWorksheetXmlMapper
سبک ها و فونت هاXlsxWorkbookStyles
تکه های مشترکSharedStringTableXmlMapper
اموال مستنداتXlsxDocumentProperties
نام های تعریف شدهXlsxWorkbookDefinedNames

مشکلات و اصلاحات مشترک

فایل ها ذخیره می شوند اما در اکسل باز نمی شوند. اطمینان حاصل کنید که مسیر فایل خروجی از طریق .xlsx پس انداز با یک افزونه متفاوت می تواند یک فایل ناشناخته را تولید کند.

سبک های گمشده پس از سفرهای دوردست Apply Cell::SetStyle(style) قبل از تماس Workbook::Save.سبک های تغییر یافته پس از ذخیره نوشته نشده است.

فایل ها خالی می شوند بررسی فایل محافظت شده با رمز عبور نیست و معتبر XLSX است (نه) .xls یا .xlsmکتابخانه حمایت می کند. .xlsx فقط .

نام های مشخصی که پس از نجات ناپدید می شوند استفاده از Workbook::EnsureUniqueDefinedName() قبل از صرفه جویی برای حل هر گونه درگیری محدوده.

حافظه منتشر نشده Call workbook.Dispose() پس از صرفه جویی برای آزاد کردن تمام منابع داخلی بسته بندی XLSX.

پرسش های متداول

آیا می توانم به فرمت های غیر از XLSX ذخیره کنم؟?

نسخه فعلی v0.1 فقط برای XLSX ذخیره می کند.Cv بارگذاری پشتیبانی می شود اما ذخایر CSV در دسترس نیست.

آیا کتابخانه قطعات موجود را که من اصلاح نکرده ام حفظ می کند؟?

بله، سریالیز تمام قسمت هایی را که بارگذاری می کند به صورت گرد و غبار می چرخد. داده های ورق کار غیر قابل تغییر، سبک ها و نام های تعریف شده در ذخیره ذخایر ذخیه می شوند.

آیا می توانم XML خام یک بخش کتاب کار را بررسی کنم؟?

و این XmlDocument::SaveToUtf8() روش یک سند XML را به یک ردیف سریالی می کند.با این حال، دسترسی مستقیم به بخش های آرشیو XLSX در API عمومی قرار نمی گیرد.استفاده از XmlDocument برای پردازش XML سفارشی.

آیا API برای فایل های بزرگ وجود دارد؟?

نسخه فعلی کل دفترچه کار را به حافظه می رساند.برای فایل های بسیار بزرگ، در نظر بگیرید که پردازش خود را در کتاب های کوچک تر قرار دهید.

چه اتفاقی می افتد اگر من از همان فایل که بارگذاری کرده ام ذخیره کنم؟?

کتابخانه قبل از نوشتن فایل بر روی دیسک، به یک دفترچه داخلی جدید می نویسد، بنابراین ذخیره سازی در محل منبع را خراب نمی کند.

See Also

 فارسی