diff --git a/cells/arabic/net/calculation-engine/_index.md b/cells/arabic/net/calculation-engine/_index.md index fdf2dad6b4..8ea48e9b98 100644 --- a/cells/arabic/net/calculation-engine/_index.md +++ b/cells/arabic/net/calculation-engine/_index.md @@ -47,6 +47,8 @@ ### [تحسين وقت حساب Excel باستخدام الخيارات المتكررة في Aspose.Cells لـ .NET](./optimize-calculation-time-recursive-aspose-cells-net) تعرّف على كيفية تحسين أوقات حسابات Excel باستخدام الخيارات التكرارية في Aspose.Cells لـ .NET. يغطي هذا الدليل الإعداد، ونصائح الأداء، والتطبيقات العملية. +### [إجبار حساب الصيغة في C# – دليل شامل لأتمتة Excel](./force-formula-calculation-in-c-complete-guide-to-excel-autom/) +تعلم كيفية إجبار حساب الصيغ في C# لتسريع أتمتة Excel باستخدام Aspose.Cells. ## فوائد diff --git a/cells/arabic/net/calculation-engine/force-formula-calculation-in-c-complete-guide-to-excel-autom/_index.md b/cells/arabic/net/calculation-engine/force-formula-calculation-in-c-complete-guide-to-excel-autom/_index.md new file mode 100644 index 0000000000..d9d179d84b --- /dev/null +++ b/cells/arabic/net/calculation-engine/force-formula-calculation-in-c-complete-guide-to-excel-autom/_index.md @@ -0,0 +1,261 @@ +--- +category: general +date: 2026-01-14 +description: إجبار حساب الصيغ في C# باستخدام Aspose.Cells – تعلم كيفية حساب صيغ Excel، + واستخدام دالة REDUCE، وتحويل markdown إلى Excel وحفظ مصنف Excel بكفاءة. +draft: false +keywords: +- force formula calculation +- calculate excel formulas +- reduce function excel +- convert markdown to excel +- save excel workbook +language: ar +og_description: إجبار حساب الصيغ في C# باستخدام Aspose.Cells. دليل خطوة بخطوة يغطي + حساب صيغ Excel، دالة REDUCE، تحويل markdown وحفظ المصنف. +og_title: حساب صيغة القوة في C# – دليل كامل لأتمتة Excel +tags: +- Aspose.Cells +- C# +- Excel automation +title: حساب معادلة القوة في C# – دليل كامل لأتمتة Excel +url: /ar/net/calculation-engine/force-formula-calculation-in-c-complete-guide-to-excel-autom/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# حساب الصيغة بالقوة في C# – دليل شامل لأتمتة Excel + +هل احتجت يومًا إلى **إجبار حساب الصيغة** في ملف Excel تم إنشاؤه من C# لكنك لم تكن متأكدًا من أين تبدأ؟ أنت لست وحدك. يواجه العديد من المطورين صعوبة عندما يرغبون في *حساب صيغ Excel* مباشرةً، خاصةً مع وظائف Office‑365 الحديثة مثل `REDUCE` أو عند تحويل مستند Markdown إلى جدول بيانات. + +في هذا الدرس سنستعرض مثالًا واقعيًا يوضح كيفية **إجبار حساب الصيغة**، واستخدام **دالة REDUCE في Excel**، وتحويل ملف Markdown (متضمنًا صور base‑64) إلى مصنف Excel، وأخيرًا **حفظ مصنف Excel** مع أقسام شرطية باستخدام Smart Marker. في النهاية ستحصل على مشروع جاهز للتنفيذ يمكنك إدراجه في أي حل .NET. + +> **نصيحة احترافية:** يستخدم الكود Aspose.Cells 23.12 (أو أحدث). إذا كنت تستخدم نسخة أقدم، قد تحتاج بعض الدوال إلى تعديل بسيط، لكن سير العمل العام يبقى كما هو. + +--- + +## ما ستبنيه + +- إنشاء مصنف جديد وإضافة صيغ Office‑365. +- **إجبار حساب الصيغة** بحيث تُحفظ النتائج في الخلايا. +- تطبيق معالجة Smart Marker مع معامل `IF` لإظهار/إخفاء الأقسام. +- تحميل ملف Markdown، تمكين صور base‑64، و**تحويل markdown إلى Excel**. +- **حفظ مصنف Excel** على القرص. + +لا توجد خدمات خارجية، ولا حاجة لفتح Excel يدويًا—فقط كود C# نقي. + +--- + +## المتطلبات المسبقة + +- .NET 6+ (أي بيئة تشغيل .NET حديثة تعمل) +- Aspose.Cells for .NET (حزمة NuGet `Aspose.Cells`) +- إلمام أساسي بـ C# ودوال Excel +- مجلد اسمه `YOUR_DIRECTORY` يحتوي على قالب Smart Marker (`SmartMarkerVar.xlsx`) وملف Markdown (`docWithImages.md`) + +--- + +## الخطوة 1: إعداد المشروع وإضافة Aspose.Cells + +أولاً، أنشئ تطبيق console جديد: + +```bash +dotnet new console -n ExcelAutomationDemo +cd ExcelAutomationDemo +dotnet add package Aspose.Cells +``` + +افتح `Program.cs` واستبدل محتواه بالهيكل الأساسي أدناه. سيستضيف هذا الهيكل جميع الخطوات التي سنملأها لاحقًا. + +```csharp +using Aspose.Cells; +using System; + +namespace ExcelAutomationDemo +{ + class Program + { + static void Main() + { + // We'll call helper methods here. + CreateWorkbookWithFormulas(); + ApplySmartMarker(); + ConvertMarkdownToExcel(); + } + + // Methods will be defined later. + } +} +``` + +--- + +## الخطوة 2: إضافة صيغ Office‑365 و**إجبار حساب الصيغة** + +الآن سننشئ مصنفًا، نضع فيه بعض الصيغ الحديثة في الخلايا، و**نجبر حساب الصيغة** بحيث تُحفظ القيم. هذا هو جوهر *إجبار حساب الصيغة*. + +```csharp +static void CreateWorkbookWithFormulas() +{ + // 1️⃣ Create a new workbook and grab the first worksheet. + Workbook officeWorkbook = new Workbook(); + Worksheet officeSheet = officeWorkbook.Worksheets[0]; + + // 2️⃣ Insert a variety of Office‑365 formulas. + officeSheet.Cells[0, 0].Formula = "=EXPAND(A1:A3,5,1)"; // Expands a vertical range. + officeSheet.Cells[1, 0].Formula = "=REDUCE(0,A1:A5,LAMBDA(a,b,a+b))"; // Uses REDUCE. + officeSheet.Cells[2, 0].Formula = "=COT(PI()/4)"; // Simple cotangent. + officeSheet.Cells[3, 0].Formula = "=COTH(1)"; // Hyperbolic cotangent. + + // 3️⃣ Force the workbook to calculate all formulas now. + // This is the key line that *forces formula calculation*. + officeSheet.CalculateFormula(); + + // 4️⃣ Save the intermediate workbook for inspection. + officeWorkbook.Save("YOUR_DIRECTORY/forceFormulaDemo.xlsx"); +} +``` + +> **لماذا نحتاج `CalculateFormula()`** – بدون استدعائه، تظل الصيغ غير مُقيمة حتى يتم فتح الملف في Excel. عبر استدعاء هذه الطريقة، *نُجبر حساب الصيغة* على جانب الخادم، وهو أمر أساسي لسلاسل تقارير الأتمتة. + +--- + +## الخطوة 3: تطبيق معالجة Smart Marker مع معامل **IF** + +يتيح لك Smart Marker تضمين نواقل في القالب واستبدالها بالبيانات وقت التشغيل. هنا سنظهر الأقسام الشرطية باستخدام معامل `IF`، وهو ما يرتبط بـ *حساب صيغ Excel* بحيث يحتوي المصنف النهائي على نتائج ثابتة وبيانات ديناميكية. + +```csharp +static void ApplySmartMarker() +{ + // Load the Smart Marker template that contains {{Title}} and conditional blocks. + Workbook smartMarkerTemplate = new Workbook("YOUR_DIRECTORY/SmartMarkerVar.xlsx"); + + // Prepare the data object – note the boolean `ShowDetails` that drives the IF logic. + var reportData = new + { + Title = "Sales Report", + ShowDetails = true, + Items = new[] + { + new { Product = "A", Qty = 10 }, + new { Product = "B", Qty = 5 } + } + }; + + // Configure the Smart Marker options – the IF parameter tells the engine which + // sections to keep. + SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions + { + IfParameter = "ShowDetails" + }; + + // Apply the data to the template. + new SmartMarkerProcessor(smartMarkerTemplate).Apply(reportData, smartMarkerOptions); + + // Finally, **save the Excel workbook** with the populated data. + smartMarkerTemplate.Save("YOUR_DIRECTORY/reportWithIf.xlsx"); +} +``` + +> **حالة حافة:** إذا كان `ShowDetails` يساوي `false`، يختفي القسم الشرطي، مما يترك تقريرًا نظيفًا. هذه المرونة هي السبب في أن Smart Marker يتكامل جيدًا مع *إجبار حساب الصيغة*—يمكنك حساب القيم مسبقًا، ثم تقرر ما ستظهره. + +--- + +## الخطوة 4: **تحويل Markdown إلى Excel** – بما في ذلك صور Base‑64 + +Markdown هو لغة توصيف خفيفة الوزن يحبها العديد من الفرق لتوثيقها. يمكن لـ Aspose.Cells قراءة ملف `.md`، تفسير الجداول، وحتى تضمين الصور المشفرة بـ base‑64. لنحول ملف Markdown إلى جدول بيانات. + +```csharp +static void ConvertMarkdownToExcel() +{ + // Configure the loader – enable base‑64 images and link reference definitions. + MarkdownLoadOptions markdownOptions = new MarkdownLoadOptions + { + EnableBase64Images = true, + EnableLinkReferenceDefinitions = true + }; + + // Load the Markdown file. The loader parses headings, tables, and images. + Workbook markdownWorkbook = new Workbook("YOUR_DIRECTORY/docWithImages.md", markdownOptions); + + // Save the result as an .xlsx file. + markdownWorkbook.Save("YOUR_DIRECTORY/convertedFromMd.xlsx"); +} +``` + +> **لماذا هذا مهم:** من خلال تحويل الوثائق مباشرة إلى Excel، يمكنك إنشاء تقارير مدفوعة بالبيانات تتضمن عناصر بصرية دون الحاجة إلى نسخ يدوي. تُظهر هذه الخطوة قدرة *تحويل markdown إلى excel* مع إمكانية **حفظ مصنف Excel** لاحقًا في سير العمل. + +--- + +## الخطوة 5: التحقق من النتائج + +شغّل البرنامج: + +```bash +dotnet run +``` + +يجب أن ترى الآن ثلاثة ملفات جديدة في `YOUR_DIRECTORY`: + +1. `forceFormulaDemo.xlsx` – يحتوي على صيغ مُقيمة (`EXPAND`, `REDUCE`, إلخ). +2. `reportWithIf.xlsx` – تقرير Smart Marker يراعي علم `ShowDetails`. +3. `convertedFromMd.xlsx` – نسخة Excel مطابقة لملف Markdown الخاص بك، متضمنة أي صور base‑64. + +افتح أيًا منها في Excel لتتأكد من أن: + +- نتائج الصيغ موجودة (لا توجد نُسخ `#N/A`). +- الصفوف الشرطية تظهر أو تختفي بناءً على العلم البولياني. +- الصور من Markdown تُعرض بشكل صحيح. + +--- + +## الأسئلة الشائعة & المشكلات + +| السؤال | الجواب | +|----------|--------| +| **هل أحتاج إلى ترخيص Office 365 لاستخدام الدوال الجديدة؟** | لا. تقوم Aspose.Cells بتنفيذ الدوال داخليًا، لذا يمكنك استخدام `REDUCE`, `EXPAND` وغيرها دون اشتراك. | +| **ماذا لو كان ملف Markdown يحتوي على روابط صور خارجية؟** | اضبط `EnableExternalImages = true` في `MarkdownLoadOptions`. سيقوم المحمل بتنزيل الصورة وقت التشغيل. | +| **هل يمكنني حساب الصيغ بعد معالجة Smart Marker؟** | بالتأكيد. استدعِ `worksheet.CalculateFormula()` مرة أخرى بعد `Apply()` إذا أضفت صيغًا جديدة أثناء المعالجة. | +| **هل معامل `IfParameter` حساس لحالة الأحرف؟** | يطابق اسم الخاصية تمامًا، لذا حافظ على التناسق في كتابة الأحرف. | +| **ما هو الحد الأقصى لحجم المصنف قبل أن تتدهور الأداء؟** | تدعم Aspose.Cells ملايين الصفوف، لكن للملفات الضخمة جدًا يفضَّل استخدام واجهات البث (`WorkbookDesigner`, `WorksheetDesigner`). | + +--- + +## نصائح الأداء + +- **حسابات مجمعة:** إذا كنت تعالج عدة أوراق عمل، استدعِ `Workbook.CalculateFormula()` مرة واحدة بعد إتمام جميع التغييرات. +- **إعادة استخدام كائنات الخيارات:** أنشئ كائن `MarkdownLoadOptions` واحدًا وأعد استخدامه لعدة ملفات لتقليل ضغط الـ GC. +- **إيقاف الميزات غير الضرورية:** اضبط `WorkbookSettings.CalcEngineEnabled = false` عندما تحتاج فقط إلى نسخ البيانات دون حساب. + +--- + +## الخطوات التالية + +بعد إتقانك **إجبار حساب الصيغة**، قد ترغب في استكشاف: + +- **المصفوفات الديناميكية:** استخدم `SEQUENCE`, `SORT`, `FILTER` مع `CalculateFormula()` لإعادة تشكيل البيانات بفعالية. +- **Smart Marker المتقدم:** دمج حلقات `FOR EACH` مع تنسيق شرطي لإنشاء لوحات معلومات ملونة. +- **التصدير إلى PDF:** بعد الانتهاء من جميع الحسابات، استدعِ `Workbook.Save("report.pdf", SaveFormat.Pdf)` لمشاركة نسخ للقراءة فقط. + +كل ما سبق يبني على الأساس الذي وضعناه—حساب الصيغ، التعامل مع البيانات الشرطية، وتحويل صيغ المحتوى. + +--- + +## الخلاصة + +استعرضنا حلًا كاملًا بلغة C# **يُجبر حساب الصيغة**، يوضح **دالة REDUCE في Excel**، يوضح **تحويل markdown إلى Excel**، وأخيرًا **يحفظ مصنف Excel** مع منطق شرطى باستخدام Smart Marker. المثال مستقل، يعمل مع أحدث مكتبة Aspose.Cells، ويمكن إدراجه في أي مشروع .NET. + +جرّبه، عدّل الصيغ، استبدل مصدر Markdown، وستحصل على محرك أتمتة مرن جاهز للإنتاج. برمجة سعيدة! + +--- + +![مخطط حساب الصيغة بالقوة](force-formula-calculation.png "مخطط يوضح عملية حساب الصيغة بالقوة") + +--- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/arabic/net/csv-file-handling/_index.md b/cells/arabic/net/csv-file-handling/_index.md index dca029c530..de2d200f75 100644 --- a/cells/arabic/net/csv-file-handling/_index.md +++ b/cells/arabic/net/csv-file-handling/_index.md @@ -35,6 +35,8 @@ تعرّف على كيفية فتح ملفات CSV باستخدام Aspose.Cells لـ .NET من خلال دليلنا الشامل خطوة بخطوة. إتقان معالجة البيانات. ### [فتح ملفات CSV باستخدام المحلل المفضل](./csv-file-opening-csv-files-with-preferred-parser/) تعلّم كيفية فتح ملفات CSV وتحليلها باستخدام مُحللات مخصصة في Aspose.Cells لـ .NET. تعامل مع النصوص والتواريخ بسهولة. مثالي للمطورين. +### [تصدير جدول إلى CSV – دليل C# كامل مع تنسيقات أرقام مخصصة](./export-table-to-csv-complete-c-guide-with-custom-number-form/) +تعلم كيفية تصدير الجداول إلى ملفات CSV باستخدام C# مع تنسيقات أرقام مخصصة بسهولة وفعالية. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/arabic/net/csv-file-handling/export-table-to-csv-complete-c-guide-with-custom-number-form/_index.md b/cells/arabic/net/csv-file-handling/export-table-to-csv-complete-c-guide-with-custom-number-form/_index.md new file mode 100644 index 0000000000..fb557b2ab4 --- /dev/null +++ b/cells/arabic/net/csv-file-handling/export-table-to-csv-complete-c-guide-with-custom-number-form/_index.md @@ -0,0 +1,275 @@ +--- +category: general +date: 2026-01-14 +description: تصدير جدول إلى CSV في C# وتعلم كيفية تعيين تنسيق رقم مخصص، وكتابة CSV + إلى ملف، وتمكين الحساب التلقائي — كل ذلك في درس واحد. +draft: false +keywords: +- export table to csv +- set custom number format +- write csv to file +- enable automatic calculation +- how to format numbers +language: ar +og_description: تصدير الجدول إلى CSV مع تنسيقات أرقام مخصصة، كتابة CSV إلى ملف، وتمكين + الحساب التلقائي باستخدام Aspose.Cells في C#. +og_title: تصدير الجدول إلى CSV – دليل كامل بلغة C# +tags: +- Aspose.Cells +- C# +- CSV export +- Excel automation +title: تصدير الجدول إلى CSV – دليل C# الكامل مع تنسيقات الأرقام المخصصة +url: /ar/net/csv-file-handling/export-table-to-csv-complete-c-guide-with-custom-number-form/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# تصدير الجدول إلى CSV – دليل C# كامل مع تنسيقات الأرقام المخصصة + +هل احتجت يومًا إلى **export table to CSV** لكن لم تكن متأكدًا من كيفية الحفاظ على تنسيق أرقامك بشكل أنيق؟ لست وحدك. في العديد من سيناريوهات تصدير البيانات تريد تنسيق الأرقام بشكل جميل، كتابة ملف CSV إلى القرص، والحفاظ على تزامن المصنف مع أي صيغ. يوضح لك هذا الدرس بالضبط **how to export table to CSV**، وكيفية **set custom number format**، وكيفية **write CSV to file**، وكيفية **enable automatic calculation** حتى يبقى كل شيء محدثًا. + +سنستعرض مثالًا واقعيًا باستخدام Aspose.Cells for .NET. بنهاية هذا الدليل ستحصل على برنامج C# واحد قابل للتنفيذ يقوم بـ: + +* تنسيق خلية بنمط رقمي مخصص (جزء “how to format numbers”). +* تصدير جدول الورقة الأولى إلى سلسلة CSV مع الفاصل الذي تختاره. +* حفظ سلسلة CSV تلك إلى ملف على القرص. +* تحليل تاريخ ياباني‑era وكتابته مرة أخرى إلى الورقة. +* تشغيل الحساب التلقائي حتى تعيد الصيغ الديناميكية‑array حسابها دائمًا. + +لا حاجة لمراجع خارجية — فقط انسخ، الصق، وشغّل. + +![توضيح تصدير الجدول إلى CSV](export-table-to-csv.png "مخطط تصدير الجدول إلى CSV"){: alt="مخطط تصدير الجدول إلى CSV يظهر المصنف والجدول ومخرجات CSV"} + +--- + +## ما ستحتاجه + +* **Aspose.Cells for .NET** (حزمة NuGet `Aspose.Cells`). يعمل الكود مع الإصدار 23.9 أو أحدث. +* بيئة تطوير .NET (Visual Studio، Rider، أو `dotnet CLI`). +* إلمام أساسي بصياغة C# — لا شيء معقد، فقط عبارات `using` المعتادة وطريقة `Main`. + +--- + +## الخطوة 1 – تعيين تنسيق رقم مخصص (How to Format Numbers) + +قبل أن نقوم بتصدير أي شيء، دعنا نتأكد من أن الأرقام تظهر بالطريقة التي نريدها. الخاصية `Custom` في كائن `Style` تسمح لك بتعريف نمط مثل `"0.####"` لعرض ما يصل إلى أربعة منازل عشرية مع حذف الأصفار الزائدة. + +```csharp +using Aspose.Cells; +using System; +using System.IO; + +class Program +{ + static void Main() + { + // 1️⃣ Create a new workbook and grab the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Put a raw double value into cell A1 + worksheet.Cells[0, 0].PutValue(123.456789); + + // 3️⃣ Define a custom number format – this is the “how to format numbers” piece + Style numberStyle = workbook.CreateStyle(); + numberStyle.Custom = "0.####"; // up to 4 significant digits + worksheet.Cells[0, 0].SetStyle(numberStyle); +``` + +**لماذا هذا مهم:** +عند تصدير الجدول إلى CSV لاحقًا، سيظهر الرقم العشري الخام `123.456789` كـ `123.456789`. باستخدام التنسيق المخصص، سيحتوي CSV على `123.4568` (مقرب إلى أربعة منازل عشرية) — وهو ما تتوقعه معظم أدوات التقارير. + +--- + +## الخطوة 2 – تصدير الجدول إلى CSV (الهدف الأساسي) + +تتعامل Aspose.Cells مع مجموعة من البيانات كـ `Table`. حتى إذا لم تقم بإنشاء جدول صراحةً، فإن الورقة الأولى دائمًا تحتوي على جدول افتراضي في الفهرس 0. تصدير ذلك الجدول يصبح سطرًا واحدًا بمجرد إعداد `ExportTableOptions`. + +```csharp + // 4️⃣ Grab the first table in the worksheet + Table firstTable = worksheet.Tables[0]; + + // 5️⃣ Configure export options – we want a CSV string, comma‑delimited + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + Delimiter = "," + }; + + // 6️⃣ Export to a CSV string + string csvContent = firstTable.ExportToString(exportOptions); + + // Show what we got (optional debug output) + Console.WriteLine("=== CSV CONTENT ==="); + Console.WriteLine(csvContent); +``` + +**الإخراج المتوقع للـ CSV** (مع التنسيق المخصص من الخطوة 1): + +``` +123.4568 +``` + +لاحظ كيف يحترم الرقم نمط `"0.####"` الذي وضعناه مسبقًا. هذه هي سحر **export table to csv** مع نمط رقمي مخصص. + +--- + +## الخطوة 3 – كتابة CSV إلى ملف (حفظ البيانات) + +الآن بعد أن لدينا سلسلة CSV، نحتاج إلى حفظها. طريقة `File.WriteAllText` تقوم بالمهمة، ويمكننا وضع الملف في أي مكان نريد — فقط استبدل `"YOUR_DIRECTORY"` بمسار فعلي. + +```csharp + // 7️⃣ Define where to save the CSV file + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "table.csv"); + + // 8️⃣ Write the CSV string to disk – this is the “write csv to file” step + File.WriteAllText(outputPath, csvContent); + Console.WriteLine($"CSV file written to: {outputPath}"); +``` + +**نصيحة:** إذا كنت بحاجة إلى فاصل مختلف (فاصلة منقوطة، تبويب، أو خط عمودي)، فقط غير `Delimiter` في `ExportTableOptions`. يبقى باقي الكود كما هو، مما يجعل التعديل سهلًا. + +--- + +## الخطوة 4 – تحليل تاريخ ياباني‑Era (متعة إضافية) + +غالبًا ما تحتاج إلى التعامل مع تواريخ مخصصة للمنطقة. Aspose.Cells يأتي مع `DateTimeParser` يفهم سلاسل العصور اليابانية مثل `"R02/04/01"` (ريوا 2 = 2020). لنضع هذا التاريخ في الصف التالي. + +```csharp + // 9️⃣ Set up a parser for Japanese‑era dates + DateTimeParser eraParser = new DateTimeParser { Calendar = CalendarType.JapaneseEra }; + DateTime reiwaDate = eraParser.Parse("R02/04/01"); // 2020‑04‑01 + + // 10️⃣ Write the parsed date into cell A2 + worksheet.Cells[1, 0].PutValue(reiwaDate); +``` + +الخلية الآن تحتوي على قيمة `DateTime` حقيقية، والتي سيعرضها Excel (أو أي عارض) وفقًا لإعدادات المنطقة للمصنف. + +--- + +## الخطوة 5 – تمكين الحساب التلقائي (إبقاء الصيغ محدثة) + +إذا كان المصنف يحتوي على صيغ — خاصة صيغ المصفوفة الديناميكية — فستحتاج إلى إعادة حسابها تلقائيًا بعد تعديل البيانات. تغيير وضع الحساب هو مجرد تعديل خاصية واحدة. + +```csharp + // 11️⃣ Turn on automatic calculation so formulas stay up‑to‑date + workbook.Settings.CalcMode = CalculationMode.Automatic; + + // 12️⃣ Force a calculation pass (optional but ensures everything is up‑to‑date now) + workbook.CalculateFormula(); + + // Cleanup: save the workbook if you want to inspect it later + string xlsPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "demo.xlsx"); + workbook.Save(xlsPath); + Console.WriteLine($"Workbook saved to: {xlsPath}"); + } +} +``` + +**لماذا تمكين الحساب التلقائي؟** +عند فتح `demo.xlsx` لاحقًا في Excel، أي صيغ تشير إلى الرقم المخصص التنسيق أو تاريخ الياباني‑Era ستظهر بالفعل القيم الأحدث. هذا هو جزء “enable automatic calculation” في درسنا. + +--- + +## مثال كامل يعمل (جميع الخطوات معًا) + +فيما يلي البرنامج الكامل جاهز للنسخ واللصق. لا شيء مفقود؛ فقط شغّله وسترى مخرجات وحدة التحكم والملفات تظهر على سطح المكتب. + +```csharp +using Aspose.Cells; +using System; +using System.IO; + +class Program +{ + static void Main() + { + // Create workbook and worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // Set a number with a custom format (how to format numbers) + worksheet.Cells[0, 0].PutValue(123.456789); + Style numberStyle = workbook.CreateStyle(); + numberStyle.Custom = "0.####"; + worksheet.Cells[0, 0].SetStyle(numberStyle); + + // Export the first table to CSV (export table to csv) + Table firstTable = worksheet.Tables[0]; + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + Delimiter = "," + }; + string csvContent = firstTable.ExportToString(exportOptions); + Console.WriteLine("=== CSV CONTENT ==="); + Console.WriteLine(csvContent); + + // Write CSV to file (write csv to file) + string csvPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "table.csv"); + File.WriteAllText(csvPath, csvContent); + Console.WriteLine($"CSV file written to: {csvPath}"); + + // Parse a Japanese‑era date and write it to the sheet + DateTimeParser eraParser = new DateTimeParser { Calendar = CalendarType.JapaneseEra }; + DateTime reiwaDate = eraParser.Parse("R02/04/01"); + worksheet.Cells[1, 0].PutValue(reiwaDate); + + // Enable automatic calculation (enable automatic calculation) + workbook.Settings.CalcMode = CalculationMode.Automatic; + workbook.CalculateFormula(); + + // Save the workbook for inspection + string xlsPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "demo.xlsx"); + workbook.Save(xlsPath); + Console.WriteLine($"Workbook saved to: {xlsPath}"); + } +} +``` + +**قائمة التحقق من النتائج** + +| ✅ | ما يجب أن تراه | +|---|----------------------| +| ملف CSV `table.csv` على سطح المكتب يحتوي على `123.4568` | +| ملف Excel `demo.xlsx` على سطح المكتب مع الرقم المخصص التنسيق في الخلية A1 وتاريخ الياباني‑era (2020‑04‑01) في الخلية A2 | +| مخرجات وحدة التحكم التي تؤكد كل خطوة | + +--- + +## أسئلة شائعة وحالات خاصة + +**س: ماذا لو كان للجدول رؤوس؟** +ج: خاصية `ShowHeaders` في `ExportTableOptions` تحترم رؤوس الجدول. عيّن `firstTable.ShowHeaders = true;` قبل التصدير، وسيتم تضمين صف الرأس تلقائيًا في CSV. + +**س: هل يمكنني تصدير جداول متعددة مرة واحدة؟** +ج: بالتأكيد. يمكنك التكرار عبر `worksheet.Tables` ودمج سلاسل CSV، أو حفظ كل منها في ملف منفصل. تذكر تعديل `Delimiter` إذا احتجت فاصلًا مختلفًا لكل ملف. + +**س: أحتاج إلى فاصل آلاف في أرقامي (مثال: `1,234.56`).** +ج: غيّر التنسيق المخصص إلى `"#,##0.##"` وسيحتوي CSV المصدر على الفواصل. ضع في اعتبارك أن بعض محللات CSV تتعامل مع الفواصل كفواصل، لذا قد تحتاج إلى استخدام فاصلة منقوطة (`Delimiter = ";"`) لتجنب الالتباس. + +**س: أستهدف .NET 6 — هل هناك مشاكل توافق؟** +ج: لا. Aspose.Cells 23.9+ يستهدف .NET Standard 2.0+، لذا يعمل بسلاسة مع .NET 6، .NET 7، وحتى .NET Framework 4.8. + +--- + +## ملخص + +غطّينا كيفية **export table to csv** مع الحفاظ على **custom number format**، وكيفية **write csv to file**، وكيفية **enable automatic calculation** حتى يبقى المصنف متزامنًا. كما أضفنا عرضًا سريعًا لتحليل تاريخ ياباني‑ + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/arabic/net/exporting-excel-to-html-with-advanced-options/_index.md b/cells/arabic/net/exporting-excel-to-html-with-advanced-options/_index.md index 36d89f943e..eacfcef4d8 100644 --- a/cells/arabic/net/exporting-excel-to-html-with-advanced-options/_index.md +++ b/cells/arabic/net/exporting-excel-to-html-with-advanced-options/_index.md @@ -85,6 +85,8 @@ تعرّف على كيفية استخدام Aspose.Cells لـ .NET لتعيين عرض أعمدة قابل للتطوير في ملفات Excel برمجيًا. مثالي لعرض البيانات بكفاءة. ### [تعيين اسم علامة تبويب ورقة واحدة في تصدير HTML](./setting-single-sheet-tab-name/) يمكنك بسهولة تعيين اسم علامة تبويب ورقة واحدة أثناء تصدير HTML باستخدام Aspose.Cells لـ .NET. دليل خطوة بخطوة مع أمثلة برمجية. +### [كيفية تضمين الخطوط في HTML – دليل C# كامل](./how-to-embed-fonts-in-html-complete-c-guide/) +تعرف على طريقة تضمين الخطوط في HTML باستخدام Aspose.Cells لـ .NET مع دليل C# شامل خطوة بخطوة. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/arabic/net/exporting-excel-to-html-with-advanced-options/how-to-embed-fonts-in-html-complete-c-guide/_index.md b/cells/arabic/net/exporting-excel-to-html-with-advanced-options/how-to-embed-fonts-in-html-complete-c-guide/_index.md new file mode 100644 index 0000000000..b0b3fbc05e --- /dev/null +++ b/cells/arabic/net/exporting-excel-to-html-with-advanced-options/how-to-embed-fonts-in-html-complete-c-guide/_index.md @@ -0,0 +1,219 @@ +--- +category: general +date: 2026-01-14 +description: كيفية تضمين الخطوط في HTML وإجبار حساب الصيغ أثناء تحويل Excel إلى HTML. + تعلم تعيين منطقة الطباعة وتصدير المخططات. +draft: false +keywords: +- how to embed fonts +- embed fonts in html +- force formula calculation +- convert excel to html +- how to set print area +language: ar +og_description: كيفية تضمين الخطوط في HTML، فرض حساب الصيغ، وتحويل Excel إلى HTML + مع إعدادات منطقة الطباعة — كل ذلك باستخدام C#. +og_title: كيفية تضمين الخطوط في HTML – دليل C# الكامل +tags: +- Aspose.Cells +- C# +- Excel Automation +title: كيفية تضمين الخطوط في HTML – دليل C# الكامل +url: /ar/net/exporting-excel-to-html-with-advanced-options/how-to-embed-fonts-in-html-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# كيفية تضمين الخطوط في HTML – دليل C# كامل + +هل تساءلت يومًا **كيف يتم تضمين الخطوط في HTML** عند تصدير مصنف Excel؟ لست وحدك. يواجه العديد من المطورين مشكلة عندما يبدو HTML المُولد جيدًا على جهازهم لكنه يفقد الطباعة على جهاز آخر. الخبر السار؟ مع Aspose.Cells for .NET يمكنك تضمين ملفات الخطوط الدقيقة مباشرةً داخل مخرجات HTML — لا مزيد من الأحرف المفقودة. + +في هذا الدرس سنستعرض مثالًا شاملًا لا يوضح فقط **كيفية تضمين الخطوط في HTML**، بل يُظهر أيضًا **فرض حساب الصيغ**، **تحويل Excel إلى HTML**، وحتى **كيفية تعيين منطقة الطباعة** قبل تصدير مخطط إلى PPTX قابل للتحرير. في النهاية ستحصل على برنامج C# واحد قابل للتنفيذ يمكنك إدراجه في أي مشروع .NET. + +--- + +## ما ستقوم ببنائه + +- إنشاء مصنف جديد، كتابة بعض صيغ المصفوفة، و**فرض حساب الصيغ** بحيث تُدمج النتائج في الملف. +- حفظ المصنف كـ HTML مع **تضمين الخطوط** ومحددات التباين الخاصة بها. +- تحميل مصنف ثانٍ يحتوي على مخطط، تعريف **منطقة الطباعة**، وتصدير تلك الورقة إلى عرض تقديمي PowerPoint قابل للتحرير. +- كل ذلك باستخدام عدد قليل من الأسطر النظيفة والمُعَلَّقة جيدًا من كود C#. + +لا أدوات خارجية، لا نسخ يدوي لملفات الخطوط — Aspose.Cells يتولى كل العمل الشاق نيابةً عنك. + +--- + +## المتطلبات المسبقة + +| المتطلب | السبب | +|-------------|--------| +| .NET 6.0 أو أحدث | ميزات لغة حديثة وأداء أفضل | +| Aspose.Cells for .NET (حزمة NuGet `Aspose.Cells`) | يوفر `Workbook`، `HtmlSaveOptions`، `ImageOrPrintOptions`، إلخ | +| بضع ملفات خط TrueType/OpenType (مثل `Arial.ttf`) موجودة في مجلد المشروع | ضرورية للتضمين؛ سيقوم Aspose بسحبها تلقائيًا إذا كانت مُثبتة على نظام التشغيل | +| معرفة أساسية بـ C# | لتتبع الكود وتكييفه مع سيناريوهاتك الخاصة | + +--- + +## الخطوة 1 – إنشاء مصنف وكتابة صيغ المصفوفة + +أولًا نقوم بإنشاء كائن `Workbook` جديد ونضع صيغتي مصفوفة في الخلايا **A1** و **A3**. تُنتج هذه الصيغ (`WRAPCOLS` و `WRAPROWS`) مصفوفة صغيرة مكوّنة من عمودين/صفين سنرى لاحقًا كيف تُعرض في مخرجات HTML. + +```csharp +using Aspose.Cells; + +namespace FontEmbeddingDemo +{ + class Program + { + static void Main() + { + // Step 1: Create a new workbook and get the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // Write WRAPCOLS formula – returns a 2‑column array + worksheet.Cells[0, 0].Formula = "=WRAPCOLS({1,2,3,4},2)"; + + // Write WRAPROWS formula – returns a 2‑row array + worksheet.Cells[2, 0].Formula = "=WRAPROWS({1;2;3;4},2)"; +``` + +> **لماذا هذا مهم:** بإدراج الصيغ تحصل على محتوى ديناميكي سيتم تقييمه عندما نفرض الحساب لاحقًا. كما يُظهر أن تصدير HTML يمكنه التعامل مع نتائج المصفوفة بشكل صحيح. + +--- + +## الخطوة 2 – فرض حساب الصيغ + +تقوم Aspose.Cells بحساب الصيغ بشكل كسول. لضمان أن يحتوي HTML على القيم المحسوبة (بدلاً من الصيغ الخام)، نستدعي `CalculateFormula()`. + +```csharp + // Step 2: Force calculation so the formulas are evaluated + worksheet.CalculateFormula(); +``` + +> **نصيحة محترف:** إذا تخطيت هذه الخطوة، سيعرض HTML نص الصيغة (`=WRAPCOLS...`) بدلًا من الأرقام، مما يُفقد التصدير مظهره المصقول. + +--- + +## الخطوة 3 – تكوين خيارات حفظ HTML لتضمين الخطوط + +الآن يأتي نجم العرض: تضمين الخطوط. ضبط `EmbedFonts` على `true` يخبر Aspose بأن يضمّن بيانات الخط كتيارات Base64 داخل ملف HTML المُولد. تمكين `EmbedFontVariationSelectors` يضمن أيضًا أن أي محددات تباين OpenType (المستخدمة للطباعة المتقدمة) تُحفظ. + +```csharp + // Step 3: Prepare HTML save options that embed fonts and their variation selectors + HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions + { + EmbedFonts = true, + EmbedFontVariationSelectors = true + }; +``` + +> **كيف يعمل:** عند كتابة HTML، يضيف Aspose كتلة `