diff --git a/cells/arabic/net/cell-operations/_index.md b/cells/arabic/net/cell-operations/_index.md index 06e5e36248..2f3559eee7 100644 --- a/cells/arabic/net/cell-operations/_index.md +++ b/cells/arabic/net/cell-operations/_index.md @@ -18,7 +18,7 @@ الخلايا هي اللبنة الأساسية لأي جدول بيانات Excel. إتقان عمليات الخلايا ضروري للتعامل بفعالية مع جداول البيانات في تطبيقاتك. يوفر Aspose.Cells لـ .NET مجموعة شاملة من واجهات برمجة التطبيقات للعمل مع الخلايا الفردية، مما يتيح التحكم الدقيق في محتوى الخلايا وتنسيقها وصيغها وخصائصها دون الحاجة إلى Microsoft Excel. -مع Aspose.Cells، يمكنك الوصول إلى الخلايا باستخدام ترميز Excel القياسي (مثل "A1") أو الفهارس الصفرية، وتعديل قيم الخلايا وأنواعها، وتطبيق الصيغ، ودمج الخلايا، وإجراء العديد من العمليات الأخرى برمجيًا. تتيح لك هذه الإمكانيات إنشاء مستندات Excel ديناميكية قائمة على البيانات، تلبي متطلبات عملك بدقة. +مع Aspose.Cells، يمكنك الوصول إلى الخلايا باستخدام ترميز Excel القياسي (مثل "A1") أو الفهارس الصفرية، وتعديل قيم الخلايا وأنواعها، تطبيق الصيغ، دمج الخلايا، وإجراء العديد من العمليات الأخرى برمجيًا. تتيح لك هذه الإمكانيات إنشاء مستندات Excel ديناميكية قائمة على البيانات، تلبي متطلبات عملك بدقة. تغطي هذه المجموعة من الدروس التعليمية كل شيء، بدءًا من أساسيات الوصول إلى الخلايا ومعالجتها، وصولًا إلى العمليات المتقدمة مثل التنقل بين الخلايا، وتحويل البيانات، والتعامل مع أنواع خاصة من الخلايا. سواء كنت تُنشئ حلًا لإعداد التقارير، أو أداة لتحليل البيانات، أو مُنشئ مستندات آليًا، ستساعدك هذه الدروس التعليمية على تنفيذ عمليات خلايا فعّالة في تطبيقات .NET. @@ -76,7 +76,7 @@ أتقن عمليات البحث في خلايا Excel مع هذا البرنامج التعليمي العملي. تعلّم أساليب مختلفة للعثور على الخلايا بناءً على القيم والصيغ والسمات الأخرى، بالإضافة إلى استخدام الأحرف البدل والتعابير العادية لتحسين وظائف البحث. ### [تعيين عرض الأعمدة في Excel باستخدام Aspose.Cells .NET](./excel-column-width-aspose-cells-net) -تعلّم تقنيات فعّالة لضبط وتعديل عرض الأعمدة في جداول بيانات Excel باستخدام Aspose.Cells لـ .NET. يتناول هذا البرنامج التعليمي أنظمة قياس العرض المختلفة وكيفية تنفيذها برمجيًا لعرض المحتوى على النحو الأمثل. +تعلّم تقنيات فعّالة لضبط وتعديل عرض الأعمدة في جداول بيانات Excel باستخدام Aspose.Cells لـ .NET. يتناول هذا البرنامج التعليمي أنظمة قياس العرض المختلفة وكيفية تنفيذها برمجياً لعرض المحتوى على النحو الأمثل. ### [إتقان استخراج بيانات Excel باستخدام Aspose.Cells لـ .NET | دليل C#](./excel-data-extraction-aspose-cells-net-guide) تعلّم كيفية استخراج البيانات من ملفات Excel إلى جداول بيانات باستخدام Aspose.Cells بلغة C#. بسّط سير عملك من خلال عمليات ملفات فعّالة وأفضل الممارسات لتحويل بيانات جداول البيانات إلى كائنات .NET قابلة للاستخدام. @@ -102,6 +102,8 @@ ### [تحديث أيام سجل المراجعة في Excel المشترك باستخدام Aspose.Cells](./update-revision-logs-days-aspose-cells-net) أتقن عملية تحديث سجلات المراجعات في مصنفات Excel المشتركة. يوضح هذا البرنامج التعليمي كيفية إدارة ميزات تتبع المراجعات برمجيًا لتحسين إدارة المستندات في البيئات التعاونية. +### [قراءة وكتابة Excel C# – دليل شامل لقراءة وكتابة خلايا Excel](./read-write-excel-c-complete-guide-to-reading-and-writing-exc/) +تعلم كيفية قراءة وكتابة خلايا Excel باستخدام C# و Aspose.Cells في دليل شامل خطوة بخطوة. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/arabic/net/cell-operations/read-write-excel-c-complete-guide-to-reading-and-writing-exc/_index.md b/cells/arabic/net/cell-operations/read-write-excel-c-complete-guide-to-reading-and-writing-exc/_index.md new file mode 100644 index 0000000000..4a4a21ad6c --- /dev/null +++ b/cells/arabic/net/cell-operations/read-write-excel-c-complete-guide-to-reading-and-writing-exc/_index.md @@ -0,0 +1,244 @@ +--- +category: general +date: 2026-03-01 +description: دليل قراءة وكتابة Excel بلغة C# يوضح كيفية قراءة قيمة خلية Excel وكتابة + تاريخ ووقت إلى Excel باستخدام C# و Aspose.Cells في بضع خطوات سهلة. +draft: false +keywords: +- read write excel c# +- read excel cell value +- write datetime to excel +- c# excel interop +- aspnet excel automation +language: ar +og_description: دليل C# لقراءة وكتابة Excel يشرح كيفية قراءة قيمة خلية Excel وكتابة + التاريخ والوقت إلى Excel مع أمثلة شفرة واضحة وأفضل الممارسات. +og_title: قراءة وكتابة Excel C# – دليل خطوة بخطوة +tags: +- C# +- Excel +- Aspose.Cells +title: قراءة وكتابة Excel C# – الدليل الكامل لقراءة وكتابة خلايا Excel +url: /ar/net/cell-operations/read-write-excel-c-complete-guide-to-reading-and-writing-exc/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# قراءة وكتابة Excel C# – دليل شامل لقراءة وكتابة خلايا Excel + +هل حاولت **قراءة وكتابة Excel C#** وانتهى بك الأمر باستثناء غامض أو تاريخ غير متطابق؟ لست وحدك. يواجه العديد من المطورين صعوبة عندما يحتاجون إلى استخراج تاريخ ياباني من ورقة عمل ثم تخزين `DateTime` صحيح في نفس الخلية. + +في هذا الدليل سنستعرض خطوة بخطوة كيفية **قراءة قيمة خلية Excel** و**كتابة DateTime إلى Excel** باستخدام C# ومكتبة Aspose.Cells القوية. في النهاية ستحصل على مثال مكتمل، قابل للتنفيذ، يمكنك إدراجه في أي مشروع .NET. + +## ما ستتعلمه + +- كيفية تثبيت وإضافة مرجع Aspose.Cells في مشروع .NET 6+. +- الشيفرة الدقيقة المطلوبة لجلب خلية تحتوي على سلسلة تاريخ ياباني مثل `"R3/5/12"`. +- كيفية تحويل تلك السلسلة إلى `DateTime` باستخدام الثقافة `"ja-JP"`. +- الخطوات اللازمة لإرجاع الـ `DateTime` الناتج إلى نفس خلية ورقة العمل. +- نصائح للتعامل مع الحالات الحدية مثل الخلايا الفارغة أو صيغ العصور غير المتوقعة. + +لا تحتاج إلى خبرة مسبقة في Excel interop—فقط فهم أساسي لـ C# و .NET. لنبدأ. + +![لقطة شاشة لعملية قراءة وكتابة Excel C# تُظهر الخلية B2 قبل وبعد التحويل](read-write-excel-csharp.png "مثال قراءة وكتابة Excel C#") + +## الخطوة 1: إعداد المشروع – أسس قراءة وكتابة Excel C# + +قبل الغوص في الشيفرة، نحتاج إلى أساس قوي. + +1. **إنشاء تطبيق console جديد** (أو أي مشروع .NET) يستهدف .NET 6 أو أحدث: + + ```bash + dotnet new console -n ExcelEraDemo + cd ExcelEraDemo + ``` + +2. **إضافة حزمة NuGet الخاصة بـ Aspose.Cells**. إنها مكتبة مُدارة بالكامل تعمل بدون COM interop: + + ```bash + dotnet add package Aspose.Cells + ``` + +3. **نسخ ملف Excel** (`EraDates.xlsx`) إلى جذر المشروع. يجب أن يحتوي هذا المصنف على ورقة تسمى `"Sheet1"` وتحتوي الخلية **B2** على قيمة مثل `"R3/5/12"` (ريوا 3، مايو 12). + +هذا كل ما تحتاجه من بنية أساسية. يركز باقي الدليل على منطق **قراءة قيمة خلية Excel** و**كتابة DateTime إلى Excel** الفعلي. + +## الخطوة 2: قراءة قيمة خلية Excel باستخدام C# + +الآن بعد أن أصبح المشروع جاهزًا، لنستخرج السلسلة من ورقة العمل. المقتطف التالي يوضح سلسلة الاستدعاءات الدقيقة: + +```csharp +using Aspose.Cells; +using System; +using System.Globalization; + +class Program +{ + static void Main() + { + // Load the workbook (adjust the path as needed) + Workbook wb = new Workbook("EraDates.xlsx"); + Worksheet ws = wb.Worksheets["Sheet1"]; // assumes the sheet is named Sheet1 + + // Step 2: Get the cell that holds the Japanese era date string + // B2 contains something like "R3/5/12" + Cell dateCell = ws.Cells["B2"]; + + // Step 3: Read the string representation from the cell + string eraDateString = dateCell.StringValue; + + Console.WriteLine($"Original cell value: {eraDateString}"); + // ------------------------------------------------- + // From here we’ll convert the era string to a DateTime. + // ------------------------------------------------- + } +} +``` + +**لماذا يعمل هذا:** `Cell.StringValue` يُعيد دائمًا النص المعروض، بغض النظر عن تنسيق الرقم الأساسي. هذا يضمن أننا نتعامل مع السلسلة الدقيقة `"R3/5/12"` التي يراها المستخدم. + +### الأخطاء الشائعة + +- **الخلايا الفارغة** – `StringValue` يُعيد سلسلة فارغة. احرص على التحقق قبل التحليل. +- **الصيغ غير المتوقعة** – إذا احتوت الخلية على `"2023/05/12"` سيتسبب محلل العصور في استثناء؛ قد تحتاج إلى طريقة احتياطية. + +## الخطوة 3: كتابة DateTime إلى Excel باستخدام C# + +بعد الحصول على سلسلة العصر، نقوم الآن بتحليلها باستخدام `DateTime.ParseExact`. الصيغة `"ggyy/MM/dd"` تخبر .NET أن يتوقع عصرًا يابانيًا (`gg`)، سنة من رقمين (`yy`)، ومكوّنات الشهر/اليوم. + +```csharp + // Step 4: Convert the era date string to a DateTime using the Japanese culture + DateTime parsedDate; + try + { + parsedDate = DateTime.ParseExact( + eraDateString, + "ggyy/MM/dd", + new CultureInfo("ja-JP")); + } + catch (FormatException) + { + Console.WriteLine("The cell value does not match the expected Japanese era format."); + return; + } + + Console.WriteLine($"Parsed DateTime (UTC): {parsedDate:u}"); + + // Step 5: Store the resulting DateTime back into the same cell + dateCell.PutValue(parsedDate); + + // Optional: Apply a standard date format so Excel shows it nicely + dateCell.SetStyle(new Style { Number = 14 }); // 14 = "m/d/yyyy" + + // Save the workbook to a new file so we don’t overwrite the original + wb.Save("EraDates_Converted.xlsx"); + Console.WriteLine("Workbook saved as EraDates_Converted.xlsx"); +``` + +**لماذا نستخدم `PutValue`**: Aspose.Cells يكتشف تلقائيًا نوع .NET ويكتب النوع المناسب لخلية Excel. تمرير `DateTime` ينتج تاريخ Excel حقيقي، يمكن تنسيقه أو استخدامه في الصيغ لاحقًا. + +### الحالات الحدية والنصائح + +- **المناطق الزمنية** – كائنات `DateTime` تُخزن بدون معلومات المنطقة. إذا كنت تحتاج إلى UTC، استدعِ `DateTime.SpecifyKind`. +- **العودة إلى ثقافات أخرى** – إذا كنت تتوقع ثقافات مختلفة، غلف عملية التحليل بدالة مساعدة تحاول عدة كائنات `CultureInfo`. +- **الأداء** – عند معالجة آلاف الصفوف، أعد استخدام كائن `CultureInfo` واحد بدلاً من إنشاء جديد في كل دورة. + +## الخطوة 4: مثال كامل يعمل – تجميع كل شيء معًا + +فيما يلي البرنامج الكامل الجاهز للتنفيذ. انسخه إلى `Program.cs`، تأكد من وجود `EraDates.xlsx` بجوار الملف التنفيذي، ثم شغّله باستخدام `dotnet run`. + +```csharp +using Aspose.Cells; +using System; +using System.Globalization; + +class Program +{ + static void Main() + { + // Load workbook + Workbook wb = new Workbook("EraDates.xlsx"); + Worksheet ws = wb.Worksheets["Sheet1"]; // Change if your sheet has a different name + + // ------------------------------------------------- + // 1️⃣ Read the Japanese era string from B2 + // ------------------------------------------------- + Cell dateCell = ws.Cells["B2"]; + string eraDateString = dateCell.StringValue?.Trim(); + + if (string.IsNullOrEmpty(eraDateString)) + { + Console.WriteLine("Cell B2 is empty. Nothing to convert."); + return; + } + + Console.WriteLine($"Original cell value: {eraDateString}"); + + // ------------------------------------------------- + // 2️⃣ Parse the era string into a DateTime + // ------------------------------------------------- + DateTime parsedDate; + try + { + parsedDate = DateTime.ParseExact( + eraDateString, + "ggyy/MM/dd", + new CultureInfo("ja-JP")); + } + catch (FormatException) + { + Console.WriteLine("The value does not match the expected Japanese era format (ggyy/MM/dd)."); + return; + } + + Console.WriteLine($"Parsed DateTime: {parsedDate:u}"); + + // ------------------------------------------------- + // 3️⃣ Write the DateTime back into the same cell + // ------------------------------------------------- + dateCell.PutValue(parsedDate); + + // Apply a friendly date format (e.g., 2023/05/12) + Style style = wb.CreateStyle(); + style.Number = 14; // Built‑in date format + dateCell.SetStyle(style); + + // Save the updated workbook + wb.Save("EraDates_Converted.xlsx"); + Console.WriteLine("Conversion complete – saved as EraDates_Converted.xlsx"); + } +} +``` + +**الناتج المتوقع** + +``` +Original cell value: R3/5/12 +Parsed DateTime: 2021-05-12 00:00:00Z +Conversion complete – saved as EraDates_Converted.xlsx +``` + +عند فتح `EraDates_Converted.xlsx`، ستظهر الخلية **B2** تاريخًا عاديًا (مثلاً `5/12/2021`) ويمكن استخدامه في حسابات Excel كأي قيمة تاريخية أخرى. + +## نصائح احترافية لكتابة كود قراءة وكتابة Excel C# قوي + +- **التحقق قبل الكتابة** – استخدم `Cell.IsFormula` أو `Cell.Type` لتجنب الكتابة فوق الصيغ عن غير قصد. +- **المعالجة الدفعية** – إذا كنت بحاجة لتحويل عمود كامل، كرّر عبر `ws.Cells.Columns[1]` (عمود B) وطبق نفس المنطق. +- **سلامة الخيوط** – كائنات Aspose.Cells غير آمنة للـ multithreading؛ أنشئ مثيلات `Workbook` منفصلة لكل خيط عند التوازي. +- **التسجيل** – في السكريبتات الإنتاجية، استبدل `Console.WriteLine` بمسجل مناسب (مثل Serilog) لتسجيل فشل التحليل. +- **الاختبار** – اكتب اختبارات وحدة تغذي سلاسل عصر معروفة إلى دالة مساعدة وتتحقق من قيم `DateTime` الناتجة. + +## الخاتمة + +لقد أتقنت الآن **قراءة وكتابة Excel C#** من خلال تعلمك كيفية **قراءة قيمة خلية Excel**، تحليل سلسلة عصر ياباني، و**كتابة DateTime إلى Excel** بثقة. يُظهر المثال الكامل سير عمل نظيف من البداية إلى النهاية يمكنك تكييفه للعمليات الضخمة، ثقافات مختلفة، أو حتى خطوط أنابيب من Excel إلى قاعدة بيانات. + +ما الخطوة التالية؟ جرّب توسيع السكريبت لمعالجة عمود كامل من تواريخ العصور، أو استكشف خيارات التنسيق الغنية في Aspose.Cells لتنسيق الخلايا الناتجة. يمكنك أيضًا تجربة مكتبات أخرى مثل EPPlus أو ClosedXML—معظم المنطق يبقى نفسه، فقط استدعاءات الـ API تختلف. + +هل لديك أسئلة أو سيناريو Excel معقد؟ اترك تعليقًا أدناه، وتمنياتنا لك بالبرمجة السعيدة! + +{{< /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/conversion-to-pdf/_index.md b/cells/arabic/net/conversion-to-pdf/_index.md index 16a4371d8a..c656d56159 100644 --- a/cells/arabic/net/conversion-to-pdf/_index.md +++ b/cells/arabic/net/conversion-to-pdf/_index.md @@ -34,6 +34,8 @@ حوّل جداول بيانات Excel إلى PDF بسهولة باستخدام Aspose.Cells لـ .NET! اتبع دليلنا خطوة بخطوة لتجربة سلسة. ### [تحويل المخطط إلى PDF في .NET](./convert-chart-to-pdf/) تعلّم كيفية تحويل مخططات Excel إلى PDF في .NET باستخدام Aspose.Cells مع هذا الدليل المفصل! مثالي للمبرمجين من جميع المستويات. +### [كيفية تضمين الخطوط عند تحويل Excel إلى PDF – دليل كامل](./how-to-embed-fonts-when-converting-excel-to-pdf-complete-gui/) +تعلم كيفية تضمين الخطوط في ملفات PDF الناتجة من Excel لضمان عرض صحيح للخطوط في جميع الأجهزة. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/arabic/net/conversion-to-pdf/how-to-embed-fonts-when-converting-excel-to-pdf-complete-gui/_index.md b/cells/arabic/net/conversion-to-pdf/how-to-embed-fonts-when-converting-excel-to-pdf-complete-gui/_index.md new file mode 100644 index 0000000000..742b206ac9 --- /dev/null +++ b/cells/arabic/net/conversion-to-pdf/how-to-embed-fonts-when-converting-excel-to-pdf-complete-gui/_index.md @@ -0,0 +1,228 @@ +--- +category: general +date: 2026-03-01 +description: كيفية تضمين الخطوط أثناء تحويل Excel إلى PDF. تعلم كيفية حفظ المصنف كملف + PDF مع تضمين الخطوط وتصدير جدول البيانات إلى PDF بسهولة. +draft: false +keywords: +- how to embed fonts +- convert excel to pdf +- save workbook as pdf +- export spreadsheet to pdf +- create pdf from excel +language: ar +og_description: كيفية تضمين الخطوط في تحويل Excel إلى PDF. اتبع هذا الدليل لحفظ المصنف + كملف PDF مع تضمين كامل للخطوط للحصول على مستندات موثوقة. +og_title: كيفية تضمين الخطوط عند تحويل Excel إلى PDF – خطوة بخطوة +tags: +- aspnet +- csharp +- pdf +- excel +title: كيفية تضمين الخطوط عند تحويل Excel إلى PDF – دليل كامل +url: /ar/net/conversion-to-pdf/how-to-embed-fonts-when-converting-excel-to-pdf-complete-gui/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# كيفية تضمين الخطوط عند تحويل Excel إلى PDF – دليل كامل + +هل تساءلت يومًا **كيفية تضمين الخطوط** بحيث يبدو تحويل Excel إلى PDF بنفس الشكل على كل جهاز؟ لست وحدك. الخطوط المفقودة هي الجناة الصامتون الذين يحولون جدول البيانات المصمم بشكل مثالي إلى فوضى مشوشة بمجرد عرضه في عارض PDF. + +في هذا الدرس سنستعرض العملية الكاملة لتحويل ملف Excel إلى PDF **مع تضمين كل الخطوط**، بحيث يكون الناتج قابلًا للنقل، قابلًا للطباعة، ويظهر تمامًا كما هو الأصلي. وعلى طول الطريق سنتطرق أيضًا إلى *convert excel to pdf*، *save workbook as pdf*، *export spreadsheet to pdf*، و*create pdf from excel* – كل ذلك دون مغادرة كود C# الخاص بك. + +## ما ستتعلمه + +- تحميل مصنف `.xlsx` باستخدام Aspose.Cells (أو أي مكتبة متوافقة). +- تهيئة `PdfSaveOptions` لفرض تضمين الخط الكامل. +- حفظ المصنف كملف PDF يمكن فتحه على أي جهاز دون تحذيرات نقص الخط. +- نصائح لمعالجة الحالات الخاصة مثل الخطوط المخصصة غير المثبتة على الخادم. + +**المتطلبات المسبقة** – تحتاج إلى .NET 6+ (أو .NET Framework 4.7.2+)، Visual Studio 2022 (أو أي بيئة تطوير تفضلها)، وحزمة Aspose.Cells for .NET عبر NuGet. لا توجد أدوات خارجية أخرى مطلوبة. + +--- + +## ## كيفية تضمين الخطوط في تصدير PDF + +تضمين الخطوط هو الخطوة الأساسية التي تضمن أن يبدو ملف PDF الخاص بك مطابقًا لملف Excel الأصلي. أدناه مثال مختصر وقابل للتنفيذ يوضح سير العمل بالكامل. + +![لقطة شاشة لمعاينة PDF تُظهر الخطوط المضمنة بشكل صحيح – كيفية تضمين الخطوط في تحويل Excel إلى PDF](https://example.com/images/pdf-preview.png "كيفية تضمين الخطوط في تحويل Excel إلى PDF") + +### الخطوة 1 – تثبيت حزمة Aspose.Cells عبر NuGet + +افتح ملف **.csproj** الخاص بالمشروع أو استخدم وحدة تحكم مدير الحزم: + +```powershell +Install-Package Aspose.Cells +``` + +> **نصيحة احترافية:** إذا كنت تستخدم .NET CLI، نفّذ `dotnet add package Aspose.Cells`. سيقوم هذا بجلب أحدث نسخة مستقرة (اعتبارًا من مارس 2026، النسخة 23.10). + +### الخطوة 2 – تحميل المصنف الذي تريد تحويله + +```csharp +using Aspose.Cells; + +// Path to your source Excel file +string inputPath = Path.Combine(Environment.CurrentDirectory, "input.xlsx"); + +// Load the workbook into memory +Workbook workbook = new Workbook(inputPath); +``` + +**لماذا هذا مهم:** تحميل المصنف يمنحك الوصول إلى جميع الأوراق، الأنماط، والكائنات المضمنة. إنه الأساس لأي عملية تصدير لاحقة. + +### الخطوة 3 – إنشاء خيارات حفظ PDF وتفعيل تضمين الخطوط + +```csharp +// Initialise PDF save options +PdfSaveOptions pdfOptions = new PdfSaveOptions +{ + // Embed every font used in the workbook + FontEmbeddingMode = FontEmbeddingMode.EmbedAll +}; +``` + +خاصية `FontEmbeddingMode` تتحكم فيما إذا كانت الخطوط مضمَّنة، مضمَّنة جزئيًا، أو غير مضمَّنة. ضبطها على `EmbedAll` يضمن أن **كيفية تضمين الخطوط** يتم الإجابة عليها بشكل قاطع—كل حرف مستخدم في جدول البيانات يُحزم داخل ملف PDF. + +### الخطوة 4 – حفظ المصنف كملف PDF + +```csharp +// Destination path for the PDF +string outputPath = Path.Combine(Environment.CurrentDirectory, "output.pdf"); + +// Perform the conversion +workbook.Save(outputPath, pdfOptions); +``` + +بعد هذا الاستدعاء، يحتوي `output.pdf` على نسخة بصرية دقيقة من `input.xlsx`، مع جميع الخطوط مضمَّنة. افتحه في أي قارئ PDF ولن ترى تحذيرات “استبدال الخط” مرة أخرى. + +### الخطوة 5 – التحقق من النتيجة (اختياري لكن موصى به) + +```csharp +// Quick verification using Aspose.Pdf (if you have it) +// This snippet checks that all fonts are indeed embedded. +using Aspose.Pdf; + +// Load the generated PDF +Document pdfDoc = new Document(outputPath); +bool allEmbedded = true; + +foreach (FontInfo fontInfo in pdfDoc.FontInfo) +{ + if (!fontInfo.IsEmbedded) + { + allEmbedded = false; + Console.WriteLine($"Missing embedding for font: {fontInfo.FontName}"); + } +} +Console.WriteLine(allEmbedded ? "All fonts are embedded!" : "Some fonts are missing."); +``` + +إذا لم يكن لديك Aspose.Pdf، فإن الفحص اليدوي في Adobe Acrobat (`File → Properties → Fonts`) يعمل بنفس الفعالية. + +--- + +## ## تحويل Excel إلى PDF – تنويعات شائعة + +### تصدير ورقة عمل محددة فقط + +أحيانًا تحتاج إلى ورقة واحدة فقط كملف PDF: + +```csharp +PdfSaveOptions opts = new PdfSaveOptions +{ + FontEmbeddingMode = FontEmbeddingMode.EmbedAll, + // Export only the first sheet (zero‑based index) + OnePagePerSheet = false, + SheetIndex = 0 +}; +workbook.Save("single-sheet.pdf", opts); +``` + +### تضمين الخطوط جزئيًا للحصول على ملفات أصغر + +إذا كان حجم الملف مصدر قلق، يمكنك تضمين **فقط الأحرف المستخدمة فعليًا**: + +```csharp +pdfOptions.FontEmbeddingMode = FontEmbeddingMode.Subset; +``` + +هذا لا يزال يجيب على *كيفية تضمين الخطوط* لكنه ينتج PDF أخف—مناسب لمرفقات البريد الإلكتروني. + +### التعامل مع الخطوط المخصصة غير المثبتة على الخادم + +عندما يشير المصنف إلى خط مخصص غير موجود على خادم التحويل، ستعود Aspose.Cells إلى خط افتراضي ما لم تزودها بملف الخط: + +```csharp +// Register a custom font folder +FontConfigs fontConfigs = new FontConfigs(); +fontConfigs.SetFontFolder(@"C:\MyCustomFonts", true); +pdfOptions.FontConfigs = fontConfigs; +``` + +الآن يمكن للتحويل تضمين الخط المخصص، مع الحفاظ على الدقة البصرية. + +--- + +## ## حفظ المصنف كملف PDF – أفضل الممارسات + +| Practice | Why It Helps | +|----------|--------------| +| **Always set `FontEmbeddingMode = EmbedAll`** | يضمن أن يبدو PDF نفسه في كل مكان. | +| **Validate the output** | يكشف عن الخطوط المفقودة مبكرًا، مما يمنع الشكاوى لاحقًا. | +| **Use `OnePagePerSheet = true` only when needed** | يمنع إنشاء ملفات PDF طويلة غير ضرورية يصعب التنقل فيها. | +| **Keep Aspose.Cells updated** | الإصدارات الجديدة تضيف تحسينات في معالجة الخطوط وإصلاحات الأخطاء. | + +--- + +## ## تصدير جدول البيانات إلى PDF – سيناريو واقعي + +تخيل أنك تبني خدمة تقارير تُرسل لوحات معلومات المبيعات الأسبوعية إلى التنفيذيين. تُبنى اللوحات في Excel لأن المحللين التجاريين يفضلون تخطيط الشبكة. يجب على الخلفية إنشاء PDF كل ليلة، وتضمين جميع الخطوط المؤسسية، وإرسال الملف عبر البريد الإلكتروني. + +بتطبيق الخطوات أعلاه، يمكنك أتمتة خط الأنابيب بالكامل: + +1. تحميل المصنف الذي أنشأه المحلل من مجلد مشترك. +2. تطبيق `PdfSaveOptions` مع `EmbedAll`. +3. حفظ PDF في موقع مؤقت. +4. إرفاق PDF إلى بريد إلكتروني وإرساله. + +كل ذلك يُنفّذ على خدمة Windows بدون واجهة—بدون واجهة مستخدم، بدون تدخل يدوي. النتيجة؟ يتلقى التنفيذيون PDF مُصممًا بدقة كل صباح، بغض النظر عن الخطوط المثبتة على حواسيبهم المحمولة. + +--- + +## ## إنشاء PDF من Excel – الأسئلة المتكررة + +**س: هل سيؤدي تضمين الخطوط إلى زيادة حجم PDF بشكل كبير؟** +**ج:** يمكن ذلك، خاصةً مع عائلات خطوط كبيرة. التحويل إلى `Subset` يقلل الحجم مع الحفاظ على المظهر. + +**س: هل أحتاج إلى ترخيص لـ Aspose.Cells؟** +**ج:** المكتبة تعمل في وضع التقييم، لكن الترخيص التجاري يزيل علامة التقييم المائية ويفتح جميع الميزات. + +**س: ماذا لو كان ملف Excel الأصلي يستخدم خطًا غير قابل للتضمين (مثل بعض خطوط النظام)؟** +**ج:** ستقوم Aspose.Cells بتضمين ما يمكنها وتلجأ إلى خط مشابه للبقية. يمكنك أيضًا استبدال الخط برمجيًا قبل التصدير. + +--- + +## الخلاصة + +لقد غطينا **كيفية تضمين الخطوط** عند *تحويل excel إلى pdf*، موضحين لك الكود الدقيق لـ **حفظ المصنف كملف pdf** مع تضمين كامل للخطوط. لديك الآن نمط قوي وجاهز للإنتاج لمهام *export spreadsheet to pdf* و*create pdf from excel*. + +جرّبه: حاول تضمين خط مؤسسي مخصص، جرب تضمين جزئي، أو عالج دفعة من جميع المصنفات في مجلد. عندما تتقن تضمين الخطوط، ستظهر ملفات PDF دائمًا واضحة، بغض النظر عن مكان فتحها. + +--- + +### الخطوات التالية + +- استكشف **دمج PDF متعدد الأوراق** باستخدام `PdfFileEditor`. +- اجمع هذا النهج مع **Aspose.Slides** لتضمين المخططات كصور. +- تحقق من **امتثال PDF/A** إذا كنت بحاجة إلى ملفات PDF ذات جودة أرشيفية. + +هل لديك المزيد من الأسئلة أو حالة خاصة صعبة؟ اترك تعليقًا أدناه، وتمنياتنا لك بالبرمجة السعيدة! + +{{< /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/converting-excel-files-to-other-formats/_index.md b/cells/arabic/net/converting-excel-files-to-other-formats/_index.md index 20ba1664bb..44b348fa15 100644 --- a/cells/arabic/net/converting-excel-files-to-other-formats/_index.md +++ b/cells/arabic/net/converting-excel-files-to-other-formats/_index.md @@ -37,6 +37,9 @@ - [تحويل ملف Excel إلى PPTX برمجيًا في .NET](./converting-excel-file-to-pptx/)حوّل جداول بيانات Excel إلى شرائح عرض تقديمي. يقدم هذا البرنامج التعليمي مقتطفات برمجية سهلة التنفيذ لتحويل بيانات Excel إلى PPTX. +- [تحويل Excel إلى PowerPoint – دليل خطوة بخطوة بلغة C#](./convert-excel-to-powerpoint-step-by-step-c-guide/) +تعلم كيفية تحويل ملفات Excel إلى عروض PowerPoint باستخدام Aspose.Cells لـ .NET مع مثال كامل بلغة C#. + - [تتبع تقدم تحويل المستندات لـ TIFF برمجيًا في .NET](./tracking-document-conversion-progress-for-tiff/):تتبع وإدارة تحويلات ملفات TIFF، وهي أداة قيمة لإنشاء أرشيفات تعتمد على الصور. يقوم Aspose.Cells for .NET بتبسيط تحويلات المستندات، مما يسمح للمطورين بأتمتة العمليات وتوفير الوقت في التحويلات عبر التنسيقات المختلفة. @@ -56,6 +59,8 @@ تعرّف على كيفية تحويل JSON إلى CSV برمجيًا في .NET باستخدام Aspose.Cells. اتبع دليلنا خطوة بخطوة لضمان تحويل بيانات سلس. ### [تحويل ملف Excel إلى PPTX برمجيًا في .NET](./converting-excel-file-to-pptx/) تعرف على كيفية تحويل ملف Excel إلى عرض تقديمي بتنسيق PowerPoint (PPTX) برمجيًا باستخدام Aspose.Cells for .NET من خلال هذا الدليل خطوة بخطوة. +### [تحويل Excel إلى PowerPoint – دليل خطوة بخطوة بلغة C#](./convert-excel-to-powerpoint-step-by-step-c-guide/) +تعلم كيفية تحويل ملفات Excel إلى عروض PowerPoint باستخدام Aspose.Cells لـ .NET مع مثال كامل بلغة C#. ### [تحديد HTML CrossType في إخراج HTML برمجيًا في .NET](./specifying-html-crosstype-in-output-html/) تعرّف على كيفية تحديد HTML CrossType في Aspose.Cells لـ .NET. اتبع دليلنا خطوة بخطوة لتحويل ملفات Excel إلى HTML بدقة. ### [قراءة جدول بيانات الأرقام برمجيًا في .NET](./reading-numbers-spreadsheet/) diff --git a/cells/arabic/net/converting-excel-files-to-other-formats/convert-excel-to-powerpoint-step-by-step-c-guide/_index.md b/cells/arabic/net/converting-excel-files-to-other-formats/convert-excel-to-powerpoint-step-by-step-c-guide/_index.md new file mode 100644 index 0000000000..ccce572a55 --- /dev/null +++ b/cells/arabic/net/converting-excel-files-to-other-formats/convert-excel-to-powerpoint-step-by-step-c-guide/_index.md @@ -0,0 +1,259 @@ +--- +category: general +date: 2026-03-01 +description: حوّل Excel إلى PowerPoint بسرعة باستخدام C#. تعلّم كيفية إنشاء PowerPoint + من مصنف Excel باستخدام Aspose.Cells في بضع أسطر من الشيفرة فقط. +draft: false +keywords: +- convert excel to powerpoint +- generate powerpoint from excel +- convert xlsx to pptx +- how to convert excel +- create pptx from excel +language: ar +og_description: تحويل Excel إلى PowerPoint باستخدام C#. يوضح هذا الدليل كيفية إنشاء + PowerPoint من ملف Excel باستخدام Aspose.Cells، مع الكود الكامل والنصائح. +og_title: تحويل Excel إلى PowerPoint – دليل C# الكامل +tags: +- C# +- Aspose.Cells +- Excel +- PowerPoint +title: تحويل Excel إلى PowerPoint – دليل C# خطوة بخطوة +url: /ar/net/converting-excel-files-to-other-formats/convert-excel-to-powerpoint-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# تحويل Excel إلى PowerPoint – دليل خطوة بخطوة بلغة C# + +هل احتجت يومًا إلى **تحويل Excel إلى PowerPoint** لكنك لم تكن متأكدًا من أين تبدأ؟ لست وحدك—فالعديد من المطورين يواجهون هذه المشكلة عندما يحاولون تحويل جداول البيانات الغنية بالبيانات إلى عروض تقديمية جاهزة. + +الأخبار السارة هي أنه ببضع أسطر من C# يمكنك **إنشاء PowerPoint من Excel** تلقائيًا، دون الحاجة إلى النسخ واللصق يدويًا. في هذا الدرس سنستعرض العملية بالكامل، من تحميل ملف `.xlsx` إلى حفظ ملف `.pptx` مصقول يمكنك فتحه في Microsoft PowerPoint أو أي عارض متوافق. + +> **ما ستحصل عليه:** برنامج قابل للتنفيذ يقوم بتحميل مصنف Excel، ويضبط خيارات حفظ PowerPoint، ويكتب ملف PowerPoint—كل ذلك باستخدام مكتبة Aspose.Cells. + +## ما ستحتاجه + +- **.NET 6.0** أو أحدث (الكود يعمل أيضًا على .NET Framework 4.7+) +- **Aspose.Cells for .NET** – يمكنك الحصول عليها من NuGet (`Install-Package Aspose.Cells`) +- فهم أساسي للغة C# (ليس شيئًا معقدًا، فقط عبارات `using` المعتادة) +- ملف Excel (`input.xlsx`) ترغب في تحويله إلى مجموعة شرائح + +هذا كل ما تحتاجه. لا أدوات طرف ثالث إضافية، لا تفاعل COM، ولا أتمتة PowerPoint معقدة. لنبدأ. + +![مخطط سير تحويل Excel إلى PowerPoint](convert-excel-to-powerpoint.png "تحويل Excel إلى PowerPoint") + +*نص بديل: مخطط سير تحويل Excel إلى PowerPoint* + +## تحويل Excel إلى PowerPoint باستخدام Aspose.Cells + +### الخطوة 1 – تحميل مصنف Excel + +أول شيء علينا فعله هو جلب جدول البيانات إلى الذاكرة. تجعل Aspose.Cells ذلك بسيطًا بقدر استدعاء مُنشئ `Workbook` وتمرير مسار الملف. + +```csharp +using Aspose.Cells; +using System; + +namespace ExcelToPowerPointDemo +{ + class Program + { + static void Main(string[] args) + { + // Step 1: Load the Excel workbook + string inputPath = @"YOUR_DIRECTORY\input.xlsx"; + Workbook workbook = new Workbook(inputPath); +``` + +**لماذا هذا مهم:** تحميل المصنف يمنحنا الوصول إلى كل ورقة عمل، ومخطط، وحتى الصور المدمجة. من هناك يمكننا اتخاذ قرار ما الذي نحتفظ به أو نتخلص منه قبل التحويل. + +### الخطوة 2 – إعداد خيارات حفظ العرض التقديمي + +تدعم Aspose.Cells صيغ إخراج متعددة، ولـ PowerPoint نستخدم `PresentationSaveOptions`. يتيح لنا هذا الكائن تحديد الهدف `SaveFormat.Pptx` وتعديل بعض الإعدادات المفيدة، مثل ما إذا كنا نريد تضمين الماكرو أو الحفاظ على عرض الأعمدة الأصلي. + +```csharp + // Step 2: Set up presentation save options for PowerPoint format + PresentationSaveOptions saveOptions = new PresentationSaveOptions(SaveFormat.Pptx) + { + // Optional: keep the original Excel formatting as much as possible + // (true by default, but we set it explicitly for clarity) + KeepOriginalFormatting = true + }; +``` + +**لماذا هذا مهم:** بدون الإعدادات الصحيحة، قد تبدو الشرائح الناتجة مضغوطة أو تفقد التنسيق. من خلال إخبار Aspose.Cells أننا نريد ملف PPTX حقيقي، نضمن أن التحويل يحافظ على تخطيط Excel. + +### الخطوة 3 – حفظ المصنف كعرض PowerPoint + +الآن يحدث السحر. استدعاء واحد لـ `Save` يكتب ملف `.pptx` يعكس أول ورقة عمل في المصنف (أو جميع الأوراق، حسب نسخة المكتبة). في معظم السيناريوهات تكون الورقة الأولى كافية، لكن يمكنك التجربة لاحقًا. + +```csharp + // Step 3: Save the workbook as a PowerPoint presentation + string outputPath = @"YOUR_DIRECTORY\output.pptx"; + workbook.Save(outputPath, saveOptions); + + Console.WriteLine($"Success! '{outputPath}' has been created."); + } + } +} +``` + +**ما ستراه:** افتح `output.pptx` في PowerPoint وستجد كل ورقة عمل تحولت إلى شريحة. خلايا النص تصبح مربعات نص، والمخططات تصبح مخططات PowerPoint أصلية، وحتى الصور تحتفظ بدقتها الأصلية. + +## إنشاء PowerPoint من Excel – نصائح إعداد المشروع + +- **تثبيت NuGet:** نفّذ `dotnet add package Aspose.Cells` من مجلد المشروع. سيجلب ذلك أحدث نسخة مستقرة (اعتبارًا من مارس 2026، النسخة 23.10). +- **منصة الهدف:** إذا كنت تستخدم .NET Core، تأكد من أن ملف `csproj` يحتوي على `net6.0`. +- **مسارات الملفات:** استخدم `Path.Combine` لضمان الأمان عبر الأنظمة، خاصة إذا كان الكود يعمل داخل حاويات Linux. + +```csharp +using System.IO; + +// Example of safe path building +string baseDir = AppDomain.CurrentDomain.BaseDirectory; +string inputPath = Path.Combine(baseDir, "input.xlsx"); +string outputPath = Path.Combine(baseDir, "output.pptx"); +``` + +## تحويل Xlsx إلى Pptx – معالجة أوراق عمل متعددة + +بشكل افتراضي تقوم Aspose.Cells بتحويل **ورقة العمل النشطة فقط**. إذا كنت تحتاج شريحة لكل ورقة، يمكنك التكرار عبر المجموعة وحفظ كل واحدة على حدة: + +```csharp +for (int i = 0; i < workbook.Worksheets.Count; i++) +{ + Worksheet sheet = workbook.Worksheets[i]; + sheet.IsSelected = true; // Make this sheet the active one + string slidePath = Path.Combine(baseDir, $"Slide_{i + 1}.pptx"); + workbook.Save(slidePath, saveOptions); +} +``` + +**نصيحة احترافية:** بعد كل تكرار، استدعِ `workbook.Worksheets[i].IsSelected = false` إذا كنت تخطط لإعادة استخدام نفس كائن `Workbook` لعمليات أخرى. + +## كيفية تحويل Excel – التعامل مع الملفات الكبيرة + +المصنفات الكبيرة (مئات الميغابايت) قد تجهد الذاكرة. بعض الحيل تحافظ على سلاسة العملية: + +1. **تمكين البث:** `WorkbookSettings.MemorySetting = MemorySetting.MemoryPreference;` يجبر Aspose.Cells على استخدام ملفات مؤقتة بدلاً من تحميل كل شيء في الذاكرة. +2. **تخطي الصفوف/الأعمدة الفارغة:** اضبط `saveOptions.IgnoreEmptyRows = true` لتقليل الفوضى في الشرائح. +3. **تغيير حجم الصور:** إذا كان Excel يحتوي على صور عالية الدقة، يمكنك تقليل حجمها قبل التحويل باستخدام `ImageResizeOptions`. + +```csharp +workbook.Settings.MemorySetting = MemorySetting.MemoryPreference; +saveOptions.IgnoreEmptyRows = true; +saveOptions.ImageResizeOptions = new ImageResizeOptions +{ + Width = 1024, + Height = 768, + ResizeMode = ResizeMode.Proportional +}; +``` + +## إنشاء Pptx من Excel – التحقق من النتيجة + +بعد انتهاء استدعاء `Save`، ستحتاج إلى التأكد من أن الملف قابل للاستخدام: + +```csharp +if (File.Exists(outputPath)) +{ + var fileInfo = new FileInfo(outputPath); + Console.WriteLine($"File size: {fileInfo.Length / 1024} KB"); + // Optionally launch PowerPoint automatically (Windows only) + System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo + { + FileName = outputPath, + UseShellExecute = true + }); +} +else +{ + Console.Error.WriteLine("Something went wrong – the PPTX was not created."); +} +``` + +فتح الملف يجب أن يظهر مجموعة شرائح تعكس تخطيط جدول البيانات الأصلي، مع المخططات والجداول وأي صور مدمجة. + +## أسئلة شائعة وحالات خاصة + +| السؤال | الجواب | +|----------|--------| +| *هل يمكنني الحفاظ على ماكرو Excel؟* | لا. لا يدعم PowerPoint ماكرو VBA من Excel. سيتعين عليك إعادة إنشاء أي أتمتة داخل PowerPoint نفسه. | +| *ماذا عن تعليقات الخلايا؟* | تتحول إلى مربعات نص منفصلة على الشريحة، لكن يمكنك إخفاؤها بتعيين `saveOptions.IncludeCellComments = false`. | +| *هل يتم تقييم الصيغ؟* | نعم—تقوم Aspose.Cells بتقييم الصيغ قبل التحويل، لذا تعرض الشريحة القيم المحسوبة وليس الصيغ نفسها. | +| *هل هناك طريقة لتخصيص تصميم الشريحة؟* | يمكنك تطبيق قالب PowerPoint بعد التحويل باستخدام فئة `Presentation` من Aspose.Slides، ثم نسخ الشرائح المولدة إليه. | + +## مثال كامل يعمل (كل الكود في مكان واحد) + +```csharp +using Aspose.Cells; +using System; +using System.IO; + +namespace ExcelToPowerPointDemo +{ + class Program + { + static void Main(string[] args) + { + // Build safe file paths + string baseDir = AppDomain.CurrentDomain.BaseDirectory; + string inputPath = Path.Combine(baseDir, "input.xlsx"); + string outputPath = Path.Combine(baseDir, "output.pptx"); + + // Load the Excel workbook + Workbook workbook = new Workbook(inputPath); + + // Optional: improve memory usage for huge files + workbook.Settings.MemorySetting = MemorySetting.MemoryPreference; + + // Configure PowerPoint save options + PresentationSaveOptions saveOptions = new PresentationSaveOptions(SaveFormat.Pptx) + { + KeepOriginalFormatting = true, + IgnoreEmptyRows = true, + ImageResizeOptions = new ImageResizeOptions + { + Width = 1024, + Height = 768, + ResizeMode = ResizeMode.Proportional + } + }; + + // Save as PowerPoint + workbook.Save(outputPath, saveOptions); + + // Verify the result + if (File.Exists(outputPath)) + { + Console.WriteLine($"Success! '{outputPath}' created ({new FileInfo(outputPath).Length / 1024} KB)."); + // Open the file automatically (Windows only) + System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo + { + FileName = outputPath, + UseShellExecute = true + }); + } + else + { + Console.Error.WriteLine("Failed to create the PowerPoint file."); + } + } + } +} +``` + +شغّل البرنامج، وستحصل على ملف `.pptx` جديد جاهز لاجتماع العميل التالي، أو عرض مجلس الإدارة، أو ملخص داخلي. + +## الخلاصة + +أنت الآن تعرف **كيفية تحويل Excel إلى PowerPoint** باستخدام C# و Aspose.Cells. الخطوات الأساسية—تحميل المصنف، ضبط `PresentationSaveOptions`، واستدعاء `Save`—بسطة، ومع ذلك يغطي الدرس أيضًا تفاصيل **إنشاء PowerPoint من Excel** مثل التعامل مع الذاكرة، + +{{< /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/excel-copy-worksheet/_index.md b/cells/arabic/net/excel-copy-worksheet/_index.md index c1e0ede990..45f83f3fb2 100644 --- a/cells/arabic/net/excel-copy-worksheet/_index.md +++ b/cells/arabic/net/excel-copy-worksheet/_index.md @@ -39,9 +39,10 @@ | العنوان | الوصف | | --- | --- | | [نسخ ورقة عمل Excel من مصنف آخر](./excel-copy-worksheet-from-other-workbook/) |تعرف على كيفية نسخ ورقة عمل من مصنف Excel إلى آخر باستخدام Aspose.Cells لـ .NET من خلال هذا الدليل خطوة بخطوة. | -| [نسخ ورقة عمل Excel](./excel-copy-worksheet/) تعلّم كيفية نسخ ورقة عمل Excel باستخدام Aspose.Cells لـ .NET من خلال هذا الدليل السهل والبسيط. مثالي لمطوري .NET الذين يرغبون في أتمتة مهام Excel. -| [نسخ أوراق العمل بين المصنفات في Excel](./excel-copy-worksheets-between-workbooks/) | تعلّم كيفية نسخ أوراق العمل بين مصنفات Excel باستخدام Aspose.Cells لـ .NET. دليل خطوة بخطوة مع أمثلة برمجية لتبسيط إدارة جداول البيانات. | -| [نقل ورقة عمل Excel](./excel-move-worksheet/) | تعلّم كيفية نقل أوراق العمل في Excel باستخدام Aspose.Cells لـ .NET في دليلنا خطوة بخطوة. أتقن فن برمجة Excel. | +| [نسخ ورقة عمل Excel](./excel-copy-worksheet/) تعلّم كيفية نسخ ورقة عمل Excel باستخدام Aspose.Cells لـ .NET من خلال هذا الدليل السهل والبسيط. مثالي لمطوري .NET الذين يرغبون في أتمتة مهام Excel. | +| [نسخ أوراق العمل بين المصنفات في Excel](./excel-copy-worksheets-between-workbooks/) | تعلّم كيفية نسخ أوراق العمل بين مصنفات Excel باستخدام Aspose.Cells لـ .NET. دليل خطوة بخطوة مع أمثلة برمجية لتبسيط إدارة جداول البيانات. | +| [نقل ورقة عمل Excel](./excel-move-worksheet/) | تعلّم كيفية نقل أوراق العمل في Excel باستخدام Aspose.Cells لـ .NET في دليلنا خطوة بخطوة. أتقن فن برمجة Excel. | +| [إنشاء مصنف جديد – نسخ ورقة عمل مع جدول محوري](./create-new-workbook-how-to-copy-a-worksheet-with-a-pivot-tab/) |تعرف على طريقة إنشاء مصنف جديد ونسخ ورقة عمل تحتوي على جدول محوري باستخدام Aspose.Cells لـ .NET. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/arabic/net/excel-copy-worksheet/create-new-workbook-how-to-copy-a-worksheet-with-a-pivot-tab/_index.md b/cells/arabic/net/excel-copy-worksheet/create-new-workbook-how-to-copy-a-worksheet-with-a-pivot-tab/_index.md new file mode 100644 index 0000000000..f9dcd38198 --- /dev/null +++ b/cells/arabic/net/excel-copy-worksheet/create-new-workbook-how-to-copy-a-worksheet-with-a-pivot-tab/_index.md @@ -0,0 +1,260 @@ +--- +category: general +date: 2026-03-01 +description: إنشاء مصنف جديد ونسخ ورقة العمل إلى مصنف يحتوي على جدول محوري. تعلم كيفية + تصدير الجدول المحوري، نسخ الورقة، ونسخ الجدول المحوري في C#. +draft: false +keywords: +- create new workbook +- copy worksheet to workbook +- export pivot table +- how to copy sheet +- how to copy pivot +language: ar +og_description: إنشاء مصنف جديد في C# ونسخ ورقة العمل إلى المصنف مع الحفاظ على جدول + المحور. دليل خطوة بخطوة مع الكود الكامل. +og_title: إنشاء دفتر عمل جديد – نسخ ورقة العمل وجداول المحور في C# +tags: +- C# +- Aspose.Cells +- Excel automation +title: إنشاء مصنف جديد – كيفية نسخ ورقة عمل تحتوي على جدول محوري +url: /ar/net/excel-copy-worksheet/create-new-workbook-how-to-copy-a-worksheet-with-a-pivot-tab/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# إنشاء دفتر عمل جديد – نسخ ورقة العمل وجدول محوري في C# + +هل احتجت يومًا إلى **create new workbook** يحتوي على جدول محوري جاهز دون الحاجة لإعادة بنائه من الصفر؟ لست وحدك. في العديد من سيناريوهات التقارير لديك ملف رئيسي (`src.xlsx`) يحتوي على جدول محوري معقد، وتريد إرسال نسخة نظيفة (`dest.xlsx`) إلى عميل أو نظام آخر. الخبر السار؟ يمكنك القيام بذلك في سطرين فقط من C#—وهذا الدليل سيظهر لك بالضبط كيف. + +سنستعرض العملية بالكامل: تحميل دفتر العمل المصدر، نسخ أول ورقة عمل (التي تحتوي على الجدول المحوري)، وحفظها كدفتر عمل جديد تمامًا. في النهاية ستعرف **how to copy sheet** التي تحتوي على جدول محوري، وكيفية **export pivot table** إذا احتجت ذلك، وحتى بعض الحيل للحالات الخاصة مثل النسخ إلى ملف موجود. + +## المتطلبات المسبقة + +- .NET 6.0 أو أحدث (أي نسخة حديثة تعمل) +- Aspose.Cells for .NET (نسخة تجريبية مجانية أو مرخصة) – هذه المكتبة توفر الفئة `Workbook` المستخدمة أدناه. +- ملف Excel المصدر (`src.xlsx`) الذي يحتوي بالفعل على جدول محوري في ورقة العمل الأولى. + +إذا لم يكن لديك Aspose.Cells بعد، أضفه عبر NuGet: + +```bash +dotnet add package Aspose.Cells +``` + +هذا كل شيء—بدون أي COM interop إضافي، ولا حاجة لتثبيت Excel على الخادم. + +## ما يغطيه هذا الدرس + +- **Create new workbook** من ورقة عمل موجودة تحتوي على جدول محوري. +- **Copy worksheet to workbook** مع الحفاظ على جميع تعريفات الجدول المحوري. +- **Export pivot table** البيانات إلى DataTable (اختياري). +- المشكلات الشائعة عند استخدام **how to copy pivot** في بيئات مختلفة. +- مثال كامل قابل للتنفيذ يمكنك وضعه في تطبيق Console. + +--- + +## الخطوة 1: تحميل دفتر العمل المصدر (How to Copy Sheet) + +الخطوة الأولى هي فتح دفتر العمل الذي يحتوي على الجدول المحوري. استخدام Aspose.Cells يجعل ذلك سهلًا لأنه يقرأ الملف إلى الذاكرة دون تشغيل Excel. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // Path to the source workbook that holds the pivot + string srcPath = @"YOUR_DIRECTORY\src.xlsx"; + + // Load the workbook – this is where we **create new workbook** later + Workbook sourceWorkbook = new Workbook(srcPath); +``` + +> **لماذا هذا مهم:** تحميل الملف يتحقق من وجود الجدول المحوري ويمنحك الوصول إلى مجموعة أوراق العمل. إذا كان الملف تالفًا، فإن `Workbook` يرمي استثناء واضح، مما يحفظك من مخرجات غامضة لاحقًا. + +## الخطوة 2: نسخ ورقة العمل إلى دفتر عمل جديد (Copy Worksheet to Workbook) + +الآن نقوم فعليًا بـ **copy worksheet to workbook**. طريقة `CopyTo` في Aspose.Cells تستنسخ الورقة بالكامل—بما في ذلك الصيغ، التنسيق، وذاكرة التخزين المؤقت للجدول المحوري—إلى ملف جديد. + +```csharp + // Destination path for the new workbook + string destPath = @"YOUR_DIRECTORY\dest.xlsx"; + + // Copy the first worksheet (index 0) which contains the pivot + sourceWorkbook.Worksheets[0].CopyTo(destPath); +``` + +> **نصيحة احترافية:** `CopyTo` ينشئ دفتر عمل جديد خلف الكواليس، لذا لا تحتاج إلى إنشاء كائن `Workbook` آخر. هذا يحافظ على استهلاك الذاكرة منخفضًا ويضمن بقاء تعريف الجدول المحوري سليمًا. + +## الخطوة 3: التحقق من النسخة المنسوخة من الجدول المحوري (How to Copy Pivot) + +بعد انتهاء النسخ، من الجيد فتح الملف الجديد والتأكد من أن الجدول المحوري لا يزال يعمل. يمكنك القيام بذلك برمجياً أو مجرد فتحه في Excel. + +```csharp + // Optional: Load the destination workbook to verify + Workbook destWorkbook = new Workbook(destPath); + Worksheet copiedSheet = destWorkbook.Worksheets[0]; + + // Find the first pivot table on the copied sheet + PivotTable pivot = copiedSheet.PivotTables[0]; + + Console.WriteLine($"Pivot name: {pivot.Name}"); + Console.WriteLine($"Data source range: {pivot.DataSource}"); + Console.WriteLine($"Number of rows in pivot cache: {pivot.CacheDefinition.RecordCount}"); + } +} +``` + +تشغيل البرنامج يطبع شيئًا مشابهًا لـ: + +``` +Pivot name: PivotTable1 +Data source range: A1:D100 +Number of rows in pivot cache: 100 +``` + +إذا رأيت تلك القيم، فإن خطوة **how to copy pivot** نجحت. + +## الخطوة 4: (اختياري) تصدير بيانات جدول محوري إلى DataTable + +أحيانًا تحتاج إلى الأرقام الخام من الجدول المحوري دون فتح Excel. Aspose.Cells يتيح لك سحب بيانات الجدول المحوري إلى `DataTable`—مثالي للمعالجة الإضافية أو استجابات API. + +```csharp + // Export pivot data to a DataTable + DataTable pivotData = pivot.ExportDataTable(pivot.RowFields[0].Name, + pivot.ColumnFields[0].Name, + true); + + // Display a few rows in the console + foreach (DataRow row in pivotData.Rows) + { + Console.WriteLine(string.Join("\t", row.ItemArray)); + } +``` + +> **لماذا قد تحتاج هذا:** التصدير يتيح لك **export pivot table** إلى قاعدة بيانات، حمولة JSON، أو أي تنسيق آخر دون الحاجة إلى النسخ واللصق يدويًا. + +## الخطوة 5: الحالات الخاصة والمشكلات الشائعة + +### النسخ إلى دفتر عمل موجود + +إذا كنت بحاجة إلى **copy worksheet to workbook** يحتوي بالفعل على أوراق أخرى، استخدم النسخة التي تستقبل كائن `Workbook` هدف: + +```csharp + Workbook targetWorkbook = new Workbook(); // empty workbook + sourceWorkbook.Worksheets[0].CopyTo(targetWorkbook); + targetWorkbook.Save(@"YOUR_DIRECTORY\combined.xlsx"); +``` + +### الحفاظ على مصادر البيانات الخارجية + +الجداول المحورية التي تجلب البيانات من اتصالات خارجية (مثل Power Query) قد تفقد الرابط بعد النسخ. في هذه الحالات، عيّن `pivot.RefreshDataOnOpen = true` قبل الحفظ: + +```csharp + pivot.RefreshDataOnOpen = true; +``` + +### الملفات الكبيرة والأداء + +للملفات التي يزيد حجمها عن 50 ميغابايت، فكر في تفعيل `WorkbookSettings.MemorySetting = MemorySetting.MemoryPreference;` لتقليل الضغط على الذاكرة. + +--- + +![إنشاء دفتر عمل جديد – نسخ ورقة عمل مع جدول محوري](https://example.com/images/create-new-workbook.png "إنشاء دفتر عمل جديد") + +*نص بديل للصورة: إنشاء دفتر عمل جديد – نسخ ورقة عمل مع جدول محوري* + +--- + +## مثال عملي كامل (جميع الخطوات مجمعة) + +فيما يلي التطبيق الكامل القابل للتنفيذ. انسخه إلى مشروع `.csproj` جديد واضغط **F5**. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +namespace CopyPivotDemo +{ + class Program + { + static void Main() + { + // ============================== + // 1️⃣ Load the source workbook + // ============================== + string srcPath = @"YOUR_DIRECTORY\src.xlsx"; + Workbook sourceWorkbook = new Workbook(srcPath); + + // ============================== + // 2️⃣ Copy the first worksheet (pivot) to a new workbook + // ============================== + string destPath = @"YOUR_DIRECTORY\dest.xlsx"; + sourceWorkbook.Worksheets[0].CopyTo(destPath); + + // ============================== + // 3️⃣ Verify the copied pivot (how to copy pivot) + // ============================== + Workbook destWorkbook = new Workbook(destPath); + Worksheet copiedSheet = destWorkbook.Worksheets[0]; + PivotTable pivot = copiedSheet.PivotTables[0]; + + Console.WriteLine($"Pivot name: {pivot.Name}"); + Console.WriteLine($"Data source range: {pivot.DataSource}"); + Console.WriteLine($"Cache rows: {pivot.CacheDefinition.RecordCount}"); + + // ============================== + // 4️⃣ (Optional) Export pivot data + // ============================== + if (pivot.RowFields.Count > 0 && pivot.ColumnFields.Count > 0) + { + DataTable dt = pivot.ExportDataTable( + pivot.RowFields[0].Name, + pivot.ColumnFields[0].Name, + true); + + Console.WriteLine("\n--- Pivot Data Preview ---"); + foreach (DataRow row in dt.Rows) + { + Console.WriteLine(string.Join("\t", row.ItemArray)); + } + } + + Console.WriteLine("\nDone! New workbook created at: " + destPath); + } + } +} +``` + +### النتيجة المتوقعة + +- `dest.xlsx` يظهر في `YOUR_DIRECTORY`. +- الورقة الأولى تبدو تمامًا مثل الأصل، مع جدول محوري كامل. +- تشغيل الـ console يطبع بيانات تعريف الجدول المحوري ومعاينة صغيرة للبيانات، مما يؤكد نجاح النسخ. + +--- + +## الخلاصة + +أنت الآن تعرف كيف **create new workbook** بنسخ ورقة عمل تحتوي على جدول محوري، وكيف **copy worksheet to workbook**، وحتى كيفية **export pivot table** للمعالجة اللاحقة. سواء كنت تبني خدمة تقارير، أو تُ automatisé توزيع Excel، أو تحتاج فقط إلى طريقة سريعة لتكرار جدول محوري، فإن الخطوات أعلاه توفر لك حلًا موثوقًا وجاهزًا للإنتاج. + +**الخطوات التالية** التي قد تستكشفها: + +- دمج عدة أوراق (استخدم `CopyTo` بشكل متكرر) – مثالي لتجميع تقرير كامل. +- ضبط إعدادات تحديث ذاكرة التخزين المؤقت للجدول المحوري عندما تتغير بيانات المصدر. +- استخدام تقنيات **how to copy sheet** لتكرار المخططات، الصور، أو وحدات VBA. +- الاطلاع على `WorkbookDesigner` في Aspose.Cells لإنشاء تقارير مبنية على القوالب. + +جرّبها، عدّل المسارات، وسترى مدى سهولة شحن دفاتر عمل نظيفة وجاهزة للجدول المحوري. هل لديك أسئلة حول الحالات الخاصة أو الترخيص؟ اترك تعليقًا أدناه، وتمنياتنا لك بالبرمجة السعيدة! + +{{< /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/excel-data-import-export/_index.md b/cells/arabic/net/excel-data-import-export/_index.md index 92e39d57f0..177e4357a4 100644 --- a/cells/arabic/net/excel-data-import-export/_index.md +++ b/cells/arabic/net/excel-data-import-export/_index.md @@ -32,6 +32,8 @@ تعرف على كيفية استيراد البيانات إلى Excel باستخدام تنسيق DB Num المخصص باستخدام Aspose.Cells for .NET في هذا البرنامج التعليمي السهل المتابعة. ### [تحويل الصف الأول إلى الأسفل عند إدراج صفوف جدول البيانات في Excel](./shift-first-row-down-when-inserting-cells-datatable-rows-in-excel/) تعلم كيفية إدراج صفوف جدول البيانات في Excel دون تحريك الصف الأول للأسفل باستخدام Aspose.Cells لـ .NET. دليل خطوة بخطوة لأتمتة سهلة. +### [استيراد البيانات مع التنسيق إلى Excel باستخدام C#](./import-data-with-formatting-into-excel-using-c/) +تعرف على كيفية استيراد البيانات إلى Excel مع تطبيق التنسيقات المطلوبة باستخدام C# و Aspose.Cells for .NET. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/arabic/net/excel-data-import-export/import-data-with-formatting-into-excel-using-c/_index.md b/cells/arabic/net/excel-data-import-export/import-data-with-formatting-into-excel-using-c/_index.md new file mode 100644 index 0000000000..b65ccddaa7 --- /dev/null +++ b/cells/arabic/net/excel-data-import-export/import-data-with-formatting-into-excel-using-c/_index.md @@ -0,0 +1,296 @@ +--- +category: general +date: 2026-03-01 +description: استيراد البيانات مع التنسيق إلى Excel باستخدام C#. تعلم كيفية استيراد + DataTable إلى Excel وإضافة لون خلفية إلى الخلايا في بضع خطوات فقط. +draft: false +keywords: +- import data with formatting +- how to import datatable into excel +- add background color to excel cells +language: ar +og_description: استيراد البيانات مع التنسيق إلى Excel باستخدام C#. دليل خطوة بخطوة + يوضح كيفية استيراد DataTable وإضافة لون خلفية للخلايا. +og_title: استيراد البيانات مع التنسيق إلى إكسل – دليل C# +tags: +- C# +- Excel +- DataTable +- Formatting +title: استيراد البيانات مع التنسيق إلى إكسل باستخدام C# +url: /ar/net/excel-data-import-export/import-data-with-formatting-into-excel-using-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# استيراد البيانات مع التنسيق إلى Excel باستخدام C# + +هل احتجت يومًا إلى **استيراد البيانات مع التنسيق** إلى مصنف Excel لكنك تحصل دائمًا على ورقة عادية ومملة؟ لست وحدك. يواجه معظم المطورين هذا الجدار عندما يكتشفون أن الاستيراد الافتراضي يزيل جميع الألوان والأنماط التي قاموا بإعدادها بعناية في بيانات المصدر. + +في هذا الدرس سنستعرض حلًا كاملًا وجاهزًا للتنفيذ **يستورد DataTable إلى Excel** و**يضيف لون خلفية إلى خلايا Excel** في الوقت نفسه. لا تحتاج إلى أي معالجة لاحقة—ستظهر جدول البيانات بالضبط كما تريد مباشرةً. + +## ما ستتعلمه + +- كيفية استرجاع البيانات إلى `DataTable`. +- كيفية تعريف مصفوفة من كائنات `Style` التي تحمل ألوان الخلفية. +- كيفية استدعاء `ImportDataTable` مع تلك الأنماط بحيث يحافظ الاستيراد على التنسيق. +- مثال كامل قابل للتنفيذ يمكنك إدراجه في تطبيق console ورؤية النتيجة فورًا. +- نصائح، ومخاطر محتملة، وتنوعات للمشاريع الواقعية. + +### المتطلبات المسبقة + +- .NET 6.0 أو أحدث (الكود يعمل أيضًا مع .NET Framework 4.6+). +- مكتبة **GemBox.Spreadsheet** (الإصدار المجاني يكفي للعرض). +- إلمام أساسي بـ C# ومفاهيم Excel. + +إذا كنت تتساءل *لماذا GemBox؟* لأنها توفر طريقة سطر واحد `ImportDataTable` تقبل مصفوفات الأنماط—وهو بالضبط ما نحتاجه **لاستيراد البيانات مع التنسيق** دون كتابة حلقة. + +--- + +## الخطوة 1: إعداد المشروع وإضافة GemBox.Spreadsheet + +لبدء العمل، أنشئ تطبيق console جديد: + +```bash +dotnet new console -n ExcelImportDemo +cd ExcelImportDemo +dotnet add package GemBox.Spreadsheet +``` + +> **نصيحة احترافية:** الإصدار المجاني يحد من عدد الخلايا إلى 150 ألف خلية، وهو كافٍ للعرض. إذا وصلت إلى الحد، قم بالترقية أو التحول إلى EPPlus، لكن الواجهة البرمجية ستختلف قليلًا. + +## الخطوة 2: استرجاع بيانات المصدر كـ `DataTable` + +أول شيء نحتاجه هو `DataTable` يحاكي البيانات التي عادةً ما تجلبها من قاعدة بيانات. إليك أداة مساعدة صغيرة تنشئ واحدة في الذاكرة: + +```csharp +using System; +using System.Data; +using System.Drawing; +using GemBox.Spreadsheet; + +class Program +{ + static void Main() + { + // Register the free license (remove for paid version). + SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY"); + + // 1️⃣ Retrieve the source data as a DataTable. + DataTable dataTable = GetSampleData(); + + // Remaining steps will follow... + } + + /// + /// Generates a sample DataTable with three columns and five rows. + /// In a real app you’d replace this with a DB call. + /// + static DataTable GetSampleData() + { + var table = new DataTable("Report"); + table.Columns.Add("ID", typeof(int)); + table.Columns.Add("Name", typeof(string)); + table.Columns.Add("Score", typeof(double)); + + table.Rows.Add(1, "Alice", 93.5); + table.Rows.Add(2, "Bob", 78.0); + table.Rows.Add(3, "Charlie", 85.2); + table.Rows.Add(4, "Diana", 91.3); + table.Rows.Add(5, "Ethan", 67.8); + + return table; + } +} +``` + +**لماذا هذا مهم:** بفصل استرجاع البيانات في طريقة منفصلة، يمكنك استبدال أي مصدر—SQL، CSV، خدمة ويب—دون لمس منطق الاستيراد. هذا يبقي الكود نظيفًا ويجعل الدرس **كيفية استيراد datatable إلى excel** قابلًا لإعادة الاستخدام. + +## الخطوة 3: تعريف الأنماط التي تريد تطبيقها + +الآن يأتي الجزء الممتع: سننشئ مصفوفة من كائنات `Style`، كل منها يحمل `ForegroundColor` مميز. تسمح لك GemBox بتعيين `BackgroundPatternColor` (لون تعبئة الخلية) و`ForegroundColor` (لون النص). في هذا العرض سنلون العمودين الأولين بألوان مختلفة. + +```csharp + // 2️⃣ Define the styles to apply to the imported cells. + Style[] importStyles = new Style[] + { + new Style() { BackgroundPatternColor = Color.LightBlue }, // Column 0 – Light blue fill + new Style() { BackgroundPatternColor = Color.LightGreen } // Column 1 – Light green fill + // No style for column 2 – it will keep the default look. + }; +``` + +**شرح:** +- كائنات `Style` خفيفة الوزن؛ لا تحتاج لإنشاء كائن جديد لكل خلية. +- بمواءمة ترتيب المصفوفة مع ترتيب الأعمدة، تقوم GemBox تلقائيًا بتطبيق النمط المطابق أثناء الاستيراد. +- هذا هو المفتاح لـ **استيراد البيانات مع التنسيق**—التنسيق ينتقل مع البيانات، لا بعد ذلك. + +## الخطوة 4: استيراد `DataTable` إلى ورقة العمل مع الأنماط + +مع البيانات والأنماط جاهزة، يمكننا الآن إنشاء مصنف، اختيار أول ورقة عمل، واستدعاء `ImportDataTable`. توقيع الطريقة يبدو هكذا: + +```csharp +public void ImportDataTable( + DataTable dataTable, + bool includeColumnNames, + int startRow, + int startColumn, + Style[] columnStyles = null); +``` + +إليك كيفية استخدامها: + +```csharp + // 3️⃣ Create a new workbook and import the DataTable. + var workbook = new ExcelFile(); + var worksheet = workbook.Worksheets.Add("Report"); + + // Import, include column headers, start at A1 (0,0), apply our styles. + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, importStyles); + + // Save the file to disk. + workbook.Save("Report.xlsx"); + + Console.WriteLine("Excel file 'Report.xlsx' created with formatted data."); +``` + +**ما الذي يحدث في الخلفية؟** +- `true` يخبر GemBox بكتابة أسماء الأعمدة في الصف الأول. +- `0, 0` يضع الاستيراد في الخلية A1. +- `importStyles` يربط كل عمود بالألوان التي عرّفناها مسبقًا. + +عند فتح *Report.xlsx*، ستلاحظ أن عمود **ID** مظلل باللون الأزرق الفاتح، وعمود **Name** مظلل باللون الأخضر الفاتح، وعمود **Score** يبقى بدون تعديل. هذا هو **استيراد البيانات مع التنسيق** في استدعاء واحد. + +## الخطوة 5: التحقق من النتيجة (الناتج المتوقع) + +افتح ملف `Report.xlsx` المُنشأ. يجب أن ترى شيئًا مشابهًا لهذا: + +| المعرف (أزرق فاتح) | الاسم (أخضر فاتح) | النتيجة | +|--------------------|-------------------|----------| +| 1 | Alice | 93.5 | +| 2 | Bob | 78.0 | +| 3 | Charlie | 85.2 | +| 4 | Diana | 91.3 | +| 5 | Ethan | 67.8 | + +- خلايا عمود **المعرف** لها خلفية زرقاء فاتحة. +- خلايا عمود **الاسم** لها خلفية خضراء فاتحة. +- عمود **النتيجة** يبقى بخلفية بيضاء افتراضية. + +هذا التلميح البصري يجعل التقرير سهل القراءة فورًا—لمسة صغيرة يمكنها تحسين تجربة المستخدم بشكل كبير. + +![صورة لورقة Excel تُظهر استيراد البيانات مع التنسيق – عمود المعرف أزرق فاتح، عمود الاسم أخضر فاتح](excel-screenshot.png "مثال على استيراد البيانات مع التنسيق") + +*يتضمن نص الصورة الكلمة المفتاحية الأساسية لتحسين محركات البحث.* + +--- + +## أسئلة شائعة وحالات خاصة + +### هل يمكنني تطبيق أكثر من مجرد ألوان الخلفية؟ + +بالطبع. تسمح لك `Style` بتعيين الخطوط، الحدود، تنسيقات الأرقام، وحتى التنسيق الشرطي. على سبيل المثال، لجعل الدرجات فوق 90 غامقة وحمراء: + +```csharp +Style highScoreStyle = new Style() +{ + FontColor = Color.Red, + FontBold = true +}; +worksheet.Cells["C2:C6"].ConditionalFormatting.Add( + ConditionalFormattingCondition.GreaterThan, "90", highScoreStyle); +``` + +### ماذا لو كان لدي DataTable يحتوي على أعمدة أكثر من الأنماط؟ + +ستطبق GemBox الأنماط فقط على الأعمدة التي لها إدخال مطابق في المصفوفة. الأعمدة الزائدة تعود إلى النمط الافتراضي—بدون أي خطأ. + +### هل يعمل هذا مع مجموعات بيانات كبيرة؟ + +نعم، لكن راقب حد الخلايا في الإصدار المجاني (150 ألف خلية). للتقارير الضخمة، فكر في الترخيص المدفوع أو بث البيانات صفًا بصف مع `worksheet.Cells[row, col].Value = …`—مع ذلك ستفقد راحة الاستدعاء في سطر واحد. + +### كيف يمكنني استيراد البيانات مع التنسيق من قالب Excel موجود؟ + +يمكنك تحميل قالب المصنف أولًا: + +```csharp +var template = ExcelFile.Load("Template.xlsx"); +var targetSheet = template.Worksheets[0]; +targetSheet.Cells.ImportDataTable(dataTable, true, 5, 2, importStyles); +template.Save("FilledReport.xlsx"); +``` + +هذا يتيح لك الحفاظ على شعارات الرأس، التذييلات، وأي أنماط موجودة مسبقًا مع الاستمرار في **استيراد البيانات مع التنسيق** للجزء الديناميكي. + +--- + +## مثال كامل جاهز للتنفيذ (نسخ‑لصق) + +```csharp +using System; +using System.Data; +using System.Drawing; +using GemBox.Spreadsheet; + +class Program +{ + static void Main() + { + // Register free license key. + SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY"); + + // 1️⃣ Get the source data. + DataTable dataTable = GetSampleData(); + + // 2️⃣ Define column styles (background colors). + Style[] importStyles = new Style[] + { + new Style() { BackgroundPatternColor = Color.LightBlue }, // ID column + new Style() { BackgroundPatternColor = Color.LightGreen } // Name column + // Score column gets default style. + }; + + // 3️⃣ Create workbook and import with styles. + var workbook = new ExcelFile(); + var worksheet = workbook.Worksheets.Add("Report"); + + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, importStyles); + + // Save the result. + workbook.Save("Report.xlsx"); + + Console.WriteLine("Report.xlsx created – import data with formatting complete."); + } + + static DataTable GetSampleData() + { + var table = new DataTable("Report"); + table.Columns.Add("ID", typeof(int)); + table.Columns.Add("Name", typeof(string)); + table.Columns.Add("Score", typeof(double)); + + table.Rows.Add(1, "Alice", 93.5); + table.Rows.Add(2, "Bob", 78.0); + table.Rows.Add(3, "Charlie", 85.2); + table.Rows.Add(4, "Diana", 91.3); + table.Rows.Add(5, "Ethan", 67.8); + + return table; + } +} +``` + +شغّل البرنامج (`dotnet run`) وافتح ملف *Report.xlsx* المُنشأ لترى الألوان مطبقة فورًا. + +--- + +## الخلاصة + +أصبح لديك الآن حلًا قويًا، النهاية + +{{< /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/excel-workbook/_index.md b/cells/arabic/net/excel-workbook/_index.md index edcf820fce..ed123f6dd2 100644 --- a/cells/arabic/net/excel-workbook/_index.md +++ b/cells/arabic/net/excel-workbook/_index.md @@ -86,6 +86,7 @@ | [معاينة طباعة المصنف](./workbook-print-preview/) تعلّم كيفية إنشاء معاينات طباعة لملفات Excel باستخدام Aspose.Cells لـ .NET. تعلّم خطوات البرمجة في برنامج تعليمي مفصل وسهل المتابعة. | [العمل مع خصائص نوع المحتوى](./working-with-content-type-properties/) | تعرّف على كيفية استخدام Aspose.Cells لـ .NET للعمل مع خصائص نوع المحتوى لتحسين إدارة بيانات تعريف Excel. اتبع هذا الدليل البسيط خطوة بخطوة. | | [دعم Xades Signature](./xades-signature-support/) | تعرّف على كيفية إضافة توقيعات Xades إلى ملفات Excel باستخدام Aspose.Cells لـ .NET من خلال هذا الدليل المفصل. حمِّل مستنداتك بأمان. | +| [كيفية إنشاء مصنف في C# – كتابة قيمة وتنسيق رقم](./how-to-create-workbook-in-c-write-value-format-number/) | تعلم كيفية إنشاء مصنف Excel في C# وإدخال قيم وتنسيق الأرقام باستخدام Aspose.Cells لـ .NET خطوة بخطوة. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/arabic/net/excel-workbook/how-to-create-workbook-in-c-write-value-format-number/_index.md b/cells/arabic/net/excel-workbook/how-to-create-workbook-in-c-write-value-format-number/_index.md new file mode 100644 index 0000000000..0e671aa43b --- /dev/null +++ b/cells/arabic/net/excel-workbook/how-to-create-workbook-in-c-write-value-format-number/_index.md @@ -0,0 +1,231 @@ +--- +category: general +date: 2026-03-01 +description: كيفية إنشاء دفتر عمل في C# بسرعة — تعلم كتابة قيمة في خلية، ضبط تنسيق + رقم الخلية، وتنسيق رقم الخلية بخطوات بسيطة. +draft: false +keywords: +- how to create workbook +- write value to cell +- format cell number +- set cell number format +- how to write cell +language: ar +og_description: كيف تنشئ دفتر عمل في C#؟ يوضح لك هذا الدليل كيفية كتابة قيمة إلى خلية، + وتعيين تنسيق رقم الخلية، وتنسيق رقم الخلية في بضع أسطر من الشيفرة فقط. +og_title: كيفية إنشاء دفتر عمل في C# – كتابة القيمة وتنسيق الرقم +tags: +- C# +- Aspose.Cells +- Excel Automation +title: كيفية إنشاء دفتر عمل في C# – كتابة القيمة وتنسيق الرقم +url: /ar/net/excel-workbook/how-to-create-workbook-in-c-write-value-format-number/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# كيفية إنشاء دفتر عمل في C# – كتابة قيمة وتنسيق الرقم + +إنشاء دفتر عمل في C# مهمة شائعة عندما تحتاج إلى توليد ملفات Excel في الوقت الفعلي. في هذا الدليل سنرشدك إلى كيفية كتابة قيمة إلى خلية وتنسيق رقم الخلية بحيث يبدو الورق النهائي مصقلاً. + +إذا سبق لك أن حدقت في جدول بيانات فارغ وتساءلت لماذا تظهر الأرقام بعدد كبير من الكسور العشرية، فأنت لست وحدك. سنغطي كل شيء من تهيئة كائن دفتر العمل إلى ضبط تنسيق رقم مخصص، وسنضيف بعض النصائح للحالات الخاصة التي قد تواجهها لاحقًا. + +## ما ستتعلمه + +- **تهيئة** كائن `Workbook` جديد. +- **كتابة قيمة إلى خلية** باستخدام الطريقة `PutValue`. +- **ضبط تنسيق رقم الخلية** باستخدام كائن `Style`، للحصول على عرض نظيف برقمين بعد الفاصلة. +- التحقق من النتيجة بقراءة الخلية مرة أخرى أو فتح الملف في Excel. + +لا تحتاج إلى مكتبات خارجية بخلاف Aspose.Cells (أو أي API مشابه) القياسية، ويعمل الكود على .NET 6+ دون إعدادات إضافية. + +--- + +## كيفية إنشاء دفتر عمل – تهيئة الكائن + +أولاً وقبل كل شيء: تحتاج إلى كائن دفتر عمل يحمل أوراقك. فكر في `Workbook` كملف Excel بالكامل، بينما كل `Worksheet` هو تبويب واحد. + +```csharp +// Step 1: Create a new workbook instance +Workbook workbook = new Workbook(); +``` + +*لماذا هذا مهم:* إنشاء دفتر العمل يخصص البُنى الداخلية التي ستحمل لاحقًا الصفوف والأعمدة والتنسيقات. بدون هذا الكائن، لا مكان لكتابة قيمة إلى خلية. + +> **نصيحة محترف:** إذا كنت تخطط للعمل على ملف موجود مسبقًا، استبدل `new Workbook()` بـ `new Workbook("template.xlsx")` لتحميل قالب والحفاظ على أنماطه. + +## كتابة قيمة إلى خلية + +الآن بعد أن لدينا دفتر عمل، لنضع رقمًا في الخلية **A1** في أول ورقة عمل. + +```csharp +// Step 2: Access cell A1 in the first worksheet +Cell cellA1 = workbook.Worksheets[0].Cells["A1"]; + +// Step 3: Insert a numeric value into the cell +cellA1.PutValue(123.456789); +``` + +*لماذا نستخدم `PutValue`*: هذه الطريقة تكتشف نوع البيانات تلقائيًا، لذا لا تحتاج إلى تحويل أو إلقاء يدوي. كما أنها تحترم النمط الحالي للخلية، وهو مفيد عندما تقوم لاحقًا **بتعيين تنسيق رقم الخلية**. + +### فحص سريع + +إذا قرأت الخلية مرة أخرى، سترى القيمة الخام: + +```csharp +double raw = cellA1.DoubleValue; // raw == 123.456789 +``` + +هذه هي القيمة قبل تطبيق أي تنسيق. + +## ضبط تنسيق رقم الخلية + +عرض عدد مزدوج (double) خام مع العديد من الكسور العشرية ليس دائمًا صديقًا للمستخدم. لنحدده إلى رقمين مهمين. + +```csharp +// Step 4: Apply a style that formats the number with two significant digits +cellA1.SetStyle(new Style() { Number = 2 }); +``` + +خاصية `Number` تت对应 مع معرّفات تنسيقات الأرقام المدمجة في Excel. الرقم `2` يعني “عدد مع منزلتين عشريتين”. إذا احتجت تنسيقًا مختلفًا—مثل العملة أو التاريخ—ستستخدم معرّفًا آخر أو سلسلة تنسيق مخصصة. + +### بديل: سلسلة تنسيق مخصصة + +```csharp +Style customStyle = workbook.CreateStyle(); +customStyle.Custom = "#,##0.00"; // forces two decimals with thousand separator +cellA1.SetStyle(customStyle); +``` + +*لماذا نختار نمطًا مخصصًا؟* يمنحك تحكمًا كاملاً، خاصة عندما لا تغطي المعرفات المدمجة إعداداتك الإقليمية. + +## التحقق من النتيجة (اختياري لكن موصى به) + +بعد تطبيق النمط، يمكنك حفظ دفتر العمل وفتحه في Excel لتأكيد المظهر. + +```csharp +// Save the workbook to a file +workbook.Save("FormattedWorkbook.xlsx"); + +// Or, for quick verification in code: +string displayed = cellA1.StringValue; // "123.46" +Console.WriteLine($"Displayed value: {displayed}"); +``` + +يجب أن ترى **123.46** في الخلية A1—بالضبط منزلتين عشريتين، بفضل التنسيق الذي وضعناه. + +--- + +### مثال كامل يعمل + +بدمج كل ما سبق، إليك برنامج مستقل يمكنك نسخه ولصقه في تطبيق Console. + +```csharp +using System; +using Aspose.Cells; // Ensure you have the Aspose.Cells NuGet package + +class Program +{ + static void Main() + { + // Initialize the workbook + Workbook workbook = new Workbook(); + + // Access the first worksheet and cell A1 + Cell cellA1 = workbook.Worksheets[0].Cells["A1"]; + + // Write a numeric value + cellA1.PutValue(123.456789); + + // Apply a two‑decimal number format + cellA1.SetStyle(new Style() { Number = 2 }); + + // Save to disk (optional) + workbook.Save("FormattedWorkbook.xlsx"); + + // Output the displayed text for verification + Console.WriteLine($"Cell A1 shows: {cellA1.StringValue}"); + } +} +``` + +**الناتج المتوقع عند تشغيل البرنامج:** + +``` +Cell A1 shows: 123.46 +``` + +افتح `FormattedWorkbook.xlsx` في Excel وسترى نفس القيمة المنسقة. + +--- + +## تنوعات شائعة وحالات خاصة + +### 1. تنسيقات أرقام مختلفة + +| الهدف | معرّف التنسيق | مقتطف الكود | +|------|-----------|--------------| +| عملة (منزلتين عشريتين) | 5 | `cellA1.SetStyle(new Style() { Number = 5 });` | +| نسبة مئوية (بدون كسور) | 10 | `cellA1.SetStyle(new Style() { Number = 10 });` | +| تدوين علمي | 11 | `cellA1.SetStyle(new Style() { Number = 11 });` | + +إذا لم يتطابق أي من المعرفات المدمجة مع احتياجاتك، عُد إلى سلسلة مخصصة كما هو موضح سابقًا. + +### 2. فواصل عشرية حسب الثقافة + +بعض اللغات تستخدم الفواصل بدلاً من النقاط للكسور العشرية. يمكنك فرض تنسيق واعٍ للثقافة: + +```csharp +Style cultureStyle = workbook.CreateStyle(); +cultureStyle.Custom = "#,##0.00"; // works for most European locales +cellA1.SetStyle(cultureStyle); +``` + +### 3. كتابة نص بدلاً من أرقام + +عندما تحتاج إلى **كيفية كتابة خلية** بسلسلة نصية، ما عليك سوى تمرير النص إلى `PutValue`: + +```csharp +cellA1.PutValue("Total Revenue"); +``` + +لا يلزم تنسيق رقم، لكن لا يزال بإمكانك تطبيق تنسيق الخط. + +### 4. مجموعات بيانات ضخمة + +إذا كنت تملأ آلاف الصفوف، فإن الإدخال على دفعات (`Cells.ImportArray`) أسرع من حلقة `PutValue`. يبقى نهج التنسيق كما هو؛ فقط طبق النمط على نطاق: + +```csharp +Range range = workbook.Worksheets[0].Cells.CreateRange("B2:B1001"); +range.ApplyStyle(new Style() { Number = 2 }); +``` + +--- + +## الأسئلة المتكررة + +**س: هل يعمل هذا مع .NET Core؟** +ج: بالتأكيد. يدعم Aspose.Cells .NET Standard 2.0 وما بعده، لذا يمكنك استهداف .NET 5 أو .NET 6 أو .NET 7 دون تغييرات. + +**س: ماذا لو احتجت أكثر من منزلتين عشريتين؟** +ج: غيّر خاصية `Number` إلى المعرف المدمج المناسب (مثلاً `3` لثلاث منازل عشرية) أو عدّل سلسلة التنسيق المخصصة (`"#,##0.000"`). + +**س: هل يمكنني تطبيق التنسيق على عمود كامل مرة واحدة؟** +ج: نعم. استخدم `Cells["A:A"]` للحصول على العمود بالكامل ثم `SetStyle`. + +--- + +## الخلاصة + +أنت الآن تعرف **كيفية إنشاء دفتر عمل** في C#، **كتابة قيمة إلى خلية**، و**ضبط تنسيق رقم الخلية** بحيث تظهر الأرقام بالضبط كما تريد. من خلال إتقان هذه الأساسيات، ستكون قادرًا على توليد تقارير Excel احترافية، فواتير، أو تصدير بيانات بجهد قليل. + +في الخطوة التالية، قد تستكشف **تنسيق رقم الخلية** للتواريخ أو النسب المئوية أو التنسيق الشرطي—كل منها يبني على المبادئ التي غطيناها. استعرض وثائق Aspose.Cells لمزيد من خيارات التنسيق المتقدمة، أو جرّب دمج أوراق عمل متعددة في دفتر واحد لتقارير أكثر غنى. + +برمجة سعيدة، وتذكر: جدول بيانات منسق جيدًا هو مجرد + +{{< /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..fb48eaf4b0 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 – تحويل Excel إلى HTML باستخدام C#](./how-to-embed-fonts-in-html-convert-excel-to-html-with-c/) +تعرف على كيفية تضمين الخطوط في HTML عند تحويل Excel إلى 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-convert-excel-to-html-with-c/_index.md b/cells/arabic/net/exporting-excel-to-html-with-advanced-options/how-to-embed-fonts-in-html-convert-excel-to-html-with-c/_index.md new file mode 100644 index 0000000000..3cc0f2db27 --- /dev/null +++ b/cells/arabic/net/exporting-excel-to-html-with-advanced-options/how-to-embed-fonts-in-html-convert-excel-to-html-with-c/_index.md @@ -0,0 +1,207 @@ +--- +category: general +date: 2026-03-01 +description: تعلم كيفية تضمين الخطوط في HTML عند تحويل Excel إلى HTML باستخدام Aspose.Cells. + يوضح هذا الدليل خطوة بخطوة أيضًا كيفية حفظ Excel كملف HTML. +draft: false +keywords: +- how to embed fonts +- embed fonts in html +- convert excel to html +- create html from excel +- save excel as html +language: ar +og_description: كيفية تضمين الخطوط في HTML عند تصدير Excel إلى HTML. اتبع هذا الدليل + الكامل للحفاظ على الطباعة عبر المتصفحات. +og_title: كيفية تضمين الخطوط في HTML – دليل C# سريع +tags: +- Aspose.Cells +- C# +- HTML export +title: كيفية تضمين الخطوط في HTML – تحويل Excel إلى HTML باستخدام C# +url: /ar/net/exporting-excel-to-html-with-advanced-options/how-to-embed-fonts-in-html-convert-excel-to-html-with-c/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# كيفية تضمين الخطوط في HTML – تحويل Excel إلى HTML باستخدام C# + +هل تساءلت يومًا **كيف يتم تضمين الخطوط في HTML** بحيث يبدو تحويل Excel إلى HTML مثاليًا من حيث البكسل؟ لست الوحيد. عند تصدير مصنف إلى HTML، السلوك الافتراضي هو الإشارة إلى خطوط النظام، مما قد يسبب كسر التخطيط على الأجهزة التي لا تتوفر فيها تلك الخطوط. + +من خلال تفعيل تضمين الخطوط، تضمن أن الناتج يحافظ على الطباعة الأصلية، بغض النظر عن مكان عرضه. في هذا الدرس سنستعرض الخطوات الدقيقة **لتضمين الخطوط في HTML** باستخدام Aspose.Cells لـ .NET، وسنتطرق أيضًا إلى مهام ذات صلة مثل **تحويل Excel إلى HTML**، **إنشاء HTML من Excel**، و **حفظ Excel كـ HTML**. + +## ما ستتعلمه + +- لماذا يعتبر تضمين الخطوط مهمًا لتوافق المتصفحات. +- الكود الدقيق بلغة C# اللازم لتمكين **embed fonts in html** عند حفظ المصنف. +- كيفية التعامل مع الحالات الخاصة الشائعة مثل ملفات الخط الكبيرة أو قيود الترخيص. +- خطوات تحقق سريعة للتأكد من أن الخطوط فعلاً مضمّنة. + +### المتطلبات المسبقة + +- .NET 6.0 أو أحدث (الكود يعمل أيضًا مع .NET Framework 4.6+). +- حزمة NuGet الخاصة بـ Aspose.Cells لـ .NET مثبتة (`Install-Package Aspose.Cells`). +- فهم أساسي للغة C# وتعامل مع ملفات Excel. +- وجود خط TrueType/OpenType مخصص واحد على الأقل مستخدم في المصنف. + +> **نصيحة احترافية:** إذا كنت تستخدم Visual Studio، فعّل “Nullable reference types” لاكتشاف مشكلات null المحتملة مبكرًا. + +--- + +## الخطوة 1: إعداد المشروع وتحميل المصنف + +أولاً، أنشئ تطبيق console جديد (أو دمجه في الحل الحالي). ثم أضف مساحة الاسم Aspose.Cells. + +```csharp +using System; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Load an existing Excel file that uses custom fonts + string sourcePath = @"C:\Temp\Report.xlsx"; + Workbook wb = new Workbook(sourcePath); +``` + +*لماذا هذا مهم:* تحميل المصنف يمنح المكتبة إمكانية الوصول إلى أنماط الخلايا، التي تشمل معلومات الخط التي نرغب في تضمينها لاحقًا. + +--- + +## الخطوة 2: إنشاء **HtmlSaveOptions** وتفعيل تضمين الخطوط + +فئة `HtmlSaveOptions` تتحكم في كل جانب من تصدير HTML. ضبط `EmbedFonts = true` يخبر Aspose.Cells بتضمين ملفات الخط المطلوبة مباشرةً في HTML (كروابط بيانات Base64). + +```csharp + // Step 2: Create HTML save options + HtmlSaveOptions htmlOptions = new HtmlSaveOptions(); + + // Enable embedding of fonts in the saved HTML + htmlOptions.EmbedFonts = true; + + // Optional: Reduce the size of embedded fonts by subsetting + htmlOptions.SubsetEmbeddedFonts = true; +``` + +*لماذا نفعّل `SubsetEmbeddedFonts`*: يزيل الأحرف غير المستخدمة، مما يقلص حجم ملف HTML النهائي—مفيد خصوصًا عند التعامل مع عائلات خطوط كبيرة. + +--- + +## الخطوة 3: اختيار مجلد الإخراج وحفظ HTML + +الآن حدد أين سيُحفظ ملف HTML. ستقوم Aspose.Cells أيضًا بإنشاء مجلد للملفات الداعمة (الصور، CSS، إلخ). + +```csharp + // Define output location + string outputFolder = @"C:\Temp\ExportedHtml"; + string outputFile = System.IO.Path.Combine(outputFolder, "Report.html"); + + // Ensure the folder exists + System.IO.Directory.CreateDirectory(outputFolder); + + // Step 3: Save the workbook as HTML with the configured options + wb.Save(outputFile, htmlOptions); + + Console.WriteLine($"HTML file with embedded fonts saved to: {outputFile}"); + } +} +``` + +*ما ستلاحظه:* افتح ملف `Report.html` الناتج في أي متصفح. يجب أن تُعرض الخطوط المخصصة بشكل صحيح حتى وإن لم يكن الخط مثبتًا على الجهاز. + +--- + +## الخطوة 4: التحقق من أن الخطوط مضمّنة فعلاً + +طريقة سريعة لتأكيد التضمين هي فحص ملف HTML المُولد. ابحث عن كتل `