كيفية العمل مع XLSX التغليف في C ++
Aspose.Cells FOSS for C++ reads and writes Excel files in the .xlsx افتح شكل XML. داخلياً، XlsxWorkbookSerializer يقوم هذا الدليل بتوضيح كيفية استخدام لوحة التحميل/التخزين API وما الذي يديره الطبقة التغليفية تلقائياً.
خطوة بخطوة دليل
الخطوة 1: إعداد البناء
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 داخلياً لفك جميع أجزاء Open XML:
int main() {
Workbook workbook("input.xlsx");
Worksheet& sheet = workbook.GetWorksheets()[0];
std::string title = sheet.GetCells()["A1"].GetStringValue();
return 0;
}الخطوة 4: قم بتعديل دفتر العمل
إجراء أي تغييرات في الخلية أو النمط أو الهيكل باستخدام واجهة برمجة التطبيق القياسية:
sheet.GetCells()["A1"].PutValue("Updated Title");
sheet.GetCells()["B2"].PutValue(99.0);
sheet.GetCells()["C3"].SetFormula("=B2*2");الخطوة 5: حفظ دفتر العمل
اتصلوا Workbook::Save(fileName) لتجميع جميع أجزاء Open XML مرة أخرى في أرشيف XLSX:
workbook.Save("output.xlsx");
workbook.Dispose();يتم استنتاج الشكل من الملفات: .xlsx المدة الإضافية. XlsxWorkbookSerializer::Save طريقة التعامل مع كتابة xl/workbook.xml, xl/worksheets/sheet*.xml, xl/styles.xml,، و xl/sharedStrings.xml الأجزاء تلقائياً.
الخطوة 6: فهم ما يديره طبقة التعبئة
لا تحتاج إلى التفاعل مع أجزاء العبوة الداخلية مباشرة. المسلسل يتعامل:
| الجزء الثاني | مديرها: |
|---|---|
| هيكل دفتر العمل | XlsxWorkbookProperties |
| بيانات ورقة العمل | WorksheetXmlMapper |
| أنماط وخطوط النصوص | XlsxWorkbookStyles |
| السلاسل المشتركة | SharedStringTableXmlMapper |
| خصائص الوثيقة | XlsxDocumentProperties |
| أسماء محددة | XlsxWorkbookDefinedNames |
مشكلات و تصحيحات مشتركة
يتم حفظ الملف ولكن لا يفتح في Excel تأكد من أن طريق ملف الناتج يستخدم المخطط .xlsx الإضافة: إن حفظ الملف باستخدام إضافة أخرى قد ينتج ملفاً غير معروف.
الأسلوبات المفقودة بعد الرحلة ذهابًا وإيابًة التقدم بطلب Cell::SetStyle(style) قبل الاتصال Workbook::Save.النماذج المعدلة بعد الحفاظ لا تكتب.
تحميل الملفات كخالية تحقق من أن الملف غير محمي بكلمة مرور و هو XLSX صالح (ليس .xls أو .xlsm) وتدعم المكتبة .xlsx فقط.
أسماء محددة مفقودة بعد حفظها استخدام Workbook::EnsureUniqueDefinedName() قبل الحفاظ على حل أي نزاعات نطاق.
الذاكرة غير مفرحة اتصلوا workbook.Dispose() بعد توفير لتحرير جميع موارد التعبئة الداخلية XLSX.
الأسئلة المتكررة
هل يمكنني حفظها إلى تنسيقات أخرى غير XLSX؟?
النسخة الحالية 0.1 تدعم الحفظ إلى XLSX فقط. يتم دعم تحميل CSV ولكن المحفوظات إلى CS V غير متوفرة.
هل تحتفظ المكتبة بالأجزاء الموجودة التي لم أعدلها؟?
نعم، المسلسل يُحاول تحميل كل الأجزاء. البيانات غير المعدلة والأنماط والأسماء المعروضة يتم حفظها في الحفظ.
هل يمكنني فحص XML الخام من جزء من دفتر العمل؟?
المجلس الوزاري XmlDocument::SaveToUtf8() يسلس المنهج وثيقة XML إلى سلسلة. ومع ذلك، لا يتم عرض الوصول المباشر لأجزاء أرشيف XLSX في API العام. استخدام XmlDocument لمعالجة XML المخصصة.
هل هناك واجهة برمجة لملفات كبيرة؟?
لا، النسخة الحالية تحميل الكتيب كله في الذاكرة. لملفات كبيرة جداً، النظر في قطع معالجة الخاص بك إلى كتب أصغر.
ماذا سيحدث إذا قمت بحفظ نفس الملف الذي تحمله؟?
هذا مدعوم. مكتبة تكتب إلى عداد التخزين الداخلي الجديد قبل إعادة كتابة الملف على القرص، لذلك في مكان حفظ لا يفسد المصدر.