diff --git a/cells/arabic/net/conversion-to-pdf/_index.md b/cells/arabic/net/conversion-to-pdf/_index.md index 16a4371d8a..45f1200cfb 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 مع هذا الدليل المفصل! مثالي للمبرمجين من جميع المستويات. +### [حفظ المصنف كملف PDF باستخدام Aspose.Cells – دليل كامل خطوة بخطوة](./save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/) +تعلم كيفية حفظ ملف Excel كـ PDF باستخدام Aspose.Cells من خلال دليل شامل خطوة بخطوة. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/arabic/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md b/cells/arabic/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md new file mode 100644 index 0000000000..0de048715e --- /dev/null +++ b/cells/arabic/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-03-30 +description: تعلم كيفية حفظ المصنف كملف PDF باستخدام Aspose.Cells. يغطي هذا الدرس + أيضًا تصدير ورقة العمل إلى PDF، وكيفية تصدير Excel إلى PDF وإنشاء PDF من ورقة العمل. +draft: false +keywords: +- save workbook as pdf +- export worksheet to pdf +- how to export excel to pdf +- save excel as pdf +- create pdf from worksheet +language: ar +og_description: احفظ المصنف بصيغة PDF بسهولة. يوضح هذا الدليل كيفية تصدير ورقة العمل + إلى PDF، وكيفية تصدير Excel إلى PDF وإنشاء PDF من ورقة العمل باستخدام C#. +og_title: حفظ المصنف كملف PDF باستخدام Aspose.Cells – دليل كامل +tags: +- Aspose.Cells +- C# +- PDF generation +title: حفظ المصنف بصيغة PDF باستخدام Aspose.Cells – دليل خطوة بخطوة كامل +url: /ar/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# حفظ دفتر العمل كملف PDF – دليل خطوة بخطوة كامل + +هل احتجت يومًا إلى **save workbook as pdf** لكن لم تكن متأكدًا أي مكتبة ستحافظ على أرقامك دون تغيير؟ لست وحدك. في العديد من المشاريع نحتاج إلى تحويل بيانات Excel إلى ملف PDF مصقول، وإنجاز ذلك بالطريقة الصحيحة يوفر ساعات من تصحيح الأخطاء. + +في هذا الدرس سنستعرض الشيفرة الدقيقة التي تحتاجها **save workbook as pdf** باستخدام Aspose.Cells، وسنُظهر لك أيضًا كيفية **export worksheet to pdf**، والإجابة على أسئلة *how to export excel to pdf*، وسنُظهر طريقة نظيفة لـ **create pdf from worksheet** مع إعدادات دقة مخصصة. + +بنهاية الدليل ستحصل على تطبيق C# Console جاهز للتنفيذ ينتج ملف PDF يحتوي فقط على الأرقام ذات الدقة المهمة لك. لا إضافات غير ضرورية، مجرد حل قوي جاهز للإنتاج. + +--- + +## ما ستتعلمه + +- كيفية إعداد `Workbook` جديد واستهداف ورقة العمل الأولى. +- الطريقة الدقيقة لـ **save workbook as pdf** مع الحفاظ على دقة الأرقام. +- لماذا خاصية `SignificantDigits` مهمة عند **export worksheet to pdf**. +- الأخطاء الشائعة عند محاولة **how to export excel to pdf** وكيفية تجنّبها. +- طرق سريعة لـ **save excel as pdf** مع خيارات صفحات مختلفة، وكيفية **create pdf from worksheet** برمجياً. + +### المتطلبات المسبقة + +- .NET 6.0 أو أحدث (الشيفرة تعمل أيضًا مع .NET Framework 4.5+). +- رخصة Aspose.Cells صالحة (أو رخصة تجريبية مؤقتة للاختبار). +- Visual Studio 2022 أو أي بيئة تطوير تدعم C#. + +إذا كنت قد أعددت هذه الأساسيات، فلنبدأ. + +--- + +## الخطوة 1 – تثبيت Aspose.Cells وتهيئة الـ Workbook + +أولًا: تحتاج إلى حزمة NuGet الخاصة بـ Aspose.Cells. افتح الطرفية في مجلد المشروع وشغّل: + +```bash +dotnet add package Aspose.Cells +``` + +بعد تثبيت الحزمة، أنشئ كائن `Workbook` جديد. هذا هو الكائن الذي ستقوم في النهاية **save workbook as pdf** به. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialise a fresh workbook – think of it as a blank Excel file. + Workbook workbook = new Workbook(); + + // Grab the first worksheet (index 0). This is where we’ll put our data. + Worksheet worksheet = workbook.Worksheets[0]; +``` + +*لماذا هذه الخطوة؟* +إنشاء الـ workbook يمنحك لوحة رسم نظيفة، واختيار الورقة الأولى يضمن أنك تعمل في موقع معروف. تخطي هذه الخطوة قد يؤدي إلى أخطاء *null reference* عندما تحاول لاحقًا **export worksheet to pdf**. + +--- + +## الخطوة 2 – إدخال بيانات عالية الدقة + +الآن سنضيف رقمًا يحتوي على منازل عشرية أكثر مما نريد إظهاره في PDF. هذا يوضح كيف تقوم خاصية `SignificantDigits` بتقليص الناتج. + +```csharp + // Place a high‑precision number in cell A1. + worksheet.Cells["A1"].PutValue(1234.56789); +``` + +إذا شغّلت البرنامج الآن واستدعيت `workbook.Save("output.pdf")`، سيظهر الـ PDF القيمة الكاملة `1234.56789`. هذا قد يكون مناسبًا في بعض الحالات، لكن غالبًا ما تحتاج إلى تقريب إلى عدد محدد من الأرقام المهمة—خاصةً في التقارير المالية. + +--- + +## الخطوة 3 – تكوين خيارات حفظ PDF + +توفر Aspose.Cells تحكمًا دقيقًا عبر `PdfSaveOptions`. الخاصية التي نهتم بها هي `SignificantDigits`. ضبطها على `4` يخبر المحرك بالحفاظ على أربعة أرقام مهمة فقط عند **save workbook as pdf**. + +```csharp + // Configure PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 // This trims the number to 1235 in the PDF. + }; +``` + +*لماذا نستخدم `SignificantDigits`؟* +عند **create pdf from worksheet** غالبًا ما تحتاج إلى الالتزام بقواعد التقريب التنظيمية. هذا الخيار يقوم بالتقريب تلقائيًا، دون الحاجة لتنسيق كل خلية يدويًا. + +--- + +## الخطوة 4 – تصدير ورقة العمل إلى PDF باستخدام الخيارات + +هذه هي لحظة الحقيقة: نُجري **save workbook as pdf** باستخدام الخيارات التي عرّفناها للتو. + +```csharp + // Save the workbook as a PDF using the configured options. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + } +} +``` + +تشغيل البرنامج سيولد ملفًا باسم `SignificantDigits.pdf` في مجلد الإخراج الخاص بالمشروع. افتحه وسترى `1235` في الخلية A1 – تم تقريب الرقم إلى أربعة أرقام مهمة. + +*نقطة أساسية:* طريقة `Save` تأخذ كلًا من مسار الملف و`PdfSaveOptions`. إذا حذفت الخيارات، ستعود إلى السلوك الافتراضي، والذي قد لا يفي بمتطلبات الدقة لديك. + +--- + +## الخطوة 5 – التحقق من الناتج ومعالجة المشكلات الشائعة + +### النتيجة المتوقعة + +- ملف PDF من صفحة واحدة اسمه `SignificantDigits.pdf`. +- الخلية A1 تعرض `1235` (أربعة أرقام مهمة). +- لا توجد أوراق عمل إضافية أو محتوى مخفي يظهر. + +### الأسئلة المتكررة + +| السؤال | الجواب | +|----------|--------| +| **ماذا لو احتجت أكثر من ورقة عمل؟** | قم بالتكرار عبر `workbook.Worksheets` وطبق نفس `PdfSaveOptions` عند حفظ كل ورقة على حدة، أو اضبط `OnePagePerSheet = true` في الخيارات. | +| **هل يمكن الحفاظ على تنسيق الرقم الأصلي؟** | نعم – اضبط `PdfSaveOptions.AllColumnsInOnePage = true` ودع قواعد تنسيق Excel تتولى الأمر، لكن تذكر أن `SignificantDigits` سيظل يتجاوز الدقة العددية. | +| **هل يعمل هذا مع ملفات .xlsx الموجودة مسبقًا؟** | بالتأكيد. استبدل `new Workbook()` بـ `new Workbook("input.xlsx")` وستبقى باقي الشيفرة كما هي. | +| **ماذا إذا كان الـ PDF فارغًا؟** | تأكد من أن الـ workbook يحتوي على بيانات فعلًا وأنك تحفظ في دليل قابل للكتابة. أيضًا، تحقق من تطبيق رخصة Aspose.Cells بشكل صحيح؛ النسخة التجريبية غير المرخصة قد تقيد الإخراج. | + +### نصيحة احترافية + +إذا أردت **save excel as pdf** باتجاه صفحة محدد، اضبط `pdfSaveOptions.PageSetup.Orientation = PageOrientation.Landscape;` قبل استدعاء `Save`. هذه اللمسة الصغيرة غالبًا ما توفر عليك تعديل الـ PDF يدويًا لاحقًا. + +--- + +## تنويعات: تصدير أوراق متعددة أو إعدادات صفحة مخصصة + +### تصدير جميع الأوراق في استدعاء واحد + +```csharp +PdfSaveOptions allSheetsOptions = new PdfSaveOptions +{ + SignificantDigits = 4, + OnePagePerSheet = true // Each worksheet gets its own page. +}; + +workbook.Save("AllSheets.pdf", allSheetsOptions); +``` + +### تصدير ورقة واحدة كملف PDF + +إذا أردت فقط **export worksheet to pdf** لورقة معينة، استخدم طريقة `ToPdf` الخاصة بكائن `Worksheet`: + +```csharp +Worksheet sheet = workbook.Worksheets["Sheet2"]; +sheet.ToPdf("Sheet2.pdf", pdfSaveOptions); +``` + +### تعديل هوامش الصفحة + +```csharp +pdfSaveOptions.PageSetup.TopMargin = 20; +pdfSaveOptions.PageSetup.BottomMargin = 20; +``` + +هذه التعديلات تسمح لك بضبط المستند النهائي بدقة دون الحاجة لمعالجة لاحقة. + +--- + +## مثال كامل جاهز للتنفيذ + +فيما يلي البرنامج الكامل جاهز للنسخ واللصق. احفظه باسم `Program.cs` وشغّله بالأمر `dotnet run`. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and select the first worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Insert a high‑precision number. + worksheet.Cells["A1"].PutValue(1234.56789); + + // 3️⃣ Set PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 + }; + + // 4️⃣ Save the workbook as PDF. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + + // Optional: Export another sheet with custom settings. + // Worksheet sheet2 = workbook.Worksheets.Add("Report"); + // sheet2.Cells["B2"].PutValue(9876.54321); + // sheet2.ToPdf("Report.pdf", pdfSaveOptions); + } +} +``` + +**النتيجة:** افتح `SignificantDigits.pdf` – ستلاحظ القيمة المقربة `1235`. حجم الملف معتدل، والتنسيق يطابق ورقة Excel الأصلية. + +--- + +## الخلاصة + +لقد أظهرنا لك كيفية **save workbook as pdf** باستخدام Aspose.Cells، بدءًا من الإعداد الأساسي وحتى الخيارات المتقدمة مثل **export worksheet to pdf**، **how to export excel to pdf**، و**create pdf from worksheet** مع تحكم دقيق في الأرقام. + +النهج بسيط، يتطلب بضع أسطر من C# فقط، ويعمل عبر إصدارات .NET المختلفة. بعد ذلك، يمكنك استكشاف إضافة رؤوس/تذييلات، دمج صور، أو إنشاء PDFs من قوالب—كل ذلك يبني على الأساس الذي أنشأته الآن. + +هل لديك فكرة تريد تجربتها؟ ربما تحتاج إلى حماية PDF بكلمة مرور أو دمج عدة ملفات PDF معًا. هذه توسعات طبيعية، وواجهة Aspose.Cells تدعمها. انطلق، جرب، ودع المكتبة تتولى الجزء الصعب. + +--- + +![save workbook as pdf screenshot](/images/save-workbook-as-pdf.png){alt="مثال على حفظ دفتر العمل كملف pdf يُظهر ملف 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..b36cf6ef08 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 @@ -44,29 +44,43 @@ ## دروس تحويل ملفات Excel إلى تنسيقات أخرى ### [تحويل CSV إلى JSON برمجيًا في .NET](./converting-csv-to-json/) تعلّم كيفية تحويل ملفات CSV إلى JSON في .NET باستخدام Aspose.Cells. دليل خطوة بخطوة لتحويل البيانات مع أمثلة برمجية سهلة الاستخدام. + ### [تحويل ملف Excel إلى DOCX برمجيًا في .NET](./converting-excel-file-to-docx/) تعرّف على كيفية تحويل ملفات Excel برمجيًا إلى DOCX باستخدام Aspose.Cells لـ .NET في هذا الدليل المفصل. مثالي لإنشاء التقارير ومشاركة البيانات. + ### [تحويل ملف Excel إلى HTML باستخدام Tooltip في .NET](./converting-excel-file-to-html-with-tooltip/) حوّل ملفات Excel إلى HTML باستخدام تلميحات الأدوات باستخدام Aspose.Cells لـ .NET بخطوات بسيطة. حسّن تطبيقات الويب لديك ببيانات Excel التفاعلية بسهولة. + ### [تحويل ملف Excel إلى Markdown برمجيًا في .NET](./converting-excel-file-to-markdown/) تعرّف على كيفية تحويل ملفات Excel إلى تنسيق Markdown باستخدام Aspose.Cells لـ .NET في هذا الدليل المفصل خطوة بخطوة. عزّز إنتاجيتك بتحويل الملفات بسهولة. + ### [تحويل ملف Excel إلى PDF (A-1a) برمجيًا في .NET](./converting-excel-file-to-pdf-a-1a/) تعرّف على كيفية تحويل ملفات Excel إلى PDF/A-1a لأغراض الأرشفة باستخدام Aspose.Cells لـ .NET. دليل خطوة بخطوة مع أمثلة برمجية. + ### [تحويل JSON إلى CSV برمجيًا في .NET](./converting-json-to-csv/) تعرّف على كيفية تحويل JSON إلى CSV برمجيًا في .NET باستخدام Aspose.Cells. اتبع دليلنا خطوة بخطوة لضمان تحويل بيانات سلس. + ### [تحويل ملف Excel إلى PPTX برمجيًا في .NET](./converting-excel-file-to-pptx/) تعرف على كيفية تحويل ملف Excel إلى عرض تقديمي بتنسيق PowerPoint (PPTX) برمجيًا باستخدام Aspose.Cells for .NET من خلال هذا الدليل خطوة بخطوة. + ### [تحديد HTML CrossType في إخراج HTML برمجيًا في .NET](./specifying-html-crosstype-in-output-html/) تعرّف على كيفية تحديد HTML CrossType في Aspose.Cells لـ .NET. اتبع دليلنا خطوة بخطوة لتحويل ملفات Excel إلى HTML بدقة. + ### [قراءة جدول بيانات الأرقام برمجيًا في .NET](./reading-numbers-spreadsheet/) تعرف على كيفية قراءة جداول بيانات Numbers وتحويلها إلى PDF باستخدام Aspose.Cells لـ .NET في هذا البرنامج التعليمي المفصل. + ### [حفظ المصنف بتنسيق جدول بيانات XML المفتوح الصارم في .NET](./saving-workbook-to-strict-open-xml-spreadsheet-format/) تعرف على كيفية حفظ مصنف بتنسيق Strict Open XML Spreadsheet باستخدام Aspose.Cells for .NET في هذا البرنامج التعليمي المفصل. + ### [تتبع تقدم تحويل المستندات برمجيًا في .NET](./tracking-document-conversion-progress/) الوصف: تعرف على كيفية تتبع تقدم تحويل المستندات برمجيًا باستخدام Aspose.Cells لـ .NET في هذا البرنامج التعليمي المفصل. + ### [تتبع تقدم تحويل المستندات لـ TIFF برمجيًا في .NET](./tracking-document-conversion-progress-for-tiff/) تعلم كيفية تتبع تقدم تحويل TIFF برمجيًا باستخدام Aspose.Cells لـ .NET من خلال دليلنا المفصل. حسّن مهاراتك في إدارة المستندات. +### [إنشاء PowerPoint من Excel – دليل خطوة بخطوة C#](./create-powerpoint-from-excel-step-by-step-c-guide/) +تعلم كيفية إنشاء عرض تقديمي PowerPoint من ملف Excel باستخدام Aspose.Cells في C# خطوة بخطوة. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} diff --git a/cells/arabic/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md b/cells/arabic/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md new file mode 100644 index 0000000000..2f0d598f3e --- /dev/null +++ b/cells/arabic/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md @@ -0,0 +1,250 @@ +--- +category: general +date: 2026-03-30 +description: أنشئ عرض PowerPoint من Excel بسرعة باستخدام Aspose.Cells و Aspose.Slides. + تعلّم كيفية تصدير ورقة العمل كصورة وحفظ العرض التقديمي كملف PPTX باستخدام C#. +draft: false +keywords: +- create powerpoint from excel +- convert excel to powerpoint +- export worksheet as image +- save presentation as pptx +- export excel chart as picture +language: ar +og_description: إنشاء عرض PowerPoint من Excel باستخدام C# و Aspose. تصدير ورقة العمل + كصورة، مع الحفاظ على الأشكال قابلة للتحرير، وحفظ النتيجة كملف PPTX. +og_title: إنشاء عرض PowerPoint من Excel – دليل C# الكامل +tags: +- Aspose +- C# +- Office Automation +title: إنشاء PowerPoint من Excel – دليل C# خطوة بخطوة +url: /ar/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# إنشاء PowerPoint من Excel – دليل C# كامل + +هل احتجت يوماً إلى **إنشاء PowerPoint من Excel** لكن لم تكن متأكدًا أي مكتبة يمكنها الحفاظ على قابلية تحرير المخططات؟ لست وحدك. في العديد من سيناريوهات التقارير تريد تحويل جدول بيانات إلى مجموعة شرائح دون فقدان القدرة على تعديل مربعات النص لاحقًا. يوضح لك هذا الدليل بالضبط كيفية **تحويل Excel إلى PowerPoint** باستخدام Aspose.Cells و Aspose.Slides، بالإضافة إلى شرح كيفية **تصدير ورقة العمل كصورة** وأخيرًا **حفظ العرض التقديمي كملف PPTX**. + +سنستعرض كل سطر من الشيفرة، نشرح *لماذا* كل إعداد مهم، ونناقش أيضًا ما يجب فعله إذا كان دفتر العمل يحتوي على مخططات معقدة تفضل تصديرها كصورة. في النهاية ستحصل على تطبيق C# Console جاهز للتشغيل يأخذ `ShapesDemo.xlsx` وينتج `Result.pptx` – كل ذلك مع مربعات نص قابلة للتحرير وصور واضحة. + +## ما ستحتاجه + +- .NET 6.0 أو أحدث (تعمل الواجهة البرمجية مع .NET Framework أيضًا، لكن .NET 6 هو الخيار المثالي). +- **Aspose.Cells** و **Aspose.Slides** حزم NuGet (تعمل تراخيص التجربة المجانية للاختبار). +- إلمام أساسي بصياغة C# – إذا كنت تستطيع كتابة `Console.WriteLine`، فأنت جاهز. + +لا تحتاج إلى COM interop إضافي، ولا إلى تثبيت Office على الخادم، ولا إلى نسخ‑لصق يدوي للصور. كل شيء يتم معالجته برمجيًا. + +--- + +## إنشاء PowerPoint من Excel – تحميل دفتر العمل وتعيين خيارات التصدير + +أول شيء نقوم به هو فتح ملف Excel وإخبار Aspose.Cells كيف نريد عرض الورقة. كائن `ImageOrPrintOptions` هو المكان الذي يحدث فيه السحر: نقوم بتمكين `ExportShapes` و `ExportEditableTextBoxes` بحيث تصبح أي أشكال (بما في ذلك المخططات) جزءًا من الشريحة **و** تظل قابلة للتحرير بعد التحويل. + +```csharp +using Aspose.Cells; +using Aspose.Slides; + +// 1️⃣ Load the Excel workbook +string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; +Workbook workbook = new Workbook(excelPath); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first sheet + +// 2️⃣ Configure image export – keep shapes editable +ImageOrPrintOptions imageOptions = new ImageOrPrintOptions +{ + OnePagePerSheet = true, // Export the whole sheet as one slide + ExportShapes = true, // Include shapes (charts, drawings) + ExportEditableTextBoxes = true // Make text boxes editable in PPTX +}; +``` + +**لماذا هذه العلامات؟** +- `OnePagePerSheet` يمنع تقسيم الورقة عبر عدة شرائح – ستحصل على صورة واحدة بحجم كامل. +- `ExportShapes` يخبر Aspose.Cells ب rasterize المخططات *و* الأشكال المتجهية، مع الحفاظ على مظهرها. +- `ExportEditableTextBoxes` هو السر الذي يتيح لك النقر المزدوج على مربع نص في PowerPoint وتعديل النص دون الحاجة لفتح Excel مرة أخرى. + +> **نصيحة احترافية:** إذا كنت بحاجة فقط إلى صورة ثابتة لمخطط، اضبط `ExportShapes = false` واستخدم طريقة `ExportExcelChartAsPicture` لاحقًا (انظر القسم النهائي). + +--- + +## تحويل Excel إلى PowerPoint – إنشاء صورة من ورقة العمل + +مع إعداد الخيارات، نقوم الآن بتحويل ورقة العمل إلى `System.Drawing.Image`. يقوم `WorksheetToImageConverter` بالعمل الشاق، مطبقًا الإعدادات التي عرفناها للتو. + +```csharp +// 3️⃣ Convert the worksheet to an image using the options above +WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); +System.Drawing.Image sheetImage = converter.ConvertToImage(0, imageOptions); +``` + +المعامل `0` يشير إلى الصفحة الأولى (لدينا صفحة واحدة فقط بسبب `OnePagePerSheet`). الصورة الناتجة `sheetImage` تحتفظ بدقة DPI الأصلية، لذا لن تبدو شريحتك متقطعة حتى على الشاشات عالية الدقة. + +--- + +## حفظ العرض التقديمي كـ PPTX – إدراج الصورة في شريحة + +الآن نقوم بإنشاء ملف PowerPoint جديد، نضيف شريحة، ونضع الصورة النقطية (bitmap) عليها. يتعامل Aspose.Slides مع الصورة ككائن *إطار صورة* (picture frame)، يمكنك لاحقًا تغيير حجمه أو تحريكه مثل أي كائن PowerPoint أصلي. + +```csharp +// 4️⃣ Create a new PowerPoint presentation +Presentation presentation = new Presentation(); +ISlide slide = presentation.Slides[0]; // The default blank slide + +// Add the Excel‑derived image as a picture frame +slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, // Simple rectangle container + 0, 0, // Top‑left corner (0,0) + sheetImage.Width, // Width of the picture + sheetImage.Height, // Height of the picture + sheetImage); // The bitmap we generated +``` + +> **ماذا لو كانت الصورة أكبر من حجم الشريحة؟** +> سيقوم PowerPoint تلقائيًا بقطع أي شيء يتجاوز أبعاد الشريحة. حل سريع هو تعديل حجم الصورة قبل إدراجها: + +```csharp +float scale = Math.Min(presentation.SlideSize.Size.Width / (float)sheetImage.Width, + presentation.SlideSize.Size.Height / (float)sheetImage.Height); +int newWidth = (int)(sheetImage.Width * scale); +int newHeight = (int)(sheetImage.Height * scale); +``` + +يمكنك بعد ذلك تمرير `newWidth` و `newHeight` إلى `AddPictureFrame`. + +--- + +## تصدير ورقة العمل كصورة – حفظ ملف PPTX + +أخيرًا نقوم بحفظ العرض التقديمي على القرص. علم `SaveFormat.Pptx` يضمن تنسيق OpenXML الحديث، والذي يعمل عبر جميع إصدارات PowerPoint الحديثة. + +```csharp +// 5️⃣ Save the presentation as a PPTX file +string pptxPath = "YOUR_DIRECTORY/Result.pptx"; +presentation.Save(pptxPath, SaveFormat.Pptx); +``` + +عند فتح `Result.pptx` سترى شريحة واحدة تبدو تمامًا مثل ورقة Excel الخاصة بك، لكن لا يزال بإمكانك النقر على أي مربع نص وتعديل محتواه مباشرة في PowerPoint. + +--- + +## تصدير مخطط Excel كصورة – عندما تُفضَّل الصور النقطية + +أحيانًا لا تحتاج إلى أشكال قابلة للتحرير؛ صورة PNG عالية الجودة لمخطط تكفي. يمكن لـ Aspose.Cells تصدير مخطط محدد إلى صورة دون تحويل الورقة بأكملها: + +```csharp +// Example: Export the first chart on the sheet as a PNG +int chartIndex = 0; // Adjust if you have multiple charts +Chart chart = worksheet.Charts[chartIndex]; +ImageOrPrintOptions chartOptions = new ImageOrPrintOptions +{ + ImageFormat = ImageFormat.Png, + OnePagePerSheet = false +}; +chart.ToImage("chart.png", chartOptions); +``` + +يمكنك بعد ذلك تضمين `chart.png` في شريحة بنفس الطريقة التي أضفنا بها `sheetImage`. يقلل هذا النهج من حجم ملف PPTX ويكون مفيدًا عندما لا تكون البيانات المحيطة مطلوبة على الشريحة. + +--- + +## المشكلات الشائعة وكيفية تجنّبها + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **النص يبدو غير واضح** | تم التصدير بدقة DPI منخفضة (الافتراضية 96). | اضبط `imageOptions.Dpi = 300;` قبل التحويل. | +| **الأشكال تختفي** | `ExportShapes` تركت `false`. | تأكد من أن `ExportShapes = true` عندما تحتاج إلى رسومات قابلة للتحرير. | +| **عدم توافق حجم الشريحة** | الصورة أكبر من أبعاد الشريحة. | قم بتغيير حجم الصورة (انظر مقتطف الشيفرة) أو غيّر حجم الشريحة عبر `presentation.SlideSize`. | +| **استثناء الترخيص** | استخدام نسخة تجريبية دون تفعيل صحيح. | استدعِ `License license = new License(); license.SetLicense("Aspose.Total.lic");` مبكرًا في `Main`. | + +--- + +## مثال كامل يعمل (جاهز للنسخ‑اللصق) + +فيما يلي البرنامج بالكامل، جاهز للإدراج في مشروع Console جديد. استبدل `YOUR_DIRECTORY` بالمجلد الذي يحتوي على ملف Excel الخاص بك. + +```csharp +using System; +using Aspose.Cells; +using Aspose.Slides; +using System.Drawing; + +namespace ExcelToPowerPointDemo +{ + class Program + { + static void Main(string[] args) + { + // ----------------------------------------------------------------- + // 1️⃣ Load the Excel workbook + // ----------------------------------------------------------------- + string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; + Workbook workbook = new Workbook(excelPath); + Worksheet worksheet = workbook.Worksheets[0]; + + // ----------------------------------------------------------------- + // 2️⃣ Set up export options – keep shapes editable + // ----------------------------------------------------------------- + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + OnePagePerSheet = true, + ExportShapes = true, + ExportEditableTextBoxes = true, + Dpi = 300 // High‑resolution output + }; + + // ----------------------------------------------------------------- + // 3️⃣ Convert worksheet to an image + // ----------------------------------------------------------------- + WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); + Image sheetImage = converter.ConvertToImage(0, imageOptions); + + // ----------------------------------------------------------------- + // 4️⃣ Create PowerPoint and add the image as a slide + // ----------------------------------------------------------------- + Presentation presentation = new Presentation(); + ISlide slide = presentation.Slides[0]; + slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, + 0, 0, + sheetImage.Width, + sheetImage.Height, + sheetImage); + + // ----------------------------------------------------------------- + // 5️⃣ Save the PPTX file + // ----------------------------------------------------------------- + string pptxPath = "YOUR_DIRECTORY/Result.pptx"; + presentation.Save(pptxPath, SaveFormat.Pptx); + + Console.WriteLine("✅ PowerPoint created successfully at: " + pptxPath); + } + } +} +``` + +**المخرجات المتوقعة:** +تشغيل البرنامج يطبع `✅ PowerPoint created successfully at: YOUR_DIRECTORY/Result.pptx`. فتح ملف PPTX يظهر شريحة واحدة تعكس ورقة Excel الأصلية، مع مربعات نص قابلة للتحرير. + +--- + +## ملخص وخطوات مستقبلية + +أنت الآن تعرف كيف **إنشاء PowerPoint من Excel** باستخدام واجهات برمجة التطبيقات القوية من Aspose، وكيف **تصدير ورقة العمل كصورة**، وكيف **حفظ العرض التقديمي كـ PPTX** مع الحفاظ على إمكانية التحرير. نفس النمط يعمل مع دفاتر عمل متعددة الأوراق—فقط قم بالتكرار عبر `workbook.Worksheets` وأضف شريحة جديدة لكل واحدة. + +- **تحويل دفعة:** التكرار عبر مجلد من ملفات Excel وإنشاء مجموعة شرائح لكل ملف. +- **تخطيطات ديناميكية:** استخدم `slide.LayoutSlide` لتطبيق قوالب PowerPoint المصممة مسبقًا. +- **تصدير المخطط فقط:** دمج مقتطف “Export Excel chart as picture” مع نواقل الشرائح للحصول على مجموعة شرائح أصغر. +- **تنسيق متقدم:** تطبيق خلفيات شرائح مخصصة، انتقالات، أو رسوم متحركة عبر Aspose.Slides. + +لا تتردد في التجربة—غيّر DPI، استبدل `ShapeType.Ellipse` بإطار صورة دائري، أو حتى قم بتضمين صور متعددة في شريحة واحدة. السماء هي الحد عندما تكون لديك سيطرة برمجية على + +{{< /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/document-properties/_index.md b/cells/arabic/net/document-properties/_index.md index 5c88ce8592..c69e737c05 100644 --- a/cells/arabic/net/document-properties/_index.md +++ b/cells/arabic/net/document-properties/_index.md @@ -35,6 +35,8 @@ تعرّف على كيفية الوصول إلى خصائص المستندات في Excel باستخدام Aspose.Cells لـ .NET من خلال دليلنا المفصل. أدر جداول بياناتك بكفاءة. ### [إضافة خصائص المستند في .NET](./adding-document-properties/) تعرف على كيفية إضافة خصائص المستند في Excel باستخدام Aspose.Cells for .NET باستخدام هذا الدليل التفصيلي خطوة بخطوة. +### [كيفية حفظ ملف XLSB بخصائص مخصصة في C# – دليل خطوة بخطوة](./how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/) +تعلم كيفية حفظ ملفات XLSB مع خصائص مخصصة باستخدام Aspose.Cells لـ .NET خطوة بخطوة. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/arabic/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md b/cells/arabic/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md new file mode 100644 index 0000000000..01eb9c7537 --- /dev/null +++ b/cells/arabic/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md @@ -0,0 +1,231 @@ +--- +category: general +date: 2026-03-30 +description: تعلم كيفية حفظ ملف XLSB في C# مع إضافة خاصية مخصصة، قراءتها مرة أخرى، + وإتقان حفظ المصنف كملف XLSB باستخدام Aspose.Cells. يتضمن الكود الكامل. +draft: false +keywords: +- how to save xlsb +- add custom property +- how to add property +- how to read property +- save workbook as xlsb +language: ar +og_description: كيفية حفظ ملف XLSB في C#؟ يوضح لك هذا البرنامج التعليمي كيفية إضافة + خاصية مخصصة، قراءتها مرة أخرى، وحفظ المصنف كملف XLSB باستخدام Aspose.Cells. +og_title: كيفية حفظ ملف XLSB مع الخصائص المخصصة في C# – دليل كامل +tags: +- Aspose.Cells +- C# +- Excel Automation +title: كيفية حفظ ملف XLSB مع الخصائص المخصصة في C# – دليل خطوة بخطوة +url: /ar/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# كيفية حفظ XLSB مع خصائص مخصصة في C# – دليل خطوة بخطوة + +هل تساءلت يومًا **كيف تحفظ XLSB** مع الحفاظ على بيانات تعريفية إضافية مرفقة بورقة العمل؟ لست وحدك. في العديد من سيناريوهات المؤسسات تحتاج إلى ملف Excel ثنائي يحتوي على أزواج المفتاح/القيمة الخاصة بك — مثل معرف العقد، علامة معالجة، أو وسم نسخة. + +الخبر السار هو أن Aspose.Cells يجعل ذلك سهلًا للغاية. في هذا الدليل ستتعرف بالضبط على كيفية إضافة خاصية مخصصة، حفظها، ثم قراءتها مرة أخرى، كل ذلك أثناء **حفظ المصنف كملف XLSB**. لا مراجع غامضة، فقط مثال كامل قابل للتنفيذ يمكنك إدراجه في مشروعك اليوم. + +## ما ستحصل عليه + +- ملف `.xlsb` جديد تم إنشاؤه من الصفر. +- القدرة على **إضافة خاصية مخصصة** إلى ورقة العمل. +- كود يوضح **كيفية قراءة الخاصية** بعد إعادة تحميل الملف. +- نصائح حول المشكلات التي قد تواجهها عند **حفظ المصنف كملف XLSB**. + +> **المتطلبات المسبقة:** .NET 6+ (أو .NET Framework 4.6+)، Visual Studio (أو أي بيئة تطوير C#)، ومكتبة Aspose.Cells for .NET مثبتة عبر NuGet. لا شيء آخر. + +--- + +## الخطوة 1: إعداد المشروع وإنشاء مصنف جديد + +أولاً، لنحصل على كائن مصنف نظيف. + +```csharp +using Aspose.Cells; +using System; + +// Initialize a new workbook; this will be an in‑memory Excel file. +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0) – it’s created automatically. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +*لماذا هذا مهم:* `Workbook` هو نقطة الدخول لكل عملية في Aspose.Cells. ببدء كائن جديد تمامًا تتجنب أي حالة مخفية قد تفسد البيانات التعريفية المخصصة لاحقًا. + +--- + +## الخطوة 2: **إضافة خاصية مخصصة** إلى ورقة العمل + +الآن سنرفق زوج مفتاح/قيمة يخص هذه الورقة فقط. + +```csharp +// Add a user‑defined property called "MyProperty" with the value "CustomValue". +worksheet.CustomProperties.Add("MyProperty", "CustomValue"); +``` + +> **نصيحة احترافية:** أسماء الخصائص حساسة لحالة الأحرف. إذا حاولت لاحقًا جلب `"myproperty"` ستحصل على `KeyNotFoundException`. التزم بات convention للتسمية — camelCase أو PascalCase — من البداية. + +--- + +## الخطوة 3: **حفظ المصنف كملف XLSB** – حفظ الخاصية + +السحر يحدث عندما تكتب المصنف إلى صيغة XLSB الثنائية. + +```csharp +// Define the output path. Adjust the folder to something writable on your machine. +string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + +// Save the workbook; the custom property travels with the file. +workbook.Save(outputPath, SaveFormat.Xlsb); +``` + +*ما الذي تفعله فعليًا:* تعداد `SaveFormat.Xlsb` يخبر Aspose.Cells بإنتاج ملف Excel ثنائي (أسرع في الفتح، أصغر على القرص). جميع الخصائص المخصصة على مستوى ورقة العمل تُسلسل تلقائيًا — لا خطوات إضافية مطلوبة. + +--- + +## الخطوة 4: إعادة تحميل الملف و **كيفية قراءة الخاصية** + +لنثبت أن الخاصية نجت من جولة الإرسال والاستلام. + +```csharp +// Load the just‑saved XLSB file back into memory. +Workbook reloadedWorkbook = new Workbook(outputPath); + +// Access the same worksheet (index 0) and fetch the property value. +string customValue = reloadedWorkbook.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); +``` + +إذا سارت الأمور بسلاسة، فإن `customValue` سيحتوي الآن على `"CustomValue"`. + +--- + +## الخطوة 5: التحقق من النتيجة – إخراج سريع إلى وحدة التحكم + +فحص بسيط يساعد أثناء التطوير. + +```csharp +Console.WriteLine($"Custom property value: {customValue}"); +``` + +تشغيل البرنامج يجب أن يطبع: + +``` +Custom property value: CustomValue +``` + +رؤية هذا السطر يعني أنك أتقنت **كيفية حفظ XLSB**، **إضافة خاصية مخصصة**، و **كيفية قراءة الخاصية** — كل ذلك في تدفق واحد منظم. + +--- + +## مثال كامل يعمل (جاهز للنسخ واللصق) + +فيما يلي البرنامج بالكامل. الصقه في تطبيق Console جديد، اضغط **F5**، وشاهد وحدة التحكم تؤكد قيمة الخاصية. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // 1️⃣ Create a new workbook and get its first sheet + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // 2️⃣ Add a custom property (key/value) to the sheet + // ------------------------------------------------- + worksheet.CustomProperties.Add("MyProperty", "CustomValue"); + + // ------------------------------------------------- + // 3️⃣ Save the workbook as XLSB – the property is kept + // ------------------------------------------------- + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(outputPath, SaveFormat.Xlsb); + + // ------------------------------------------------- + // 4️⃣ Reload the saved file to demonstrate persistence + // ------------------------------------------------- + Workbook reloaded = new Workbook(outputPath); + + // ------------------------------------------------- + // 5️⃣ Retrieve the custom property's value + // ------------------------------------------------- + string customValue = reloaded.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); + + // ------------------------------------------------- + // 6️⃣ Display the retrieved value (optional) + // ------------------------------------------------- + Console.WriteLine($"Custom property value: {customValue}"); + } +} +``` + +> **تذكر:** غيّر `outputPath` إلى مجلد لديك صلاحية كتابة فيه. إذا كنت على Linux/macOS، استخدم مسارًا مثل `"/tmp/WithCustomProp.xlsb"`. + +--- + +## أسئلة شائعة وحالات خاصة + +### ماذا لو كانت الخاصية موجودة مسبقًا؟ +استدعاء `Add` بمفتاح موجود يرمي `ArgumentException`. استخدم `ContainsKey` أو احطِ الاستدعاء بـ `try/catch` إذا لم تكن متأكدًا. + +```csharp +if (!worksheet.CustomProperties.ContainsKey("MyProperty")) +{ + worksheet.CustomProperties.Add("MyProperty", "AnotherValue"); +} +``` + +### هل يمكنني تخزين قيم غير نصية؟ +بالطبع. خاصية `Value` تقبل أي `object`. للأرقام، التواريخ، أو القيم المنطقية مرّر النوع المناسب — Aspose.Cells سيتولى التحويل عند القراءة. + +### هل تبقى الخاصية عند التحويل إلى XLSX؟ +نعم. الخصائص المخصصة جزء من تمثيل XML لورقة العمل، لذا تستمر عبر صيغ XLSX، XLS، وXLSB. + +### كيفية **إضافة خاصية** إلى عدة أوراق؟ +قم بالتكرار عبر مجموعة `Worksheets` وطبق نفس استدعاء `CustomProperties.Add` على كل ورقة تحتاجها. + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + ws.CustomProperties.Add("ExportedBy", "MyApp"); +} +``` + +### نصيحة أداء عند **حفظ المصنف كملف XLSB** على نطاق واسع +إذا كنت تولد مئات الملفات، أعد استخدام نفس كائن `Workbook` واستدعِ `Clear` بعد كل حفظ لتفريغ الذاكرة. كذلك، اضبط `Workbook.Settings.CalculateFormulaOnOpen = false` إذا لم تكن بحاجة إلى حساب الصيغ عند الفتح. + +--- + +## الخلاصة + +أنت الآن تعرف **كيفية حفظ XLSB** في C# مع تضمين خاصية مخصصة واسترجاعها لاحقًا باستخدام Aspose.Cells. الحل الكامل — إنشاء المصنف، إضافة الخاصية، حفظه بـ **save workbook as XLSB**، إعادة تحميله، وقراءة القيمة — لا يتجاوز 50 سطرًا من الكود. + +من هنا يمكنك استكشاف: + +- إضافة خصائص مخصصة متعددة لكل ورقة. +- تخزين كائنات معقدة عبر سلاسل JSON. +- تشفير ملف XLSB لمزيد من الأمان. + +جرّب هذه الأفكار، وستصبح الشخص المرجعي لأتمتة Excel في فريقك. لديك أسئلة أو سيناريو صعب؟ اترك تعليقًا أدناه، وبرمجة سعيدة! + +![كيفية حفظ XLSB مع خاصية مخصصة](/images/how-to-save-xlsb.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/excel-copy-worksheet/_index.md b/cells/arabic/net/excel-copy-worksheet/_index.md index c1e0ede990..eeff435e8d 100644 --- a/cells/arabic/net/excel-copy-worksheet/_index.md +++ b/cells/arabic/net/excel-copy-worksheet/_index.md @@ -42,6 +42,7 @@ | [نسخ ورقة عمل 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. | +| [كيفية نسخ ورقة عمل في C# باستخدام Aspose.Cells – دليل كامل](./how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/) | دليل شامل يوضح خطوة بخطوة كيفية نسخ ورقة عمل في C# باستخدام مكتبة Aspose.Cells. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/arabic/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md b/cells/arabic/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md new file mode 100644 index 0000000000..dd2c71ab42 --- /dev/null +++ b/cells/arabic/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md @@ -0,0 +1,268 @@ +--- +category: general +date: 2026-03-30 +description: كيفية نسخ ورقة العمل في C# باستخدام Aspose.Cells – دليل خطوة بخطوة يغطي + نسخ نطاق الخلايا، نسخ الأعمدة بين الأوراق، نسخ جدول محوري لورقة العمل وإضافة كود + ورقة عمل جديدة. +draft: false +keywords: +- how to copy worksheet +- copy cell range +- copy columns between sheets +- copy worksheet pivot table +- add new worksheet code +language: ar +og_description: تعلم كيفية نسخ ورقة العمل في C# باستخدام Aspose.Cells. يوضح هذا الدليل + نسخ نطاق الخلايا، الحفاظ على جداول Pivot، نسخ الأعمدة بين الأوراق، وإضافة كود ورقة + عمل جديدة. +og_title: كيفية نسخ ورقة العمل في C# – دليل Aspose.Cells الكامل +tags: +- Aspose.Cells +- C# +- Excel Automation +title: كيفية نسخ ورقة العمل في C# باستخدام Aspose.Cells – دليل كامل +url: /ar/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# كيفية نسخ ورقة العمل في C# باستخدام Aspose.Cells – دليل كامل + +هل تساءلت يومًا **how to copy worksheet** في C# دون فقدان أي جدول محوري أو صيغة؟ لست وحدك—العديد من المطورين يواجهون صعوبة عندما يحتاجون إلى تكرار ورقة مع الحفاظ على جميع العناصر intact. في هذا الدرس سنستعرض حلًا عمليًا من البداية إلى النهاية لا ينسخ البيانات فحسب بل يحافظ أيضًا على **copy worksheet pivot table**، ويتعامل مع **copy cell range**، ويظهر لك **add new worksheet code** التي ستحتاجها. + +سنغطي كل شيء من تحميل دفتر العمل المصدر إلى حفظ ملف الوجهة، بحيث يمكنك **copy columns between sheets**، والحفاظ على الكائنات، والحفاظ على نظافة الكود الخاص بك. لا مراجع غامضة، فقط مثال كامل قابل للتنفيذ يمكنك إدراجه في مشروعك اليوم. + +## ما يغطيه هذا الدرس + +- تحميل ملف Excel موجود باستخدام Aspose.Cells +- استخدام **add new worksheet code** لإنشاء ورقة هدف +- تعريف **copy cell range** التي تشمل جدولًا محوريًا +- إعداد **CopyOptions** للحفاظ على المخططات والصيغ والجداول المحورية دون تغيير +- تنفيذ **copy columns between sheets** بدقة على مستوى الصفوف +- حفظ النتيجة والتحقق من أن ورقة العمل تم نسخها بشكل صحيح + +بنهاية هذا الدليل ستتمكن من الإجابة على سؤال “how to copy worksheet” بثقة، سواء كنت تقوم بأتمتة التقارير أو بناء واجهة مستخدم تعتمد على جداول البيانات. + +## كيفية نسخ ورقة العمل – نظرة عامة + +قبل أن نغوص في الكود، دعنا نحدد التدفق عالي المستوى. فكر فيه كالوصفة: + +1. **Load** دفتر العمل المصدر (`Source.xlsx`). +2. **Add** ورقة عمل جديدة لتحتوي النسخة (`add new worksheet code`). +3. **Define** المنطقة التي تريد تكرارها (`copy cell range`). +4. **Configure** خيارات النسخ بحيث يبقى الجدول المحوري (`copy worksheet pivot table`). +5. **Copy** الصفوف والأعمدة (`copy columns between sheets`). +6. **Save** دفتر العمل الجديد (`Destination.xlsx`). + +هذا كل شيء—ست خطوات، لا سحر. كل خطوة مشروحة أدناه مع مقتطفات الكود والمنطق وراءها. + +## الخطوة 1 – تحميل دفتر العمل المصدر + +أولًا وقبل كل شيء: تحتاج إلى كائن `Workbook` يشير إلى الملف الذي تريد نسخه. هذه الخطوة أساسية لأن Aspose.Cells يعمل مباشرة مع نظام الملفات، وليس مع واجهة Office. + +```csharp +using Aspose.Cells; + +// Path to the original file +string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; +string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + +// Load the workbook – this is the starting point for how to copy worksheet +Workbook workbook = new Workbook(sourcePath); +``` + +*لماذا هذا مهم:* تحميل الملف ينشئ تمثيلًا في الذاكرة لكل ورقة، خلية، وكائن. بدون ذلك، لا شيء لنسخه، وأي محاولة لـ `add new worksheet code` لاحقًا ستفشل لأن بيانات المصدر غير موجودة. + +## الخطوة 2 – إضافة ورقة عمل جديدة (add new worksheet code) + +الآن نحتاج إلى مكان للصق البيانات المنسوخة. هنا يتألق **add new worksheet code**. يمكنك تسمية الورقة بأي اسم تريده؛ هنا نسميها `"Copy"`. + +```csharp +// Grab the first worksheet (the one we want to copy) +Worksheet sourceSheet = workbook.Worksheets[0]; + +// Add a fresh worksheet to receive the copy +Worksheet copySheet = workbook.Worksheets.Add("Copy"); +``` + +*نصيحة محترف:* إذا كنت تخطط لنسخ عدة أوراق، استدعِ `Worksheets.Add` داخل حلقة وأعط كل ورقة اسمًا فريدًا. بهذه الطريقة تتجنب تصادم الأسماء وتحافظ على تنظيم دفتر العمل. + +## الخطوة 3 – تعريف نطاق الخلايا للنسخ + +**copy cell range** يخبر Aspose.Cells بالضبط أي صفوف وأعمدة يجب تكرارها. في العديد من السيناريوهات الواقعية يتضمن النطاق جدولًا محوريًا، لذا يجب أن نكون دقيقين. + +```csharp +// Define the area that contains the pivot table (A1:G20) +CellArea sourceRange = new CellArea +{ + StartRow = 0, // Row 1 (zero‑based) + StartColumn = 0, // Column A + EndRow = 19, // Row 20 + EndColumn = 6 // Column G +}; + +// Destination range – we start at the same top‑left corner +CellArea destinationRange = new CellArea +{ + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 +}; +``` + +*لماذا نحتاج هذا:* بتحديد النطاق صراحةً، تتجنب نسخ الورقة بأكملها (وهو ما قد يكون مهدراً) وتضمن أن الجدول المحوري يبقى داخل المنطقة المنسوخة. هذا هو جوهر **how to copy worksheet** عندما تحتاج فقط جزءًا من الورقة. + +## الخطوة 4 – ضبط خيارات النسخ (preserve copy worksheet pivot table) + +Aspose.Cells توفر كائن `CopyOptions` الذي يتحكم فيما يتم لصقه. للحفاظ على الجدول المحوري، المخططات، والصيغ، نقوم بتعيين `PasteType.All` وتفعيل `PasteSpecial`. + +```csharp +CopyOptions copyOptions = new CopyOptions +{ + PasteType = PasteType.All, // Copy everything: values, formats, objects + PasteSpecial = true // Enable special paste to retain pivot tables +}; +``` + +*شرح:* `PasteType.All` هو الخيار الأكثر شمولاً، بينما `PasteSpecial` يطلب من المحرك معالجة الكائنات المعقدة—مثل الجداول المحورية—بشكل صحيح. تخطي هذه الخطوة هو خطأ شائع؛ سيفقد الورقة المنسوخة ميزاتها التفاعلية. + +## الخطوة 5 – نسخ الصفوف والأعمدة (copy columns between sheets) + +الآن يأتي الجزء الصعب: نقل البيانات فعليًا. سنستخدم `CopyRows` و `CopyColumns` للتعامل مع **copy columns between sheets**. تنفيذ كلاهما يضمن الحفاظ على الخلايا المدمجة وعرض الأعمدة. + +```csharp +// Copy rows from the source to the destination sheet +sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + +// Copy columns from the source to the destination sheet +sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); +``` + +*ما يحدث:* `CopyRows` ينقل البيانات صفًا بصف، بينما `CopyColumns` يفعل ذلك عمودًا بعمود. تشغيل كلاهما يضمن تكرار الكتلة المستطيلة بالكامل، وهو أمر أساسي عندما تحتاج إلى **copy columns between sheets** التي لها أعمدة بعرض مختلف أو أعمدة مخفية. + +## الخطوة 6 – حفظ دفتر العمل + +أخيرًا، اكتب التغييرات إلى القرص. هذه الخطوة تكمل عملية **how to copy worksheet**. + +```csharp +// Save the workbook with the newly copied sheet +workbook.Save(destinationPath); +``` + +*نصيحة للتحقق:* افتح `Destination.xlsx` وتأكد أن ورقة `"Copy"` تبدو مطابقة للأصل، الجداول المحورية تعمل، وعرض الأعمدة متطابق. إذا لاحظت أي اختلاف، راجع إعدادات `CopyOptions`. + +## الحالات الخاصة والاختلافات الشائعة + +### نسخ عدة أوراق عمل + +إذا كنت بحاجة لتكرار عدة أوراق، ضع المنطق السابق داخل حلقة `foreach`: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + Worksheet newWs = workbook.Worksheets.Add(ws.Name + "_Copy"); + // Re‑use sourceRange/destinationRange or calculate per sheet + // Then call CopyRows/CopyColumns as shown earlier +} +``` + +### الحفاظ على الصيغ عبر دفاتر عمل مختلفة + +عندما تكون دفاتر العمل المصدر والوجهة لديها نطاقات مسماة مختلفة، اضبط `copyOptions` إلى `PasteType.Formulas` بالإضافة إلى `All`: + +```csharp +copyOptions.PasteType = PasteType.All | PasteType.Formulas; +``` + +### النطاقات الكبيرة والأداء + +للمجموعات الضخمة من البيانات (مئات الآلاف من الصفوف)، فكر في استخدام `CopyRows` فقط وتخطي `CopyColumns` إذا لم يكن عرض الأعمدة مهمًا. هذا يمكن أن يوفر بضع ثوانٍ. + +## مثال كامل يعمل + +فيما يلي البرنامج الكامل الجاهز للتنفيذ الذي يجسد كل ما ناقشنا. الصقه في تطبيق كونسول، عدل مسارات الملفات، واضغط **F5**. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // ---------- Step 1: Load the source workbook ---------- + string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; + string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + Workbook workbook = new Workbook(sourcePath); + + // ---------- Step 2: Add a new worksheet (add new worksheet code) ---------- + Worksheet sourceSheet = workbook.Worksheets[0]; + Worksheet copySheet = workbook.Worksheets.Add("Copy"); + + // ---------- Step 3: Define the copy cell range ---------- + CellArea sourceRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + CellArea destinationRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + + // ---------- Step 4: Set copy options (preserve copy worksheet pivot table) ---------- + CopyOptions copyOptions = new CopyOptions + { + PasteType = PasteType.All, + PasteSpecial = true + }; + + // ---------- Step 5: Copy rows and columns (copy columns between sheets) ---------- + sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + + sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); + + // ---------- Step 6: Save the workbook ---------- + workbook.Save(destinationPath); + } +} +``` + +**النتيجة المتوقعة:** فتح `Destination.xlsx` يظهر ورقة باسم **Copy** تعكس الورقة الأولى من `Source.xlsx`—بما في ذلك أي جداول محورية، تنسيقات، وعرض الأعمدة. الملف الأصلي يبقى دون تغيير. + +## الأسئلة المتكررة + +**س: هل يعمل هذا مع ملفات .xlsx التي تم إنشاؤها بواسطة Excel 2019؟** +ج: بالتأكيد. Aspose.Cells يدعم جميع صيغ Excel الحديثة، لذا يعمل نفس الكود مع ملفات `.xlsx`، `.xlsm`، وحتى ملفات `.xls` القديمة + +{{< /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-custom-number-date-formatting/_index.md b/cells/arabic/net/excel-custom-number-date-formatting/_index.md index 493c54d8e0..a4eed37a7f 100644 --- a/cells/arabic/net/excel-custom-number-date-formatting/_index.md +++ b/cells/arabic/net/excel-custom-number-date-formatting/_index.md @@ -36,6 +36,10 @@ تعرف على كيفية التحقق من قيم خلايا Excel مقابل تنسيقات الأرقام المخصصة باستخدام Aspose.Cells لـ .NET من خلال هذا البرنامج التعليمي خطوة بخطوة. ### [تحديد حقول الصيغة عند استيراد البيانات إلى ورقة Excel](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) تعرف على كيفية استيراد البيانات إلى جداول Excel باستخدام حقول الصيغة المحددة باستخدام Aspose.Cells لـ .NET في هذا البرنامج التعليمي المفصل. +### [تنسيق الرقم مع الفاصل في C# – دليل Aspose.Cells الكامل](./format-number-with-separator-in-c-complete-aspose-cells-guid/) +تعرف على كيفية تنسيق الأرقام باستخدام الفواصل في C# باستخدام Aspose.Cells من خلال دليل شامل خطوة بخطوة. +### [تنسيق التاريخ بصيغة ISO من Excel – دليل C# الكامل](./format-date-iso-from-excel-complete-c-guide/) +تعرف على كيفية تنسيق التاريخ إلى صيغة ISO في Excel باستخدام Aspose.Cells لـ .NET من خلال دليل شامل خطوة بخطوة. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/arabic/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md b/cells/arabic/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..f8209cf6f1 --- /dev/null +++ b/cells/arabic/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md @@ -0,0 +1,202 @@ +--- +category: general +date: 2026-03-30 +description: تعلم كيفية تنسيق التاريخ بصيغة ISO أثناء قراءة قيم التاريخ والوقت في + Excel واستخراج بيانات التاريخ والوقت من Excel باستخدام Aspose.Cells في C#. +draft: false +keywords: +- format date iso +- read excel datetime +- extract datetime excel +- Aspose.Cells date parsing +- Japanese era dates +language: ar +og_description: تنسيق التاريخ بصيغة ISO من بيانات Excel باستخدام Aspose.Cells. يوضح + هذا الدليل كيفية قراءة تاريخ ووقت Excel، استخراج قيم تاريخ ووقت Excel، وإخراج تواريخ + ISO. +og_title: تنسيق تاريخ ISO من Excel – دليل C# خطوة بخطوة +tags: +- C# +- Excel +- DateTime +- Aspose.Cells +title: تنسيق التاريخ بصيغة ISO من Excel – دليل C# الكامل +url: /ar/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# تنسيق التاريخ بصيغة ISO من Excel – دليل C# الكامل + +هل احتجت يومًا إلى **format date iso** عند استخراج التواريخ من ورقة Excel؟ ربما تتعامل مع تواريخ العصور اليابانية، أو تريد فقط سلسلة `yyyy‑MM‑dd` نظيفة لحمولة API. في هذا الدرس ستتعرف بالضبط على كيفية **read Excel datetime** الخلايا، **extract datetime Excel** القيم، وتحويلها إلى صيغة ISO‑8601 — دون أي تخمين. + +سنستعرض مثالًا واقعيًا يستخدم Aspose.Cells، يوضح لماذا كل سطر مهم، ويظهر لك النتيجة النهائية التي يمكنك نسخها ولصقها في مشروعك. في النهاية، ستتمكن من التعامل مع سلاسل العصور الغريبة مثل “令和3年5月1日” وإنتاج تاريخ ISO قياسي، جاهز لقواعد البيانات، JSON، أو أي مكان تحتاجه. + +## المتطلبات المسبقة + +- .NET 6.0 أو أحدث (الكود يعمل مع .NET Framework أيضًا) +- Aspose.Cells for .NET (نسخة تجريبية مجانية أو مرخصة) +- إلمام أساسي بـ C# ومفاهيم Excel +- Visual Studio أو أي محرر C# تفضله + +لا توجد حزم NuGet إضافية مطلوبة بخلاف Aspose.Cells، لذا الإعداد بسيط جدًا. + +--- + +## الخطوة 1: إنشاء Workbook وتحديد الورقة الأولى + +أول شيء تقوم به هو إنشاء كائن `Workbook` جديد. هذا يمنحك تمثيلًا في الذاكرة لملف Excel يمكنك بعد ذلك التلاعب به أو القراءة منه. + +```csharp +using Aspose.Cells; +using System.Globalization; + +// Step 1: Initialize a new workbook and grab the first worksheet +Workbook workbook = new Workbook(); // creates an empty .xlsx +Worksheet worksheet = workbook.Worksheets[0]; // the default sheet is "Sheet1" +``` + +*لماذا هذا مهم:* +إنشاء الـ workbook برمجيًا يتيح لك تجنب التعامل مع الملفات الفعلية أثناء الاختبار. كما يضمن أن مرجع الورقة دائمًا صالح — لا مفاجآت مرجع فارغ لاحقًا عندما تحاول **read Excel datetime** القيم. + +## الخطوة 2: كتابة سلسلة تاريخ ياباني في خلية + +هدفنا هو توضيح كيفية تحليل تاريخ غير غريغوري. سنضع سلسلة العصر مباشرةً في الخلية **A1**. + +```csharp +// Step 2: Insert a Japanese era date string into cell A1 +worksheet.Cells["A1"].PutValue("令和3年5月1日"); +``` + +*نصيحة احترافية:* إذا كنت تستخرج البيانات من مصنف موجود، ستتخطى استدعاء `PutValue` وتكتفي بالإشارة إلى الخلية التي تحتوي بالفعل على التاريخ. المفتاح هو أن الخلية تحمل **string** تمثل تاريخًا في التقويم الياباني القمري الشمسي. + +## الخطوة 3: تكوين Culture يدعم التقويم الياباني القمري الشمسي + +فئة .NET `CultureInfo` تسمح لك بتحديد كيفية تفسير التواريخ. عن طريق استبدال التقويم الغريغوري الافتراضي بـ `JapaneseLunisolarCalendar`، تزود المحلل بالسياق الذي يحتاجه. + +```csharp +// Step 3: Set up a culture using the Japanese lunisolar calendar +CultureInfo japaneseCulture = new CultureInfo("ja-JP"); +japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); +``` + +*لماذا نفعل ذلك:* +إذا حاولت تحليل “令和3年5月1日” باستخدام الثقافة الافتراضية، سيتسبب .NET في رمي `FormatException`. استبدال التقويم القمري الشمسي يخبر وقت التشغيل بالضبط كيف يربط “令和3年” (السنة الثالثة من عصر Reiwa) بالسنة الغريغورية 2021. + +## الخطوة 4: تحليل قيمة الخلية كـ `DateTime` باستخدام Culture المكوَّن + +الآن يأتي جوهر العملية — تحويل سلسلة العصر إلى كائن `DateTime` صحيح. توفر Aspose.Cells overload مريح لـ `GetDateTime` يقبل `CultureInfo`. + +```csharp +// Step 4: Retrieve the cell value as a DateTime, respecting the Japanese culture +DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); +``` + +*ما يحدث في الخلفية:* +`GetDateTime` يقرأ السلسلة الخام، يطبق قواعد التقويم الخاصة بالثقافة المقدمة، ويعيد `DateTime` يمثل نفس اللحظة في التقويم الغريغوري. هذه هي اللحظة التي تقوم فيها بـ **extract datetime Excel** البيانات بصيغة يمكنك العمل بها في .NET. + +## الخطوة 5: إخراج التاريخ المُحلل بصيغة ISO 8601 + +أخيرًا، نقوم بتنسيق الـ `DateTime` كسلسلة ISO — `yyyy‑MM‑dd` — والتي تُقبل عالميًا من قبل APIs، قواعد البيانات، وإطارات العمل الأمامية. + +```csharp +// Step 5: Print the date in ISO format (e.g., 2021-05-01) +Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // Output: 2021-05-01 +``` + +*لماذا ISO؟* +ISO 8601 يزيل الغموض. “05/01/2021” قد تكون 1 مايو أو 5 يناير حسب الإعداد المحلي. `2021-05-01` واضح تمامًا، وهذا هو السبب في أننا نستخدم **format date iso** في معظم سيناريوهات التكامل. + +## مثال كامل يعمل + +فيما يلي البرنامج الكامل الجاهز للتنفيذ. انسخه في مشروع تطبيق Console، أضف مرجع Aspose.Cells، واضغط **F5**. + +```csharp +using Aspose.Cells; +using System; +using System.Globalization; + +class Program +{ + static void Main() + { + // 1️⃣ Create workbook and select the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("令和3年5月1日"); + + // 3️⃣ Set up Japanese lunisolar culture + CultureInfo japaneseCulture = new CultureInfo("ja-JP"); + japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); + + // 4️⃣ Parse the cell value as DateTime using the culture + DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); + + // 5️⃣ Output the date in ISO format + Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // 2021-05-01 + } +} +``` + +**الناتج المتوقع** + +``` +2021-05-01 +``` + +شغّله مرة واحدة، وسترى التاريخ بصيغة ISO يُطبع في وحدة التحكم. هذه هي السلسلة الكاملة من **read Excel datetime** إلى **format date iso**. + +## التعامل مع الحالات الشائعة + +### 1. خلايا تحتوي على أرقام تواريخ Excel حقيقية + +أحيانًا يخزن Excel التواريخ كأرقام تسلسلية (مثال: `44204`). في هذه الحالة، لا تحتاج إلى Culture؛ فقط استدعِ `GetDateTime()` بدون معاملات: + +```csharp +DateTime serialDate = worksheet.Cells["B2"].GetDateTime(); // B2 holds a numeric date +Console.WriteLine(serialDate.ToString("yyyy-MM-dd")); +``` + +### 2. خلايا فارغة أو غير صالحة + +إذا كانت الخلية فارغة أو تحتوي على سلسلة لا يمكن تحليلها، سيتسبب `GetDateTime` في رمي استثناء. غلف الاستدعاء بـ `try/catch` أو تحقق من `IsDateTime` أولًا: + +```csharp +if (worksheet.Cells["C3"].Type == CellValueType.IsDateTime) +{ + DateTime safeDate = worksheet.Cells["C3"].GetDateTime(); + Console.WriteLine(safeDate.ToString("yyyy-MM-dd")); +} +else +{ + Console.WriteLine("Cell C3 does not contain a valid date."); +} +``` + +### 3. صيغ عصور مختلفة + +العصور اليابانية الأخرى (Heisei، Showa) تتبع نفس النمط. `JapaneseLunisolarCalendar` سيتعامل معها تلقائيًا، لذا لا تحتاج إلى منطق إضافي — فقط زوّد السلسلة. + +## نصائح احترافية وملاحظات + +- **Performance:** عند معالجة جداول بيانات كبيرة، أعد استخدام نسخة واحدة من `CultureInfo` بدلاً من إنشاء نسخة جديدة داخل حلقة. +- **Thread Safety:** كائنات `CultureInfo` تصبح للقراءة فقط بعد ضبط التقويم، لذا هي آمنة للمشاركة بين الخيوط. +- **Aspose.Cells Licensing:** إذا كنت تستخدم النسخة التجريبية المجانية، تذكر أن بعض الميزات قد تكون محدودة بعد انتهاء فترة التجربة. تحليل التاريخ المعروض هنا يعمل جيدًا في كل من الوضع التجريبي والمرخص. +- **Time Zones:** الـ `DateTime` الذي تحصل عليه هو **unspecified** (بدون منطقة زمنية). إذا كنت تحتاج إلى UTC، استدعِ `DateTime.SpecifyKind(parsedDate, DateTimeKind.Utc)` أو حوِّل باستخدام `TimeZoneInfo`. + +## الخلاصة + +غطّينا كل ما تحتاجه لتطبيق **format date iso** من مصنف Excel باستخدام C#. بدءًا من سلسلة عصر ياباني خام، قمنا بـ **read Excel datetime**، إعداد Culture المناسب، **extract datetime Excel**، وأخيرًا إخراج سلسلة ISO‑8601 نظيفة. النهج يعمل مع أي تمثيل تاريخ قد يقدمه Excel، سواء كان رقمًا تسلسليًا، سلسلة محلية، أو صيغة عصر تقليدية. + +ما الخطوة التالية؟ جرّب التكرار على عمود كامل من التواريخ، اكتب نتائج ISO في ورقة جديدة، أو أدخلها مباشرةً في حمولة JSON لخدمة ويب. إذا كنت مهتمًا بأنظمة تقويم أخرى (Hebrew، Islamic)، فإن Aspose.Cells و `CultureInfo` في .NET تجعل هذه التجارب سهلة بنفس القدر. + +هل لديك أسئلة أو صيغة تاريخ معقدة لا تستطيع حلها؟ اترك تعليقًا أدناه، وتمنياتنا لك ببرمجة سعيدة! + +{{< /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-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md b/cells/arabic/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md new file mode 100644 index 0000000000..3e5eb7a90a --- /dev/null +++ b/cells/arabic/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md @@ -0,0 +1,251 @@ +--- +category: general +date: 2026-03-30 +description: تعلم كيفية تنسيق الأرقام باستخدام الفاصل باستخدام Aspose.Cells في C#. + يتضمن تعيين تنسيق رقم مخصص، إضافة فاصل الآلاف، تنسيق الأجزاء العشرية، وكيفية تنسيق + الخلية. +draft: false +keywords: +- format number with separator +- set custom number format +- add thousands separator +- format decimal places +- how to format cell +language: ar +og_description: تنسيق الأرقام باستخدام الفاصل في C#. يوضح هذا الدليل كيفية تعيين تنسيق + رقم مخصص، إضافة فاصل الآلاف، تنسيق الأجزاء العشرية، وكيفية تنسيق الخلية باستخدام + Aspose.Cells. +og_title: تنسيق الرقم باستخدام الفاصل في C# – دليل Aspose.Cells +tags: +- C# +- Aspose.Cells +- Number Formatting +title: تنسيق الرقم باستخدام الفاصل في C# – دليل Aspose.Cells الكامل +url: /ar/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# تنسيق الرقم بفاصل في C# – دليل Aspose.Cells الكامل + +هل احتجت يوماً إلى **تنسيق رقم بفاصل** في جدول بيانات لكن لم تكن متأكدًا من أي استدعاء API تستخدمه؟ لست وحدك—المطورون يواجهون باستمرار فواصل الآلاف، المنازل العشرية، والأنماط المخصصة عند تصدير البيانات. + +خبر سار: Aspose.Cells يجعل الأمر سهلًا للغاية. في هذا الدرس سنستعرض مثالًا واقعيًا ي **يضبط تنسيق رقم مخصص**، **يضيف فاصل الآلاف**، **ينسق المنازل العشرية**، ويظهر **كيفية تنسيق الخلية** كقيمة نصية. في النهاية ستحصل على مقطع جاهز للتنفيذ يمكنك إدراجه في أي مشروع .NET. + +## ما يغطيه هذا الدليل + +* حزمة NuGet الدقيقة التي تحتاجها وكيفية تثبيتها. +* كود خطوة بخطوة ينشئ مصنفًا، يكتب قيمة رقمية، ويطبق تنسيقًا مخصصًا. +* لماذا `ExportTableOptions.ExportAsString` هو الطريقة المفضلة لاسترجاع قيمة منسقة. +* الأخطاء الشائعة—مثل نسيان تمكين `ExportAsString` أو استخدام قناع تنسيق غير صحيح. +* كيفية تعديل قناع التنسيق إذا كنت تحتاج عددًا مختلفًا من المنازل العشرية أو نمط فاصل مختلف. + +لا توجد روابط توثيق خارجية مطلوبة؛ كل ما تحتاجه موجود هنا. لنبدأ. + +--- + +## المتطلبات المسبقة + +| المتطلب | السبب | +|-------------|--------| +| .NET 6.0 أو أحدث | Aspose.Cells 23.10+ يستهدف .NET Standard 2.0+، لذا .NET 6 آمن وحديث. | +| Visual Studio 2022 (أو أي بيئة تطوير C#) | يجعل عملية التصحيح وإدارة الحزم سهلة. | +| حزمة Aspose.Cells for .NET عبر NuGet | توفر الفئات `Workbook`، `Worksheet`، و `ExportTableOptions` التي سنستخدمها. | + +يمكنك تثبيت الحزمة عبر وحدة تحكم مدير الحزم: + +```powershell +Install-Package Aspose.Cells +``` + +هذا كل شيء—بدون ملفات DLL إضافية، بدون COM interop، مجرد مرجع NuGet واحد. + +--- + +## الخطوة 1: تهيئة مصنف جديد (كيفية تنسيق الخلية) + +أول شيء نقوم به هو إنشاء كائن `Workbook` جديد. فكر فيه كملف Excel فارغ جاهز لاستقبال البيانات. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Create a new workbook – this is where we’ll format the cell. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **لماذا هذا مهم:** `Workbook` هو نقطة الدخول لكل عملية في Aspose.Cells. من خلال الحصول على الورقة الأولى (`Worksheets[0]`) نحصل على مساحة عمل نظيفة دون الحاجة لتسمية الورقة. + +--- + +## الخطوة 2: كتابة قيمة رقمية في الخلية المستهدفة + +بعد ذلك، نضع رقمًا خامًا في الخلية **A1**. القيمة نفسها لم تُنسق بعد—إنها مجرد double. + +```csharp + // Step 2: Insert a raw numeric value. + worksheet.Cells["A1"].PutValue(12345.6789); +``` + +> **نصيحة احترافية:** استخدم `PutValue` بدلاً من `PutString` عندما تنوي تطبيق تنسيق رقمي لاحقًا. هذا يحافظ على نوع البيانات الأساسي، مما يسمح بحسابات متوافقة مع Excel. + +--- + +## الخطوة 3: ضبط تنسيق رقم مخصص (إضافة فاصل الآلاف وتنسيق المنازل العشرية) + +الآن يأتي جوهر الدرس: تعريف قناع تنسيق يخبر Aspose.Cells كيف يعرض الرقم. القناع `#,##0.00` يقوم بثلاثة أشياء: + +1. **`#,##0`** – يضيف فاصل الآلاف (الفاصلة الافتراضية). +2. **`.00`** – يفرض منزلتين عشريتين بالضبط. + +إذا كنت تحتاج عددًا مختلفًا من المنازل العشرية، فقط غير عدد الـ `0` بعد النقطة العشرية. + +```csharp + // Step 3: Configure the custom number format. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, // Return the value as a formatted string. + NumberFormat = "#,##0.00" // Add thousands separator and fix to 2 decimals. + }; +``` + +> **لماذا نستخدم `ExportAsString`**: بشكل افتراضي، `ExportString` يُعيد القيمة الخام. ضبط `ExportAsString = true` يجبر الـ API على تطبيق قناع `NumberFormat` قبل التحويل إلى نص. هذا ضروري عندما تحتاج إلى تمثيل نصي دقيق للتقارير، أو حمولات JSON، أو عرض الواجهة. + +--- + +## الخطوة 4: تصدير النص المنسق (كيفية تنسيق الخلية) + +مع إعداد الخيارات، نستدعي `ExportString` على نفس الخلية. الطريقة تحترم القناع الذي عرّفناه وتعيد لنا سلسلة منسقة بشكل جميل. + +```csharp + // Step 4: Export the formatted value. + string formattedCellText = worksheet.Cells["A1"].ExportString(exportOptions); + + // Step 5: Show the result. + Console.WriteLine(formattedCellText); // Expected output: 12,345.68 + } +} +``` + +تشغيل البرنامج يطبع **`12,345.68`** إلى وحدة التحكم—تمامًا التنسيق الذي طلبناه. + +> **حالة حافة:** إذا كان الرقم الأصلي يحتوي على أكثر من منزلتين عشريتين، القناع يقوم بالتقريب. إذا كنت تحتاج إلى قص بدلاً من التقريب، سيتعين عليك معالجة القيمة مسبقًا باستخدام `Math.Truncate` قبل استدعاء `PutValue`. + +--- + +## الخطوة 5: تعديل التنسيق – تنويعات شائعة + +### 5.1 تغيير دقة المنازل العشرية + +هل تريد ثلاث منازل عشرية؟ فقط استبدل القناع: + +```csharp +NumberFormat = "#,##0.000" // → 12,345.679 +``` + +### 5.2 استخدام فاصل آلاف مختلف + +بعض اللغات تفضّل مساحة أو نقطة. يمكنك إدراج الحرف مباشرة: + +```csharp +NumberFormat = "# ##0.00" // Uses a non‑breaking space as separator. +``` + +أو الاعتماد على إعدادات الثقافة الخاصة بالمصنف: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("de-DE"); +NumberFormat = "#.##0,00"; // German style: 12.345,68 +``` + +### 5.3 البادئة أو اللاحقة (عملة، نسبة مئوية) + +أضف علامة الدولار أو النسبة المئوية مباشرة في القناع: + +```csharp +NumberFormat = "$#,##0.00"; // → $12,345.68 +NumberFormat = "0.00%"; // → 1,234,568.00% +``` + +> **ملاحظة:** القناع حساس لحالة الأحرف. `$` و `%` هما رموز حرفية؛ لا يؤثران على القيمة الرقمية الأساسية. + +--- + +## الخطوة 6: مثال كامل يعمل (جاهز للنسخ واللصق) + +فيما يلي البرنامج الكامل الذي يمكنك نسخه إلى تطبيق Console جديد. يتضمن جميع الخطوات، التعليقات، والتحقق من النتيجة النهائية. + +```csharp +using System; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write raw numeric value to A1. + worksheet.Cells["A1"].PutValue(12345.6789); + + // 3️⃣ Define custom format: thousands separator + two decimals. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + NumberFormat = "#,##0.00" + }; + + // 4️⃣ Export the formatted string. + string result = worksheet.Cells["A1"].ExportString(exportOptions); + + // 5️⃣ Display the outcome. + Console.WriteLine(result); // Output: 12,345.68 + + // Optional: keep console open. + Console.WriteLine("Press any key to exit..."); + Console.ReadKey(); + } +} +``` + +شغّل البرنامج (`dotnet run` من الطرفية أو اضغط F5 في Visual Studio) وسترى الرقم المنسق يُطبع بالضبط كما هو موضح. + +--- + +## الأسئلة المتكررة (FAQ) + +**س: هل يعمل هذا مع إصدارات Excel القديمة؟** +ج: نعم. قناع التنسيق يتبع صيغة تنسيق الأرقام الأصلية في Excel، لذا أي نسخة تفهم `#,##0.00` ستعرض السلسلة نفسها. + +**س: ماذا لو أردت تنسيق نطاق من الخلايا؟** +ج: قم بالتكرار على النطاق المطلوب وطبق نفس `ExportTableOptions` على كل خلية، أو اضبط الخاصية `Style.Custom` على النطاق ثم استدعِ `ExportString` على خلية واحدة. + +**س: هل يمكنني تصدير مباشرة إلى CSV مع تطبيق هذه التنسيقات؟** +ج: بالتأكيد. استخدم `Workbook.Save("output.csv", SaveFormat.CSV);` بعد ضبط التنسيق على كل خلية. Aspose.Cells يحترم `Style` الخلية عند توليد CSV. + +--- + +## الخلاصة + +لقد أظهرنا لك كيفية **تنسيق رقم بفاصل** في C# باستخدام Aspose.Cells، مع تغطية كل شيء من **ضبط تنسيق رقم مخصص** إلى **إضافة فاصل آلاف**، **تنسيق المنازل العشرية**، و**كيفية تنسيق الخلية** لتصدير النص. الكود مكتمل ذاتيًا، يعمل مع .NET 6+، ويمكن تكييفه لأي لغة أو دقة مطلوبة. + +الخطوات التالية قد تشمل: + +* تطبيق التقنية نفسها على التواريخ والأوقات (`NumberFormat = "dd‑MMM‑yyyy"`). +* أتمتة تصدير مجموعات كبيرة حيث يحتاج كل عمود إلى قناع مختلف. +* دمج السلاسل المنسقة في تقارير PDF باستخدام Aspose.Words. + +جرّب ذلك وستصبح الشخص المرجعي لتنسيق الجداول في فريقك. برمجة سعيدة! (صورة: ![Screenshot showing formatted number with separator in Aspose.Cells](image-placeholder.png){alt="رقم منسق بفاصل معروض في مخرجات 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..c4fa6897da 100644 --- a/cells/arabic/net/excel-data-import-export/_index.md +++ b/cells/arabic/net/excel-data-import-export/_index.md @@ -32,6 +32,10 @@ تعرف على كيفية استيراد البيانات إلى 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# – إدراج JSON وحفظه كملف XLSX](./create-excel-workbook-c-insert-json-and-save-as-xlsx/) +تعلم كيفية إنشاء مصنف Excel باستخدام C# وإدراج بيانات JSON ثم حفظه بصيغة XLSX باستخدام Aspose.Cells. +### [إنشاء مصنف Excel C# – تطبيق تنسيق العملة واستيراد DataTable](./create-excel-workbook-c-apply-currency-format-and-import-dat/) +تعلم كيفية إنشاء مصنف Excel باستخدام C# وتطبيق تنسيق العملة على الخلايا واستيراد بيانات DataTable باستخدام Aspose.Cells. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/arabic/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md b/cells/arabic/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md new file mode 100644 index 0000000000..ae822024e9 --- /dev/null +++ b/cells/arabic/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md @@ -0,0 +1,283 @@ +--- +category: general +date: 2026-03-30 +description: إنشاء مصنف إكسل باستخدام C# مع تنسيق العملة. تعلّم كيفية استيراد DataTable، + وإضافة تنسيق الأرقام في إكسل، وتطبيق تنسيق العملة على العمود في دقائق. +draft: false +keywords: +- create excel workbook c# +- format cells currency +- import datatable to excel +- add number format excel +- apply currency format column +language: ar +og_description: إنشاء دفتر عمل Excel باستخدام C# وتنسيق الخلايا كعملة على الفور. يوضح + هذا الدليل خطوة بخطوة كيفية استيراد DataTable إلى Excel وإضافة تنسيق رقم Excel لعمود. +og_title: إنشاء مصنف إكسل C# – دليل تنسيق العملة +tags: +- Aspose.Cells +- C# +- Excel automation +title: إنشاء مصنف إكسل C# – تطبيق تنسيق العملة واستيراد جدول البيانات +url: /ar/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# إنشاء مصنف Excel باستخدام C# – تطبيق تنسيق العملة واستيراد DataTable + +هل احتجت يوماً إلى **إنشاء مصنف Excel C#** يبدو كأنه تقرير مصقول؟ ربما تقوم بجلب أرقام المبيعات من قاعدة بيانات وتريد أن يظهر عمود السعر بالدولار دون الحاجة إلى تعديل Excel يدوياً. هل هذا مألوف؟ لست وحدك—معظم المطورين يواجهون هذه المشكلة عندما يبدأون بأتمتة تصدير Excel. + +في هذا الدليل سنستعرض حلاً كاملاً جاهزاً للتنفيذ **ينشئ مصنف Excel C#**، يستورد `DataTable`، و**يُنسق عمود السعر كعملة**. في النهاية ستحصل على ملف اسمه `StyledTable.xlsx` يمكنك فتحه ورؤية الأرقام مُنسقة بشكل جميل. لا حاجة لمعالجة إضافية بعد ذلك. + +> **ما ستتعلمه** +> - كيفية إعداد Aspose.Cells في مشروع .NET +> - كيفية **استيراد datatable إلى excel** باستخدام مصفوفة الأنماط +> - كيفية **إضافة تنسيق رقم excel** لعمود محدد +> - نصائح للتعامل مع أعمدة إضافية أو لغات محلية مختلفة + +> **المتطلبات المسبقة** +> - .NET 6+ (أو .NET Framework 4.6+) مثبتة +> - حزمة NuGet الخاصة بـ Aspose.Cells for .NET (`Install-Package Aspose.Cells`) +> - إلمام أساسي بـ C# وDataTables + +--- + +## الخطوة 1: إعداد DataTable (import datatable to excel) + +أولاً، نحتاج إلى بعض البيانات التجريبية. في تطبيق حقيقي قد تملأ هذا الجدول من استعلام قاعدة بيانات، لكن المثال المدمج يبقي الأمور بسيطة. + +```csharp +using System.Data; + +// Create a DataTable with two columns: Product (string) and Price (double) +DataTable dataTable = new DataTable(); +dataTable.Columns.Add("Product", typeof(string)); +dataTable.Columns.Add("Price", typeof(double)); + +// Add a few rows – you can add as many as you like +dataTable.Rows.Add("Apple", 1.23); +dataTable.Rows.Add("Banana", 0.78); +dataTable.Rows.Add("Cherry", 2.50); +``` + +*لماذا هذا مهم*: `DataTable` هو الجسر بين بيانات عملك وملف Excel. يمكن لـ Aspose.Cells استيراده مباشرةً، مع الحفاظ على أسماء الأعمدة وأنواع البيانات. + +--- + +## الخطوة 2: إنشاء مصنف جديد (create excel workbook c#) + +الآن ننشئ كائن ملف Excel الفعلي. فكر فيه كقماش فارغ سترسم عليه. + +```csharp +using Aspose.Cells; + +// Instantiate a fresh workbook – this is the core of create excel workbook c# +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0). You could also add more sheets later. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **نصيحة محترف:** إذا كنت بحاجة إلى عدة أوراق، استدعِ `workbook.Worksheets.Add()` وأعط كل واحدة اسمًا ذا معنى. + +--- + +## الخطوة 3: تعريف نمط العملة (format cells currency) + +يتيح لك Aspose.Cells إنشاء كائن `Style` يصف مظهر الخلايا. للعملة نستخدم معرف تنسيق الرقم المدمج 164 (`"$#,##0.00"`). + +```csharp +// Create a new style object for the price column +Style priceStyle = workbook.CreateStyle(); +priceStyle.Number = 164; // Built‑in currency format "$#,##0.00" +``` + +*لماذا لا نكتفي بتعيين سلسلة التنسيق؟* استخدام المعرف المدمج يضمن التوافق عبر إصدارات Excel ويتجنب المشكلات الخاصة باللغات. + +--- + +## الخطوة 4: بناء مصفوفة الأنماط (apply currency format column) + +عند استيراد `DataTable`، يمكنك تمرير مصفوفة من كائنات `Style`—واحدة لكل عمود. `null` يعني “استخدام النمط الافتراضي”. هنا نطبق `priceStyle` فقط على العمود الثاني. + +```csharp +// Column 0 (Product) gets the default style, Column 1 (Price) gets the currency style +Style[] columnStyles = { null, priceStyle }; +``` + +إذا أضفت أعمدة أخرى لاحقًا، ما عليك سوى توسيع المصفوفة وفقًا لذلك. يجب أن يكون طول `columnStyles` مساويًا لعدد الأعمدة التي تستوردها، وإلا سيُطلق Aspose استثناءً. + +--- + +## الخطوة 5: استيراد DataTable مع الأنماط (import datatable to excel) + +الآن يحدث السحر—`DataTable` يهبط في ورقة العمل، وعمود السعر يُظهر فورًا كعملة. + +```csharp +// Parameters: +// - dataTable: source data +// - true: include column headers +// - startRow: 0 (top of sheet) +// - startColumn: 0 (first column) +// - columnStyles: style array defined above +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +*ماذا لو كان لديك أكثر من عمودين؟* فقط وسّع `columnStyles` بحيث يحصل كل عمود على النمط المناسب (أو `null` للافتراضي). هذه هي الطريقة الأنظف لـ **إضافة تنسيق رقم excel** بشكل انتقائي. + +--- + +## الخطوة 6: حفظ المصنف (create excel workbook c#) + +أخيرًا، نكتب الملف إلى القرص. اختر أي مجلد لديك صلاحية كتابة فيه. + +```csharp +// Save the workbook as an XLSX file +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +افتح `StyledTable.xlsx` في Excel وسترى: + +| المنتج | السعر | +|--------|-------| +| تفاح | $1.23 | +| موز | $0.78 | +| كرز | $2.50 | + +عمود **السعر** مُنسق بالفعل كعملة—لا حاجة لأي خطوات إضافية. + +--- + +## الحالات الخاصة والاختلافات + +### أعمدة أكثر، تنسيقات مختلفة + +إذا كنت بحاجة إلى **تنسيق خلايا العملة** لعدة أعمدة (مثل التكلفة، الضريبة، الإجمالي)، أنشئ `Style` منفصل لكل منها واملأ `columnStyles` وفقًا لذلك: + +```csharp +Style costStyle = workbook.CreateStyle(); +costStyle.Number = 164; // currency + +Style taxStyle = workbook.CreateStyle(); +taxStyle.Number = 164; + +// Assuming columns: Product, Cost, Tax, Total +Style[] styles = { null, costStyle, taxStyle, priceStyle }; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, styles); +``` + +### عملة خاصة بالمنطقة + +لليورو أو الجنيه الإسترليني، استخدم معرفات مدمجة مختلفة (مثلاً 165 لـ `€#,##0.00`). بدلاً من ذلك، عيّن سلسلة تنسيق مخصصة: + +```csharp +priceStyle.Custom = "€#,##0.00"; +``` + +### مجموعات بيانات ضخمة + +يمكن لـ Aspose.Cells التعامل مع ملايين الصفوف، لكن استهلاك الذاكرة يزداد مع كائنات الأنماط. أعد استخدام كائن `Style` واحد لجميع أعمدة العملة لتقليل البصمة. + +### الأنماط المفقودة + +إذا كان `columnStyles` أقصر من عدد الأعمدة، سيطبق Aspose النمط الافتراضي على الأعمدة المتبقية. هذا مفيد عندما يهمك تنسيق عدد قليل فقط من الأعمدة. + +--- + +## مثال كامل يعمل (جميع الخطوات مجمعة) + +فيما يلي البرنامج الكامل الذي يمكنك نسخه‑لصقه في تطبيق console. يتضمن جميع الأجزاء التي ناقشناها، بالإضافة إلى بعض التعليقات المفيدة. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // Step 1: Build sample DataTable (import datatable to excel) + // ------------------------------------------------- + DataTable dataTable = new DataTable(); + dataTable.Columns.Add("Product", typeof(string)); + dataTable.Columns.Add("Price", typeof(double)); + dataTable.Rows.Add("Apple", 1.23); + dataTable.Rows.Add("Banana", 0.78); + dataTable.Rows.Add("Cherry", 2.50); + // You can add as many rows as you like here. + + // ------------------------------------------------- + // Step 2: Create a new workbook (create excel workbook c#) + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // Step 3: Define a currency style (format cells currency) + // ------------------------------------------------- + Style priceStyle = workbook.CreateStyle(); + priceStyle.Number = 164; // "$#,##0.00" – built‑in currency format + + // ------------------------------------------------- + // Step 4: Build the style array (apply currency format column) + // ------------------------------------------------- + // First column gets default style (null), second column uses priceStyle. + Style[] columnStyles = { null, priceStyle }; + + // ------------------------------------------------- + // Step 5: Import the DataTable with the style array + // ------------------------------------------------- + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // ------------------------------------------------- + // Step 6: Save the workbook to disk + // ------------------------------------------------- + string outputPath = @"YOUR_DIRECTORY\StyledTable.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } +} +``` + +**النتيجة المتوقعة:** فتح `StyledTable.xlsx` يظهر عمود `السعر` مع علامة الدولار ومكانين عشريين، تمامًا كما طلبت تعليمات **تنسيق خلايا العملة**. + +--- + +## الأسئلة المتكررة + +**س: هل يعمل هذا مع .NET Core؟** +ج: بالتأكيد. Aspose.Cells متوافق مع .NET‑standard، لذا يمكنك استهداف .NET 5، .NET 6 أو أحدث دون تغييرات. + +**س: ماذا لو كان لدي DataTable يحتوي على 10 أعمدة وأريد تنسيق العمود الخامس فقط؟** +ج: أنشئ `Style[]` بطول 10، املأ المواضع 0‑4 و 6‑9 بـ `null`، وضع نمطك المخصص في الفهرس 4 (صفر‑مبني). سيتبع Aspose كل إدخال. + +**س: هل يمكن إخفاء صف العناوين؟** +ج: بعد الاستيراد، عيّن `worksheet.Cells.Rows[0].Hidden = true;` أو ببساطة مرّر `false` للمعامل `includeColumnNames` في `ImportDataTable`. + +--- + +## الخلاصة + +لقد **أنشأنا مصنف Excel باستخدام C#**، استوردنا `DataTable`، و**طبقنا تنسيق عملة على عمود** باستخدام Aspose.Cells. الخطوات الأساسية—تحضير البيانات، تعريف النمط، بناء مصفوفة الأنماط، الاستيراد عبر `ImportDataTable`، والحفظ—تشكل جوهر معظم مهام أتمتة Excel. + +من هنا يمكنك استكشاف: + +- **إضافة تنسيق رقم excel** للتواريخ أو النسب المئوية +- تصدير أوراق عمل متعددة في ملف واحد +- استخدام **تنسيق خلايا العملة** مع رموز خاصة بالمنطقة +- أتمتة إنشاء المخططات بناءً على نفس البيانات + +جرّب ذلك، وستصبح الشخص المرجعي لتقارير Excel في فريقك. هل لديك تعديل ترغب بمشاركته؟ اترك تعليقًا أدناه—برمجة سعيدة! + +![create excel workbook c# screenshot](image.png "create excel workbook c#") + +{{< /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/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md b/cells/arabic/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md new file mode 100644 index 0000000000..c376fbab86 --- /dev/null +++ b/cells/arabic/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md @@ -0,0 +1,233 @@ +--- +category: general +date: 2026-03-30 +description: إنشاء مصنف إكسل باستخدام C# بسرعة عن طريق إدراج بيانات JSON وحفظ المصنف + بصيغة XLSX. تعلم كيفية توليد إكسل من JSON، كتابة JSON إلى إكسل، وإدراج JSON في إكسل. +draft: false +keywords: +- create excel workbook c# +- save workbook as xlsx +- generate excel from json +- write json to excel +- insert json into excel +language: ar +og_description: إنشاء مصنف إكسل باستخدام C# بسرعة عن طريق إدراج بيانات JSON وحفظ المصنف + بصيغة XLSX. اتبع هذا الدليل خطوة بخطوة لتوليد إكسل من JSON. +og_title: إنشاء دفتر عمل Excel باستخدام C# – إدراج JSON وحفظه كملف XLSX +tags: +- Aspose.Cells +- C# +- Excel automation +title: إنشاء مصنف إكسل C# – إدراج JSON وحفظه كملف XLSX +url: /ar/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# إنشاء مصنف Excel C# – إدراج JSON وحفظه كـ XLSX + +هل احتجت يومًا إلى **create Excel workbook C#** وإسقاط بعض JSON مباشرةً في خلية؟ لست الوحيد—غالبًا ما يواجه المطورون نفس اللغز عندما يكون لديهم حمولات API أو ملفات تكوين تحتاج إلى الوصول إلى جدول بيانات للتقارير أو المشاركة. + +الخبر السار هو أنه باستخدام Aspose.Cells يمكنك القيام بذلك في بضع أسطر، **save workbook as XLSX**، والحفاظ على العملية بأكملها آمنة من حيث النوع. في هذا الدرس سنقوم **generate Excel from JSON**، **write JSON to Excel**، ونظهر لك الخطوات الدقيقة لـ **insert JSON into Excel** دون أي عمليات دمج سلاسل معقدة. + +## ما يغطيه هذا الدليل + +سنستعرض: + +1. إعداد مصنف جديد. +2. إضافة Smart Marker يتوقع JSON. +3. تمرير مصفوفة JSON إلى العلامة. +4. تعديل `SmartMarkerOptions` بحيث يبقى JSON في خلية واحدة. +5. حفظ الملف كمصنف XLSX. + +بنهاية الدليل ستحصل على ملف `JsonSingleCell.xlsx` جاهز للاستخدام ونمط ثابت يمكنك إعادة استخدامه لأي سيناريو JSON‑to‑Excel. لا خدمات خارجية، فقط C# عادي ومكتبة Aspose.Cells. + +**المتطلبات المسبقة** + +- .NET 6+ (أو .NET Framework 4.6+). +- Visual Studio 2022 أو أي بيئة تطوير متوافقة مع C#. +- حزمة NuGet `Aspose.Cells` (نسخة تجريبية مجانية أو مرخصة). + +إذا كان لديك ذلك، هيا نبدأ—لا حاجة لإعداد إضافي. + +--- + +## الخطوة 1: إنشاء مصنف جديد في C# + +أول شيء تحتاجه هو كائن مصنف فارغ. فكر فيه كملف Excel جديد ينتظر البيانات. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is your empty Excel file +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; +``` + +**لماذا هذا مهم:** +`Workbook` هو نقطة الدخول لجميع عمليات Excel. بإنشائه أولًا، تضمن أن استدعاء **save workbook as xlsx** التالي يمتلك كائنًا ملموسًا لتسلسله. + +> **نصيحة احترافية:** إذا كنت تخطط للعمل مع عدة أوراق، يمكنك إضافتها الآن باستخدام `workbook.Worksheets.Add()`. + +## الخطوة 2: وضع Smart Marker يتوقع JSON + +Smart Markers هي نواقل مكانية تقوم Aspose.Cells باستبدالها أثناء التشغيل. هنا نخبرها بالبحث عن سلسلة JSON باسم `data`. + +```csharp +// Put a Smart Marker in cell A1 – {{data:json}} tells Aspose to expect JSON +worksheet.Cells["A1"].PutValue("{{data:json}}"); +``` + +**لماذا هذا مهم:** +لاحقة `:json` تخبر المحرك أن القيمة الواردة هي JSON، ليست نصًا عاديًا. هذا هو المفتاح لـ **write json to excel** دون تحليل يدوي. + +## الخطوة 3: تعريف مصفوفة JSON + +الآن نقوم بصنع JSON الذي نريد إدراجه. للعرض سنستخدم قائمة بسيطة من الأشخاص. + +```csharp +// Sample JSON array – could come from an API, file, or DB +string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; +``` + +**حالة خاصة:** +إذا كان JSON الخاص بك يحتوي على علامات اقتباس مزدوجة، تأكد من هروبها (كما هو موضح) أو استخدم سلسلة حرفية (`@"..."`) لتجنب أخطاء التجميع. + +## الخطوة 4: ضبط خيارات Smart Marker – الحفاظ على المصفوفة كاملة + +بشكل افتراضي، ستحاول Aspose توسيع المصفوفة عبر الصفوف. نريد أن يبقى سلسلة JSON كاملة داخل خلية واحدة، وهو مثالي لسيناريوهات **insert json into excel** حيث سيقوم المستهلك بتحليل JSON لاحقًا. + +```csharp +SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions +{ + // Treat the whole array as a single cell value + ArrayAsSingle = true +}; +``` + +**لماذا هذا مهم:** +`ArrayAsSingle = true` يمنع توسيع الصفوف، مما يمنحك كتلة JSON نظيفة داخل خلية واحدة. هذا أساسي عندما يكون جدول البيانات صيغة نقل وليس تقريرًا. + +## الخطوة 5: معالجة Smart Marker ببيانات JSON + +الآن نقوم بربط JSON بالعلامة ونترك Aspose تقوم بالعمل الشاق. + +```csharp +// Process the marker – the anonymous object maps "data" to our JSON string +worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); +``` + +**ما يحدث خلف الكواليس:** +تقوم Aspose بتقييم النواقل `{{data:json}}`، تسلسل سلسلة `jsonData`، وتكتبها في الخلية A1 مع احترام الخيارات التي حددناها. + +## الخطوة 6: حفظ المصنف كملف XLSX + +أخيرًا، نكتب المصنف إلى القرص. هنا يأتي دور **save workbook as xlsx**. + +```csharp +// Save the workbook – the extension determines the format (XLSX here) +workbook.Save("JsonSingleCell.xlsx"); +``` + +**النتيجة:** +افتح `JsonSingleCell.xlsx` في Excel، وسترى مصفوفة JSON بالضبط كما عرّفناها، موجودة بشكل منظم في الخلية A1. + +## مثال كامل قابل للتنفيذ + +فيما يلي البرنامج الكامل الذي يمكنك نسخه ولصقه في تطبيق console. يتضمن جميع الخطوات السابقة ويعمل مباشرةً (بافتراض تثبيت حزمة Aspose.Cells عبر NuGet). + +```csharp +using System; +using Aspose.Cells; + +namespace JsonToExcelDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add a Smart Marker that expects JSON + worksheet.Cells["A1"].PutValue("{{data:json}}"); + + // 3️⃣ Define the JSON array + string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; + + // 4️⃣ Configure options – keep array as a single cell value + SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions + { + ArrayAsSingle = true + }; + + // 5️⃣ Process the marker with the JSON payload + worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); + + // 6️⃣ Save the workbook as XLSX + workbook.Save("JsonSingleCell.xlsx"); + + Console.WriteLine("Excel file created successfully! Check JsonSingleCell.xlsx."); + } + } +} +``` + +**الناتج المتوقع في Excel** + +| A | +|---| +| `[{"Name":"John","Age":30},{"Name":"Jane","Age":28}]` | + +تحتوي تلك الخلية الآن على مصفوفة JSON صالحة تمامًا جاهزة للمعالجة اللاحقة. + +## أسئلة شائعة وحالات خاصة + +### ماذا لو أردت توزيع JSON عبر الصفوف؟ + +اضبط `ArrayAsSingle = false` (الإعداد الافتراضي). ستقوم Aspose بإنشاء صف لكل عنصر في المصفوفة، وتعيين خصائص الكائن إلى الأعمدة. هذا مفيد عندما تريد عرضًا جدوليًا بدلاً من سلسلة JSON خام. + +### هل يمكنني استخدام ملف JSON بدلاً من سلسلة مشفرة صلبة؟ + +بالطبع. اقرأ الملف إلى سلسلة: + +```csharp +string jsonData = File.ReadAllText("people.json"); +``` + +ثم مرر `jsonData` إلى نفس استدعاء `Process`. يبقى باقي خط الأنابيب دون تغيير. + +### هل يعمل هذا مع حمولات JSON الكبيرة؟ + +نعم، لكن راقب استهلاك الذاكرة. بالنسبة للمصفوفات الضخمة، فكر في تدفق البيانات أو الكتابة مباشرةً إلى الصفوف (`ArrayAsSingle = false`) لتجنب خلية واحدة ضخمة قد تواجه Excel صعوبة في التعامل معها. + +### هل ملف XLSX المُولد متوافق مع إصدارات Excel القديمة؟ + +تنسيق `.xlsx` مبني على Office Open XML ويعمل مع Excel 2007 وما بعده. إذا كنت تحتاج إلى تنسيق `.xls` القديم، غيّر استدعاء الحفظ: + +```csharp +workbook.Save("JsonSingleCell.xls", SaveFormat.Excel97To2003); +``` + +## نصائح احترافية للعمل مع JSON وExcel + +- **Validate JSON first** – استخدم `System.Text.Json.JsonDocument.Parse(jsonData)` لاكتشاف الإدخال غير الصحيح مبكرًا. +- **Escape special characters** – إذا كان JSON يحتوي على فواصل أسطر، ستظهر كـ `\n` حرفيًا في الخلية؛ يمكنك استبدالها بـ `Environment.NewLine` قبل المعالجة. +- **Reuse Smart Markers** – يمكنك وضع عدة علامات في نفس الورقة، كل واحدة تشير إلى خاصية JSON مختلفة. +- **Combine with formulas** – بمجرد أن يكون JSON في خلية، يمكنك استخدام `FILTERXML` في Excel (في الإصدارات الأحدث) لتحليله مباشرةً. + +## الخلاصة + +أنت الآن تعرف كيف **create excel workbook c#**، وتضمين حمولة JSON، و**save workbook as xlsx** باستخدام Aspose.Cells. يتيح لك هذا النمط **generate excel from json**، **write json to excel**، و**insert json into excel** ببضع أسطر من الشيفرة فقط، مما يجعل تبادل البيانات بين الخدمات والمحللين سهلًا. + +هل أنت مستعد للخطوة التالية؟ جرّب تحويل مصفوفة JSON إلى جدول مناسب (اضبط `ArrayAsSingle = false`) أو استكشف تنسيق الورقة بعد الإدراج. نفس النهج يعمل مع CSV، XML، أو حتى كائنات مخصصة—فقط عدل نوع Smart Marker. + +برمجة سعيدة، ولا تتردد في التجربة! إذا واجهت أي مشاكل، اترك تعليقًا أدناه أو اطلع على الوثائق الرسمية لـ Aspose لمزيد من التفاصيل حول Smart Markers. + +{{< /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..53dc69df68 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# – دليل Aspose.Cells الكامل](./create-master-sheet-in-c-complete-aspose-cells-guide/) | تعلم كيفية إنشاء ورقة رئيسية في ملف Excel باستخدام C# مع Aspose.Cells خطوة بخطوة. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/arabic/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md b/cells/arabic/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md new file mode 100644 index 0000000000..d6f2c76d47 --- /dev/null +++ b/cells/arabic/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md @@ -0,0 +1,227 @@ +--- +category: general +date: 2026-03-30 +description: إنشاء ورقة رئيسية باستخدام Aspose.Cells في C#. تعلم كيفية إنشاء دفتر + عمل Excel في C#، السماح بأسماء الأوراق المكررة وحفظ دفتر العمل كملف XLSX في بضع + خطوات. +draft: false +keywords: +- create master sheet +- create excel workbook c# +- save workbook as xlsx +- allow duplicate sheet names +language: ar +og_description: إنشاء ورقة رئيسية باستخدام Aspose.Cells في C#. يوضح هذا الدليل كيفية + إنشاء مصنف Excel في C#، السماح بأسماء أوراق مكررة، وحفظ المصنف بصيغة XLSX. +og_title: إنشاء ورقة رئيسية في C# – دليل Aspose.Cells الكامل +tags: +- Aspose.Cells +- C# +- Excel automation +title: إنشاء ورقة رئيسية في C# – دليل Aspose.Cells الكامل +url: /ar/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# إنشاء ورقة رئيسية في C# – دليل كامل لـ Aspose.Cells + +هل احتجت يومًا إلى **create master sheet** في ملف Excel لكنك لم تكن متأكدًا من كيفية التعامل مع مجموعة من أوراق التفاصيل التي تشترك في نفس الاسم الأساسي؟ لست وحدك. في العديد من سيناريوهات التقارير تنتهي بك الأمور إلى وجود عشرات من علامات تبويب التفاصيل، والسلوك الافتراضي لمعظم المكتبات هو إلقاء استثناء عندما ينتهي الأمر بورقتين بنفس الاسم. + +لحسن الحظ، تجعل Aspose.Cells الأمر سهلًا لإنشاء **create master sheet**, وتكوين المحرك للسماح **allow duplicate sheet names**, ثم **save workbook as XLSX**—كل ذلك من كود C# نظيف. في هذا الدرس سنستعرض مثالًا قابلاً للتنفيذ بالكامل، ونشرح لماذا كل سطر مهم، ونقدم لك مجموعة من النصائح التي يمكنك نسخها مباشرةً إلى مشاريعك. + +> **ما ستحصل عليه** +> * كيف **create Excel workbook C#**‑style باستخدام Aspose.Cells. +> * كيف تضمّن smart‑marker الذي ينشئ ورقة تفاصيل لكل صف بيانات. +> * كيف تضبط `DetailSheetNewName = DuplicateAllowed` بحيث تقوم المكتبة تلقائيًا بإضافة لاحقة رقمية. +> * كيف **save workbook as XLSX** على القرص دون أي خطوات إضافية. + +لا حاجة إلى وثائق خارجية—كل ما تحتاجه موجود هنا. + +--- + +## المتطلبات المسبقة + +قبل أن نبدأ، تأكد من أنك تمتلك: + +| المتطلب | لماذا يهم | +|-------------|----------------| +| .NET 6.0 أو أحدث (أو .NET Framework 4.7+) | Aspose.Cells 23.x+ تستهدف هذه البيئات. | +| Visual Studio 2022 (أو أي بيئة تطوير C#) | لتسهيل إنشاء المشروع وتصحيح الأخطاء. | +| Aspose.Cells for .NET حزمة NuGet (`Install-Package Aspose.Cells`) | المكتبة التي تشغّل كل سحر الـ smart‑marker. | +| معرفة أساسية بـ C# | ستفهم الصياغة دون الحاجة إلى دورة سريعة. | + +إذا كنت تفتقد أيًا منها، أضفها الآن—ليس هناك فائدة من المتابعة ببيئة غير مكتملة. + +## الخطوة 1: إنشاء ورقة رئيسية باستخدام Aspose.Cells + +أول شيء نفعله هو **create Excel workbook C#**‑style عن طريق إنشاء كائن `Workbook`. هذا الكائن يحتوي بالفعل على ورقة عمل افتراضية، سنعيد تسميتها إلى “Master” ونتعامل معها كقالب لجميع صفحات التفاصيل. + +```csharp +using Aspose.Cells; + +// Step 1: Initialise a new workbook – this automatically gives us one sheet +Workbook workbook = new Workbook(); + +// Grab the first (and only) worksheet that comes with a fresh workbook +Worksheet masterSheet = workbook.Worksheets[0]; + +// Give it a meaningful name – this will be our master sheet +masterSheet.Name = "Master"; +``` + +*لماذا إعادة تسمية الورقة؟* +اسم افتراضي مثل “Sheet1” لا يعكس الغرض، ولاحقًا عندما تفحص الملف ستريد أن تكون علامة التبويب الرئيسية معروفة على الفور. التسمية أيضًا تمنع التصادمات العرضية عندما تضيف أوراقًا أخرى لاحقًا. + +## الخطوة 2: إعداد الـ smart‑marker الذي سيولد أوراق تفاصيل + +الـ smart‑markers هي نواقل مكانية تستبدلها Aspose.Cells بالبيانات أثناء التشغيل. بوضع `{{#detail:DataSheetName}}` في الخلية **A1**، نخبر المحرك: “لكل سجل في مصدر البيانات، أنشئ ورقة جديدة يُستمد اسمها من الحقل `DataSheetName`.” + +```csharp +// Step 2: Insert a smart‑marker into cell A1. +// The marker #detail tells Aspose.Cells to generate a new sheet per data row. +masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); +``` + +فكر في العلامة كبطاقة تعليمات صغيرة ملصقة على ورقة العمل. عندما يعمل المعالج، يقرأ البطاقة، يجلب القيمة المناسبة من مصدر البيانات، ثم ينسخ ورقة الـ master إلى علامة تبويب جديدة. + +## الخطوة 3: بناء مصدر البيانات – أسماء أوراق مكررة عن قصد + +في الواقع قد تجلب هذا من قاعدة بيانات، لكن للعرض سنستخدم مصفوفة في الذاكرة من كائنات مجهولة. لاحظ أن العنصرين يستخدمان نفس الاسم الأساسي `"Detail"`؛ هذا هو السيناريو الذي يصبح فيه **allow duplicate sheet names** أمرًا حاسمًا. + +```csharp +// Step 3: Create a data source with two items that share the same base sheet name. +var dataSource = new[] +{ + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } +}; +``` + +إذا جربت ذلك دون أي خيارات خاصة، ستطلق Aspose.Cells استثناءً في التكرار الثاني لأن ورقة باسم “Detail” موجودة بالفعل. لهذا السبب الخطوة التالية مهمة. + +## الخطوة 4: تمكين أسماء الأوراق المكررة + +Aspose.Cells تعرض `SmartMarkerOptions.DetailSheetNewName`. ضبطه إلى `DetailSheetNewName.DuplicateAllowed` يخبر المحرك بإضافة لاحقة رقمية تلقائيًا (مثال: “Detail_1”) كلما حدث تعارض في الاسم. + +```csharp +// Step 4: Configure SmartMarker options to permit duplicate sheet names. +var smartMarkerOptions = new SmartMarkerOptions +{ + // This makes the library rename clashes to "Detail_1", "Detail_2", etc. + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed +}; +``` + +*لماذا لا نعطي كل صف اسمًا فريدًا يدويًا؟* +لأن البيانات المصدرية غالبًا لا تضمن التفرد، خاصةً عندما يُدخل المستخدمون نصًا حرًا. السماح للمكتبة بالتعامل مع اللاحقة يزيل فئة كاملة من الأخطاء. + +## الخطوة 5: معالجة الـ smart‑markers وإنشاء أوراق التفاصيل + +الآن نستدعي `SmartMarkers.Process`، مع تمرير كل من مصدر البيانات والخيارات التي قمنا بتكوينها. الطريقة تمر عبر كل عنصر، تنسخ ورقة الـ master، وتعيد تسمية النسخة وفقًا لحقل `DataSheetName` (مع إضافة لاحقة إذا لزم الأمر). + +```csharp +// Step 5: Run the smart‑marker processor – this creates the detail sheets. +masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); +``` + +بعد تنفيذ هذا السطر ستحصل على ثلاث علامات تبويب في المصنف: + +1. **Master** – القالب الأصلي. +2. **Detail** – أول ورقة تم إنشاؤها (لا حاجة لللاحقة). +3. **Detail_1** – الورقة الثانية (تمت إضافة اللاحقة تلقائيًا). + +يمكنك التحقق من ذلك بفتح الملف في Excel؛ سترى ورقتي التفاصيل جنبًا إلى جنب. + +## الخطوة 6: حفظ المصنف كملف XLSX + +أخيرًا، نقوم بحفظ الملف على القرص. طريقة `Save` تختار تلقائيًا تنسيق XLSX عندما تعطيها امتداد `.xlsx`. + +```csharp +// Step 6: Persist the workbook – this is the moment we finally “save workbook as XLSX”. +string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; +workbook.Save(outputPath); +``` + +**نصيحة احترافية:** إذا كنت بحاجة إلى بث الملف مباشرةً إلى استجابة ويب (مثل ASP.NET Core)، استخدم `workbook.Save(stream, SaveFormat.Xlsx)` بدلاً من مسار ملف. + +## مثال كامل يعمل + +أدناه البرنامج الكامل الجاهز للتنفيذ. انسخه إلى تطبيق Console، اضغط F5، وافتح الملف الناتج لرؤية النتيجة. + +```csharp +using System; +using Aspose.Cells; + +namespace MasterSheetDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook and rename the default sheet to "Master" + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert a smart‑marker that will generate a detail sheet per data row + masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); + + // 3️⃣ Prepare a data source where two rows share the same sheet name + var dataSource = new[] + { + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } + }; + + // 4️⃣ Allow duplicate sheet names – the library will add "_1", "_2", … + var smartMarkerOptions = new SmartMarkerOptions + { + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed + }; + + // 5️⃣ Process the smart‑markers; this creates the detail sheets + masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); + + // 6️⃣ Save the workbook as an XLSX file + string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**النتيجة المتوقعة:** افتح `DuplicateDetailSheets.xlsx` وسترى ثلاث أوراق عمل—`Master`، `Detail`، و`Detail_1`. كل ورقة تفاصيل هي نسخة مطابقة من الـ master، جاهزة لتملأها ببيانات الصفوف لاحقًا. + +## أسئلة شائعة وحالات حافة + +### ماذا لو احتجت إلى أكثر من ورقتين مكررتين؟ + +لا مشكلة. الإعداد `DuplicateAllowed` نفسه سيستمر في إضافة أرقام تزايدية (`Detail_2`, `Detail_3`, …) حتى يحصل كل صف على علامة تبويب خاصة به. + +### هل يمكنني تخصيص تنسيق اللاحقة؟ + +بشكل افتراضي، تستخدم Aspose.Cells شرطة سفلية تليها رقم. إذا كنت تحتاج نمطًا مختلفًا (مثال: “Detail‑A”، “Detail‑B”)، سيتعين عليك معالجة المصنف بعد تشغيل `Process`، بالت iterating على `workbook.Worksheets` وإعادة التسمية حسب ما تراه مناسبًا. + +### هل يعمل هذا النهج مع مجموعات بيانات كبيرة (مئات الصفوف)؟ + +نعم، لكن راقب استهلاك الذاكرة. كل ورقة مُولدة هي نسخة كاملة من الـ master، لذا عدد كبير من الصفوف قد يزيد حجم الملف بسرعة. إذا كنت تحتاج فقط إلى عدد قليل من الصفوف لكل ورقة، فكر في استخدام `SmartMarkerOptions.RemoveEmptyRows = true` لتقليل الخلايا الزائدة. + +### هل الملف المُولد فعلاً ملف XLSX؟ + +بالتأكيد. طريقة `Save` تكتب حزمة Open XML التي يتوقعها Excel. يمكنك حتى فتح الملف باستخدام LibreOffice أو Google Sheets دون أي تحويل. + +## نصائح لكود جاهز للإنتاج + +| نصيحة | لماذا يهم | +|-----|----------------| +| **Dispose `Workbook + +{{< /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/formulas-functions/_index.md b/cells/arabic/net/formulas-functions/_index.md index f13c4c0fd6..8d7227f3dd 100644 --- a/cells/arabic/net/formulas-functions/_index.md +++ b/cells/arabic/net/formulas-functions/_index.md @@ -73,7 +73,7 @@ تعرّف على كيفية إدارة تحذيرات Excel باستخدام Aspose.Cells لـ .NET. نفّذ IWarningCallback وحسّن معالجة أخطاء تطبيقك في حالات حساب الصيغ وسيناريوهات التحذير الأخرى. ### [توسيع Excel باستخدام Aspose.Cells: تسجيل واستدعاء الدوال المحددة من قبل المستخدم (UDFs) في .NET](./extend-excel-aspose-cells-register-call-udfs) -تعلّم كيفية تحسين مصنفات Excel عن طريق تسجيل واستدعاء وظائف UDF باستخدام Aspose.Cells لـ .NET. أتقن الدوال المخصصة وحسّن كفاءة معالجة بياناتك باستخدام عمليات حسابية خاصة بك. +تعلّم كيفية تحسين مصنفات Excel عن طريق تسجيل واستدعاء وظائف UDF باستخدام Aspose.Cells .NET. أتقن الدوال المخصصة وحسّن كفاءة معالجة بياناتك باستخدام عمليات حسابية خاصة بك. ### [البحث عن خلايا الصيغة وإدارتها في Excel باستخدام Aspose.Cells لـ .NET](./find-formula-cells-in-excel-using-aspose-cells-net) تعرّف على كيفية استخدام Aspose.Cells لـ .NET للعثور على خلايا الصيغ في مصنفات Excel بكفاءة. يغطي هذا الدليل إعداد الخلايا التي تحتوي على الصيغ واستخدامها وتحسين أدائها لتحديد موقعها وإدارتها. @@ -102,6 +102,10 @@ ### [تحديث صيغ Excel Power Query باستخدام Aspose.Cells .NET](./update-power-query-formulas-aspose-cells-net) تعرّف على كيفية تحديث صيغ Power Query برمجيًا في مصنفات Excel باستخدام Aspose.Cells لـ .NET. إدارة مصادر البيانات الرئيسية لإعداد تقارير ديناميكية. +### [كيفية استخدام WRAPCOLS في C# – إنشاء مصنف Excel مع وظائف التغليف](./how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/) + +### [إنشاء مصنف Excel C# – دليل Lambda و SEQUENCE و EXPAND](./create-excel-workbook-c-lambda-sequence-expand-guide/) + ## فهم أنواع الصيغ في Excel تأتي صيغ Excel بأشكال مختلفة، ولكل منها خصائص فريدة يمكن لـ Aspose.Cells إدارتها: diff --git a/cells/arabic/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md b/cells/arabic/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md new file mode 100644 index 0000000000..f5bb8016e0 --- /dev/null +++ b/cells/arabic/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md @@ -0,0 +1,212 @@ +--- +category: general +date: 2026-03-30 +description: إنشاء مصنف Excel باستخدام C# و Aspose.Cells. تعلم تطبيق دالة lambda في + Excel، ودالة sequence في Excel، وتوسيع المصفوفة في Excel، وحفظ المصنف بصيغة xlsx. +draft: false +keywords: +- create excel workbook c# +- lambda function excel +- save workbook as xlsx +- sequence function excel +- expand array excel +language: ar +og_description: إنشاء دفتر عمل Excel باستخدام C# بسرعة. يوضح هذا الدليل كيفية استخدام + دالة لامدا في Excel، ودالة التسلسل في Excel، وتوسيع المصفوفة في Excel، وحفظ دفتر + العمل كملف xlsx. +og_title: إنشاء مصنف إكسل C# – دليل Lambda و SEQUENCE و EXPAND +tags: +- Aspose.Cells +- C# +- Excel automation +title: إنشاء مصنف إكسل C# – دليل Lambda و SEQUENCE و EXPAND +url: /ar/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# إنشاء دفتر عمل Excel باستخدام C# – دليل Lambda و SEQUENCE و EXPAND + +هل احتجت يومًا إلى **إنشاء دفتر عمل Excel باستخدام C#** لتقرير آلي، لكنك لم تكن متأكدًا من أي استدعاءات API تستخدم؟ لست وحدك—العديد من المطورين يواجهون نفس المشكلة عندما يغوصون لأول مرة في إنشاء Excel برمجيًا. في هذا الدليل ستشاهد مثالًا كاملاً قابلاً للتنفيذ يغطي كل شيء من **دالة SEQUENCE في Excel** إلى **دالة LAMBDA القوية في Excel**، وحتى كيفية **توسيع مصفوفة Excel**. + +سنوضح لك أيضًا الخطوات الدقيقة لـ **حفظ دفتر العمل كملف xlsx** حتى تتمكن من تسليم الملف لأي شخص يستخدم Excel. بنهاية هذا الشرح ستحصل على مقتطف ثابت وجاهز للإنتاج يمكنك إدراجه في أي مشروع .NET. لا روابط غامضة مثل “انظر الوثائق”—فقط كود يعمل الآن. + +## ما ستحتاجه + +- **.NET 6.0 أو أحدث** – المثال يستهدف .NET 6، لكن أي نسخة حديثة تعمل. +- **Aspose.Cells for .NET** – تثبيت عبر NuGet (`Install-Package Aspose.Cells`). +- فهم أساسي لسينتاكس C# (المتغيرات، الكائنات، وتعبيرات lambda). +- بيئة تطوير متكاملة (IDE) مريحة لك (Visual Studio، Rider، أو VS Code). + +هذا كل شيء. لا حاجة إلى COM interop إضافي، ولا يتطلب تثبيت Office على الخادم—Aspose.Cells يتعامل مع كل شيء في الذاكرة. + +## إنشاء دفتر عمل Excel باستخدام C# – تنفيذ خطوة بخطوة + +فيما يلي نقسم العملية إلى خطوات صغيرة. كل خطوة لها عنوان واضح، مقتطف شفرة قصير، وتفسير **لماذا** نقوم بذلك. لا تتردد في نسخ الكتلة الكاملة في النهاية وتشغيلها كتطبيق كونسول. + +### الخطوة 1 – تهيئة دفتر عمل جديد + +أولًا: نحتاج إلى كائن دفتر عمل فارغ يمثل ملف Excel في الذاكرة. + +```csharp +using Aspose.Cells; + +// Step 1: Create a new workbook and get the first worksheet +Workbook workbook = new Workbook(); // empty workbook +Worksheet sheet = workbook.Worksheets[0]; // default first sheet +``` + +*لماذا هذا مهم:* `Workbook` هو نقطة الدخول لجميع عمليات Aspose.Cells. بالحصول على أول `Worksheet` نحصل على مساحة يمكننا كتابة الصيغ، القيم، أو التنسيق فيها. + +> **نصيحة احترافية:** إذا احتجت إلى عدة أوراق، ما عليك سوى استدعاء `workbook.Worksheets.Add()` والاحتفاظ بإشارة إلى كل واحدة. + +### الخطوة 2 – استخدام دالة SEQUENCE في Excel لتوليد البيانات + +تُنشئ **دالة SEQUENCE في Excel** مصفوفة ديناميكية من الأرقام دون أي VBA. سنضعها في الخلية `A1` وسنترك Excel يوسّعها تلقائيًا. + +```csharp +// Step 2: Generate a 5‑row, 1‑column array from a SEQUENCE +sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; // 1..3 padded with blanks +``` + +*لماذا هذا مهم:* `SEQUENCE(3)` تُعيد `[1,2,3]`. تغليفها بـ `EXPAND` يجبر النتيجة على أن تكون نطاقًا من 5 صفوف، مع ملء الصفوف الإضافية بالفراغات. هذا يوضح كلًا من **دالة SEQUENCE في Excel** و **توسيع مصفوفة Excel** في خطوة واحدة. + +### الخطوة 3 – تجميع الأرقام باستخدام دالة LAMBDA في Excel + +الآن لنستعرض قدرة **دالة LAMBDA في Excel**. سنجمع الأرقام من 1 إلى 5 باستخدام الدالة الجديدة `REDUCE`، التي تعتمد داخليًا على lambda. + +```csharp +// Step 3: Aggregate a sequence (sum 1..5) using REDUCE/LAMBDA +sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; // result = 15 +``` + +*لماذا هذا مهم:* `REDUCE` تُكرر على المصفوفة التي تنتجها `SEQUENCE(5)`، وتُمرّر كل عنصر (`b`) إلى lambda جنبًا إلى جنب مع المتراكم (`a`). الـ lambda `a+b` يجمعهم، فينتج `15` في `B1`. هذه طريقة نظيفة تعتمد على الصيغ فقط لإجراء التجميع دون حلقات في C#. + +### الخطوة 4 – تطبيق الدوال المثلثية مباشرةً في الخلايا + +الدوال الرياضية المدمجة في Excel مفيدة للحسابات السريعة. سنضع دالة الظل المقلوب (cotangent) ودالة الظل المقلوب الزائد (hyperbolic cotangent) في خلايا متجاورة. + +```csharp +// Step 4: Trigonometric functions directly in Excel cells +sheet["C1"].Formula = "COT(PI()/4)"; // evaluates to 1 +sheet["D1"].Formula = "COTH(1)"; // hyperbolic cotangent of 1 +``` + +*لماذا هذا مهم:* يوضح أنه يمكنك دمج الدوال الرياضية الكلاسيكية مع صيغ المصفوفة الديناميكية الحديثة. لا حاجة لحساب هذه القيم في C# إلا إذا كان لديك سبب أداء محدد. + +### الخطوة 5 – حساب جميع الصيغ + +Aspose.Cells لا يقوم بتقييم الصيغ تلقائيًا عند تعيينها. عليك أن تطلب منه حسابها. + +```csharp +// Step 5: Force calculation so that cells store the results +workbook.CalculateFormula(); +``` + +*لماذا هذا مهم:* بعد هذا الاستدعاء، تحتوي خاصية `Value` لكل خلية على النتيجة المُقيمة، جاهزة للحفظ أو القراءة مرة أخرى. + +### الخطوة 6 – حفظ دفتر العمل كملف Xlsx + +أخيرًا، نقوم بحفظ دفتر العمل على القرص باستخدام نمط **حفظ دفتر العمل كملف xlsx**. + +```csharp +// Step 6: Save the workbook to an Excel file (XLSX format) +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + +workbook.Save(outputPath); +Console.WriteLine($"Workbook saved to: {outputPath}"); +``` + +*لماذا هذا مهم:* طريقة `Save` تكتشف امتداد الملف تلقائيًا. باستخدام “.xlsx” نضمن أن الملف متوافق مع إصدارات Excel الحديثة. المسار يشير إلى سطح المكتب لتسهيل الوصول أثناء الاختبار. + +### مثال كامل يعمل + +فيما يلي البرنامج الكامل الذي يمكنك لصقه في مشروع كونسول جديد. يتضمن جميع الخطوات السابقة، بالإضافة إلى كتلة تحقق صغيرة تطبع القيم المحسوبة إلى الكونسول. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialize workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + + // SEQUENCE + EXPAND + sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; + + // REDUCE with LAMBDA + sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; + + // Trig functions + sheet["C1"].Formula = "COT(PI()/4)"; + sheet["D1"].Formula = "COTH(1)"; + + // Calculate formulas + workbook.CalculateFormula(); + + // Verify results (optional) + Console.WriteLine("A1‑A5 (expanded SEQUENCE):"); + for (int i = 0; i < 5; i++) + { + Console.WriteLine($" Row {i + 1}: {sheet.Cells[i, 0].Value ?? "blank"}"); + } + Console.WriteLine($"B1 (sum 1‑5): {sheet["B1"].Value}"); + Console.WriteLine($"C1 (cot(π/4)): {sheet["C1"].Value}"); + Console.WriteLine($"D1 (coth(1)): {sheet["D1"].Value}"); + + // Save workbook + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + workbook.Save(outputPath); + Console.WriteLine($"Workbook saved to: {outputPath}"); + } +} +``` + +**الناتج المتوقع في الكونسول** + +``` +A1‑A5 (expanded SEQUENCE): + Row 1: 1 + Row 2: 2 + Row 3: 3 + Row 4: blank + Row 5: blank +B1 (sum 1‑5): 15 +C1 (cot(π/4)): 1 +D1 (coth(1)): 1.31303528549933 +Workbook saved to: C:\Users\YourName\Desktop\NewFunctions.xlsx +``` + +وعند فتح *NewFunctions.xlsx* سترى نفس الأرقام موزعة في الأعمدة الأربعة الأولى. + +![لقطة شاشة لإنشاء دفتر عمل Excel باستخدام C# للجدول الناتج](/images/create-excel-workbook-csharp.png) + +## الحالات الخاصة، النصائح، والأسئلة الشائعة + +- **ماذا لو احتجت إلى أكثر من ورقة واحدة؟** + ما عليك سوى استدعاء `workbook.Worksheets.Add()` وتكرار تعيين الصيغ على كل كائن `Worksheet` جديد. + +- **هل يمكنني استخدام إصدارات Excel أقدم؟** + تتطلب دوال المصفوفة الديناميكية (`SEQUENCE`, `EXPAND`, `REDUCE`) Excel 365 أو Excel 2021+. إذا كنت تستهدف إصدارات أقدم، التزم بالصيغ الكلاسيكية أو احسب القيم في C# قبل كتابتها. + +- **هل هناك مخاوف بشأن الأداء؟** + بالنسبة لآلاف الصفوف، تعيين الصيغ على نطاق ثم استدعاء `CalculateFormula` عادةً ما يكون أسرع من التكرار وتعيين القيم واحدًا تلو الآخر. + +- **حفظ إلى تدفق بدلاً من ملف؟** + `work + +{{< /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/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md b/cells/arabic/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md new file mode 100644 index 0000000000..7f238e093c --- /dev/null +++ b/cells/arabic/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md @@ -0,0 +1,212 @@ +--- +category: general +date: 2026-03-30 +description: تعلم كيفية استخدام WRAPCOLS في C# لإنشاء مصنف Excel، وإضافة البيانات + إلى Excel، وإجبار حساب الصيغ مع استخدام WRAPROWS أيضًا. +draft: false +keywords: +- how to use wrapcols +- create excel workbook c# +- add data to excel +- force formula calculation +- how to use wraprows +language: ar +og_description: اكتشف كيفية استخدام WRAPCOLS في C# لإنشاء مصنف Excel، وإضافة البيانات، + وإجبار حساب الصيغ، والاستفادة من WRAPROWS للصيغ المصفوفية. +og_title: كيفية استخدام WRAPCOLS في C# – دليل كامل +tags: +- Aspose.Cells +- C# +- Excel Automation +title: كيفية استخدام WRAPCOLS في C# – إنشاء مصنف Excel باستخدام وظائف التغليف +url: /ar/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# كيفية استخدام WRAPCOLS في C# – إنشاء دفتر عمل Excel باستخدام وظائف الالتفاف + +هل تساءلت يومًا **كيف تستخدم WRAPCOLS** عندما تقوم بأتمتة Excel باستخدام C#؟ لست وحدك—العديد من المطورين يواجهون صعوبة عندما يحتاجون إلى تحويل نطاق أفقي إلى مصفوفة عمودية دون كتابة الكثير من الشيفرة. الخبر السار هو أن Aspose.Cells يجعل ذلك سهلًا للغاية. + +في هذا البرنامج التعليمي سنستعرض مثالًا كاملًا قابلًا للتنفيذ يُظهر **كيف تستخدم WRAPCOLS**، وكيف **تنشئ دفتر عمل Excel بأسلوب C#**، وكيف **تضيف بيانات إلى Excel**، وحتى كيف **تجبر حساب الصيغ** لتظهر النتائج فورًا. سنضيف أيضًا **كيفية استخدام WRAPROWS** للتحويل العكسي. في النهاية ستحصل على برنامج جاهز للتنفيذ وفهم واضح لأهمية كل خطوة. + +--- + +![How to use WRAPCOLS in C# example](alt="Screenshot showing Excel workbook after using WRAPCOLS in C#") + +## ما يغطيه هذا الدليل + +* إعداد دفتر عمل جديد باستخدام Aspose.Cells. +* ملء الخلايا برمجيًا (**add data to Excel**). +* تطبيق دالة `WRAPCOLS` لتحويل صف إلى عمود. +* استخدام `WRAPROWS` لإعادة عمود إلى صف (**how to use wraprows**). +* إجبار المحرك على حساب الصيغ فورًا (**force formula calculation**). +* حفظ الملف والتحقق من النتيجة. + +لا حاجة إلى أي وثائق خارجية—كل ما تحتاجه موجود هنا. + +--- + +## كيفية استخدام WRAPCOLS في C# – تنفيذ خطوة بخطوة + +فيما يلي ملف المصدر الكامل. يمكنك نسخه ولصقه في مشروع وحدة تحكم جديد، إضافة حزمة Aspose.Cells عبر NuGet، ثم الضغط على **F5**. + +```csharp +// ------------------------------------------------------------ +// How to Use WRAPCOLS in C# – Complete Example +// ------------------------------------------------------------ +using System; +using Aspose.Cells; + +namespace WrapFunctionsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a fresh workbook (this is how we **create excel workbook c#** style) + Workbook workbook = new Workbook(); + + // 2️⃣ Grab the first worksheet – it's created by default + Worksheet sheet = workbook.Worksheets[0]; + + // 3️⃣ **Add data to Excel**: place two numbers side‑by‑side + sheet.Cells["A1"].PutValue(1); // first value + sheet.Cells["B1"].PutValue(2); // second value + + // 4️⃣ **How to use WRAPCOLS** – turn the horizontal range A1:B1 into a vertical array + // The second argument (1) tells WRAPCOLS to create 1 column per element. + sheet["C1"].Formula = "WRAPCOLS(A1:B1, 1)"; + + // 5️⃣ **How to use WRAPROWS** – the opposite; turn the same range into a horizontal array + // Here we ask for 2 rows per element, which produces a single row with both values. + sheet["C2"].Formula = "WRAPROWS(A1:B1, 2)"; + + // 6️⃣ **Force formula calculation** so the workbook reflects the results immediately + workbook.CalculateFormula(); + + // 7️⃣ Save the workbook to disk – change the path to a folder you own + string outputPath = @"WrapFunctions.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + Console.WriteLine("Check cells C1 and C2 for the WRAPCOLS / WRAPROWS results."); + } + } +} +``` + +### لماذا كل سطر مهم + +| الخطوة | الشرح | +|------|-------------| +| **1️⃣ إنشاء دفتر عمل جديد** | هذا هو الأساس. Aspose.Cells يتعامل مع كائن `Workbook` كملف Excel كامل، لذا أنت فعليًا **تنشئ دفتر عمل Excel بأسلوب C#**. | +| **2️⃣ الحصول على ورقة العمل الأولى** | يحتوي دفتر العمل الجديد دائمًا على ورقة عمل واحدة على الأقل (`Worksheets[0]`). الوصول إليها مبكرًا يجنبك مفاجآت الـ null‑reference. | +| **3️⃣ إضافة بيانات إلى Excel** | باستخدام `PutValue` نحن **نضيف بيانات إلى Excel** دون القلق بشأن تنسيق الخلية. الأرقام `1` و `2` هي بيانات الاختبار لدوال الالتفاف. | +| **4️⃣ كيفية استخدام WRAPCOLS** | `WRAPCOLS(A1:B1, 1)` يخبر Excel بأخذ النطاق `A1:B1` وإسقاط قيمه عموديًا، قيمة واحدة لكل صف. النتيجة تُوضع في `C1` وتستمر إلى الأسفل (`C1`, `C2`, …). | +| **5️⃣ كيفية استخدام WRAPROWS** | `WRAPROWS(A1:B1, 2)` يقوم بالعكس: يُنشئ إسقاطًا أفقيًا، يضع القيمتين في صف واحد يبدأ من `C2`. | +| **6️⃣ إجبار حساب الصيغة** | بشكل افتراضي قد يؤجل Aspose.Cells الحساب حتى يُفتح الملف في Excel. استدعاء `CalculateFormula()` **يجبر حساب الصيغة** حتى يمكنك قراءة النتائج فورًا بعد الحفظ. | +| **7️⃣ حفظ دفتر العمل** | الخطوة الأخيرة تكتب كل شيء إلى القرص. افتح الملف الناتج `WrapFunctions.xlsx` لرؤية النتيجة. | + +--- + +## إنشاء دفتر عمل Excel C# – إعداد البيئة + +قبل تشغيل الشيفرة، تأكد من توفر الأدوات الصحيحة: + +1. **.NET 6.0+** – أحدث نسخة LTS هي الأنسب. +2. **Visual Studio 2022** (أو VS Code مع امتداد C#). +3. **Aspose.Cells for .NET** – تثبيت عبر NuGet: + ```bash + dotnet add package Aspose.Cells + ``` +4. مجلد قابل للكتابة لحفظ الملف الناتج. + +هذه المتطلبات قليلة؛ لا حاجة إلى COM interop أو تثبيت Office، وهذا هو السبب في أن Aspose.Cells خيار شائع لإنشاء Excel على الخادم. + +--- + +## إضافة بيانات إلى Excel – أفضل الممارسات + +عند **إضافة بيانات إلى Excel** برمجيًا، ضع في اعتبارك النصائح التالية: + +* **استخدم `PutValue`** للأرقام أو السلاسل الخام؛ فهو يكتشف نوع البيانات تلقائيًا. +* **تجنب كتابة عناوين الخلايا يدويًا** في المشاريع الكبيرة—استخدم الحلقات أو النطاقات المسماة لتسهيل التوسع. +* **قم بتطبيق الأنماط على الخلايا باعتدال**؛ كل تغيير نمط يضيف عبئًا. إذا احتجت تنسيقًا، أنشئ كائن نمط واحد وطبقه على خلايا متعددة. + +في مثالنا الصغير نُدخل رقمين فقط، لكن النمط نفسه يمكن توسيعه لآلاف الصفوف. + +--- + +## كيفية استخدام WRAPROWS – مثال على مصفوفة أفقية + +إذا كنت تحتاج إلى عكس `WRAPCOLS`، فإن `WRAPROWS` هو ما يلزمك. الصياغة هي: + +``` +WRAPROWS(source_range, [rows_per_item]) +``` + +* `source_range` – النطاق الذي تريد تحويله. +* `rows_per_item` – اختياري؛ يحدد عدد الصفوف التي يشغلها كل عنصر. في مثالنا استخدمنا `2` لإجبار القيمتين على التواجد في صف واحد. + +يمكنك التجربة بتغيير الوسيط الثاني: + +```csharp +// Example: split each value into its own column, three rows per item +sheet["D1"].Formula = "WRAPROWS(A1:B1, 3)"; +``` + +افتح دفتر العمل وسترى القيم تُسقط عبر ثلاثة أعمدة، كل عمود يحتوي على الأرقام الأصلية مكررة حسب الحاجة. + +--- + +## إجبار حساب الصيغة – متى ولماذا + +قد تتساءل، “هل أحتاج حقًا لاستدعاء `CalculateFormula()`؟” الجواب **نعم** إذا: + +* كنت تخطط لقراءة القيم المحسوبة **برمجيًا** بعد الحفظ. +* تريد ضمان أن الملف يفتح في Excel مع عرض النتائج الصحيحة مسبقًا. +* تعمل في **بيئة بدون واجهة** (مثل API ويب) حيث لا يُجري المستخدم إعادة حساب يدويًا. + +تخطي هذه الخطوة لن يُكسر دفتر العمل، لكن الخلايا ستظهر نص الصيغة (`=WRAPCOLS(...)`) بدلاً من القيم المحسوبة حتى يقوم Excel بإعادة الحساب. + +--- + +## النتيجة المتوقعة – ما الذي تبحث عنه + +بعد تشغيل البرنامج وفتح `WrapFunctions.xlsx`: + +| الخلية | الصيغة | القيمة المعروضة | +|------|---------|-----------------| +| **C1** | `=WRAPCOLS(A1:B1, 1)` | `1` (في C1) و `2` (في C2) – قائمة عمودية | +| **C2** | `=WRAPROWS(A1:B1, 2)` | `1` في C2 و `2` في D2 – قائمة أفقية | + +سترى عمودًا من القيم يبدأ من **C1** وصفًا من القيم يبدأ من **C2**. هذا يؤكد أن كلتا دالتي الالتفاف عملتا كما هو متوقع. + +--- + +## الحالات الخاصة والتنوعات + +| السيناريو | ما الذي يتغير؟ | التعديل المقترح | +|----------|---------------|-----------------| +| **نطاق كبير (A1:Z1)** | مزيد من القيم لتُسقط عموديًا | زيادة الوسيط الثاني لـ `WRAPCOLS` إذا أردت أعمدة متعددة لكل مجموعة. | +| **بيانات غير رقمية** | السلاسل تُعامل بنفس الطريقة | لا تغيير في الشيفرة؛ `PutValue` يقبل أي كائن. | +| **نطاق ديناميكي** | لا تعرف الحجم أثناء التجميع | استخدم `sheet.Cells.MaxDataColumn` و `MaxDataRow` لبناء سلسلة العنوان. | +| **عدة أوراق عمل** | تحتاج لتطبيق دوال الالتفاف على أوراق مختلفة | أشِر إلى ورقة العمل الصحيحة (`workbook.Worksheets["Sheet2"]`). | + +بتوقع هذه الاختلافات، يمكنك تعديل النمط الأساسي ليتناسب مع أي سيناريو أتمتة تقريبًا. + +--- + +## نصائح احترافية من الميدان + +* **نصيحة احترافية:** ضع إنشاء دفتر العمل داخل كتلة `using` إذا كنت تستهدف .NET Core 3.1+ لضمان تحرير جميع الموارد بسرعة. +* **احذر من:** تعيين الصيغة نفسها على نطاق كبير دون استدعاء `CalculateFormula()` قد يسبب اختناقات أداء. عالج الصيغ على دفعات عندما يكون ذلك ممكنًا. +* **نصيحة:** إذا كنت بحاجة لقراءة القيم المحسوبة مرة أخرى في الشيفرة، استدعِ ` + +{{< /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/tables-and-lists/_index.md b/cells/arabic/net/tables-and-lists/_index.md index 0129f2e4f0..d035f0ec97 100644 --- a/cells/arabic/net/tables-and-lists/_index.md +++ b/cells/arabic/net/tables-and-lists/_index.md @@ -47,6 +47,8 @@ حوّل جداول Excel إلى نطاقات بسهولة باستخدام Aspose.Cells لـ .NET. اتبع دليلنا خطوة بخطوة لتسهيل معالجة بياناتك. ### [تحويل الجدول إلى نطاق باستخدام الخيارات](./converting-table-to-range-with-options/) حوّل الجداول إلى نطاقات بسهولة في Excel باستخدام Aspose.Cells لـ .NET مع إرشادات خطوة بخطوة. حسّن مهاراتك في معالجة بيانات Excel. +### [إنشاء جدول من نطاق في C# – دليل Aspose.Cells الكامل](./create-table-from-range-in-c-complete-aspose-cells-tutorial/) +تعلم خطوة بخطوة كيفية إنشاء جدول من نطاق في Excel باستخدام Aspose.Cells لـ .NET مع مثال كامل في C#. ### [قراءة وكتابة الجدول باستخدام مصدر بيانات الاستعلام](./reading-and-writing-table-with-query-data-source/) استغل إمكانيات Aspose.Cells لـ .NET. تعلّم قراءة وكتابة الجداول باستخدام مصادر بيانات الاستعلام في هذا الدليل المفصل خطوة بخطوة. ### [تعيين تعليق على جدول أو قائمة في Excel](./setting-comment-of-table-or-list/) diff --git a/cells/arabic/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md b/cells/arabic/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md new file mode 100644 index 0000000000..3eb139ed57 --- /dev/null +++ b/cells/arabic/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md @@ -0,0 +1,230 @@ +--- +category: general +date: 2026-03-30 +description: إنشاء جدول من نطاق في C# باستخدام Aspose.Cells – إضافة بيانات إلى الخلايا، + تحويل النطاق إلى ListObject وحفظ ملف Excel بدون الفلتر. +draft: false +keywords: +- create table from range +- create excel workbook c# +- add data to cells +- convert range to listobject +- save excel without filter +language: ar +og_description: إنشاء جدول من نطاق في C# باستخدام Aspose.Cells. تعلّم كيفية إضافة + البيانات إلى الخلايا، تحويل النطاق إلى ListObject، وحفظ ملف Excel دون الفلتر. +og_title: إنشاء جدول من نطاق في C# – دليل Aspose.Cells الكامل +tags: +- Aspose.Cells +- C# +- Excel Automation +title: إنشاء جدول من نطاق في C# – دليل Aspose.Cells الكامل +url: /ar/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# إنشاء جدول من نطاق في C# – دليل Aspose.Cells الكامل + +هل احتجت يومًا إلى **إنشاء جدول من نطاق** في C# لكن لم تكن متأكدًا من كيفية تحويل كتلة بيانات عادية إلى جدول Excel متكامل؟ لست وحدك. سواءً كنت تقوم بأتمتة التقارير، أو إنشاء بطاقات النتائج، أو مجرد تنظيف البيانات للتحليل اللاحق، فإن إتقان هذه الحيلة الصغيرة يمكن أن يوفر لك الكثير من العمل اليدوي. + +في هذا الدليل سنستعرض العملية بالكامل: **create excel workbook c#**، **add data to cells**، **convert range to ListObject**، وأخيرًا **save excel without filter**. في النهاية ستحصل على مقتطف جاهز للتنفيذ يمكنك إدراجه في أي مشروع .NET يستخدم Aspose.Cells. + +--- + +## المتطلبات المسبقة + +- .NET 6+ (or .NET Framework 4.7.2+) مثبت +- Aspose.Cells for .NET (حزمة NuGet `Aspose.Cells`) – أحدث نسخة في وقت كتابة هذا الدليل (23.10) تعمل بشكل مثالي. +- فهم أساسي لصياغة C# – لا حاجة لمعرفة عميقة بـ Excel interop. + +إذا كان لديك هذه المتطلبات، لنبدأ. + +--- + +## الخطوة 1: إنشاء مصنف Excel في C# + +أولاً نحتاج إلى كائن مصنف جديد. فكر فيه كملف Excel فارغ سيحتوي في النهاية على جدولنا. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is equivalent to opening a blank .xlsx file. +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (default) worksheet. +``` + +> **نصيحة احترافية:** `Workbook()` بدون معاملات تُنشئ مصنفًا يحتوي على ورقة عمل افتراضية واحدة، وهو مثالي للعرض السريع. إذا كنت بحاجة إلى عدة أوراق، يمكنك إضافتها لاحقًا باستخدام `workbook.Worksheets.Add()`. + +--- + +## الخطوة 2: إضافة بيانات إلى الخلايا + +الآن سنملأ الورقة بمجموعة بيانات صغيرة – عمودان (Name, Score) وثلاث صفوف من القيم. هذا يوضح **add data to cells** بطريقة نظيفة وقابلة للقراءة. + +```csharp +// Header row +worksheet.Cells["A1"].PutValue("Name"); +worksheet.Cells["B1"].PutValue("Score"); + +// Data rows +worksheet.Cells["A2"].PutValue("Alice"); +worksheet.Cells["B2"].PutValue(85); +worksheet.Cells["A3"].PutValue("Bob"); +worksheet.Cells["B3"].PutValue(92); +``` + +لماذا نستخدم `PutValue`؟ فهو يكتشف نوع البيانات تلقائيًا (نص مقابل رقم) ويُنسق الخلية وفقًا لذلك، مما يوفر عليك التعامل مع كائنات `Style` في السيناريوهات البسيطة. + +> **المخرجات المتوقعة:** بعد هذه الخطوة، إذا فتحت المصنف في Excel سترى شبكة من عمودين مع رؤوس “Name” و “Score”، تليها صفان من البيانات. + +--- + +## الخطوة 3: تحويل النطاق إلى ListObject (جدول) + +هنا يحدث السحر: تحويل ذلك النطاق العادي إلى جدول Excel (المسمى **ListObject** في واجهة Aspose.Cells API). هذا لا يضيف فقط تنسيقًا بصريًا بل يتيح أيضًا ميزات مدمجة مثل الفرز، التصفية، والإشارات المهيكلة. + +```csharp +// Define the range boundaries. +// startRow and startColumn are zero‑based indexes. +// rowCount includes the header row. +int startRow = 0; // Row 1 in Excel +int startColumn = 0; // Column A +int rowCount = 3; // Header + 2 data rows +int columnCount = 2; // Two columns: Name & Score + +// Add a ListObject to the worksheet and retrieve the object. +int listIndex = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); +ListObject table = worksheet.ListObjects[listIndex]; + +// Turn on the UI filter dropdowns so users can interact with the table. +table.ShowAutoFilter = true; +``` + +> **لماذا نستخدم ListObject؟** +> - **الإشارات المهيكلة**: يمكن للمعادلات الإشارة إلى الأعمدة بالاسم. +> - **واجهة الفلتر التلقائي**: يحصل المستخدمون على أسهم منسدلة للفرز السريع. +> - **التنسيق**: يمكنك تطبيق أنماط جدول مدمجة بسطر واحد لاحقًا. + +--- + +## الخطوة 4: إزالة واجهة AutoFilter (حفظ Excel بدون فلتر) + +أحيانًا تحتاج إلى ورقة نظيفة بدون أسهم الفلترة – على سبيل المثال، عندما يكون المصنف تقريرًا نهائيًا. قدم Aspose.Cells 23.10 طريقة بسيطة لإزالة واجهة الفلتر بالكامل. + +```csharp +// Remove the filter UI completely. +table.AutoFilter = null; // Clears the underlying filter object. +table.ShowAutoFilter = false; // Hides the dropdown arrows. +``` + +لاحظ أننا لا نحذف البيانات؛ بل نُعطل فقط عناصر التحكم البصرية للفلتر. هذا يحقق متطلب **save excel without filter**. + +--- + +## الخطوة 5: حفظ المصنف + +أخيرًا، احفظ المصنف إلى القرص. سيحتوي الملف على الجدول ولكن بدون أي واجهة فلتر. + +```csharp +// Choose a folder you have write access to. +string outputPath = @"C:\Temp\NoAutoFilter.xlsx"; +workbook.Save(outputPath); +``` + +افتح `NoAutoFilter.xlsx` في Excel – سترى الجدول مُنسقًا بالتنسيق الافتراضي، ولكن بدون أسهم الفلترة. البيانات لا تزال موجودة، والملف جاهز للتوزيع. + +--- + +![لقطة شاشة تُظهر إنشاء جدول من نطاق في Excel باستخدام Aspose.Cells](image.png "لقطة شاشة لإنشاء جدول من نطاق") + +*نص بديل للصورة:* **لقطة شاشة تُظهر إنشاء جدول من نطاق في Excel باستخدام Aspose.Cells** – دليل بصري على أن الجدول موجود بدون قوائم الفلترة المنسدلة. + +--- + +## مثال كامل قابل للتنفيذ + +فيما يلي البرنامج الكامل الذي يمكنك نسخه ولصقه في تطبيق Console. يتضمن جميع الخطوات السابقة، بالإضافة إلى بعض التعليقات الإضافية للتوضيح. + +```csharp +using System; +using Aspose.Cells; + +namespace AsposeTableDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add data to cells – this is the “add data to cells” part. + worksheet.Cells["A1"].PutValue("Name"); + worksheet.Cells["B1"].PutValue("Score"); + worksheet.Cells["A2"].PutValue("Alice"); + worksheet.Cells["B2"].PutValue(85); + worksheet.Cells["A3"].PutValue("Bob"); + worksheet.Cells["B3"].PutValue(92); + + // 3️⃣ Convert the range into a ListObject (i.e., create table from range). + int startRow = 0, startColumn = 0, rowCount = 3, columnCount = 2; + int listIdx = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); + ListObject table = worksheet.ListObjects[listIdx]; + table.ShowAutoFilter = true; // optional UI filter + + // 4️⃣ Remove the AutoFilter UI – “save excel without filter”. + table.AutoFilter = null; + table.ShowAutoFilter = false; + + // 5️⃣ Save the workbook. + string filePath = @"C:\Temp\NoAutoFilter.xlsx"; + workbook.Save(filePath); + + Console.WriteLine($"Workbook saved to {filePath}"); + } + } +} +``` + +شغّل البرنامج، ثم افتح `C:\Temp\NoAutoFilter.xlsx`. سترى جدولًا منسقًا بشكل جميل، بدون أسهم فلترة، والبيانات التي أدخلناها. هذا هو سير عمل **create excel workbook c#** بالكامل في أقل من 60 سطرًا من الشيفرة. + +--- + +## الأسئلة المتكررة وحالات الحافة + +**س: ماذا لو لم يكن نطاق البيانات متجاورًا؟** +ج: يتطلب Aspose.Cells نطاقًا مستطيلًا لـ `ListObjects.Add`. إذا كان لديك بيانات غير متجاورة، أنشئ نطاقًا مؤقتًا أولاً (مثلاً، انسخ الأجزاء إلى ورقة عمل جديدة) ثم حوّل ذلك النطاق. + +**س: هل يمكنني تطبيق نمط جدول مخصص؟** +ج: بالتأكيد. بعد إنشاء `ListObject`، اضبط `table.TableStyleType = TableStyleType.TableStyleMedium9;` (أو أي من الأنماط الـ 65 المدمجة). هذه طريقة جيدة لجعل الجدول يتطابق مع هوية شركتك. + +**س: كيف أحافظ على الفلتر لكن أخفي الأسهم؟** +ج: منطق الفلتر موجود في `table.AutoFilter`. ضبط `ShowAutoFilter = false` يخفي الواجهة فقط؛ يظل الفلتر الأساسي فعالًا. لذا يمكنك الاستمرار في تصفية الصفوف برمجيًا لاحقًا. + +**س: ماذا عن مجموعات البيانات الكبيرة (أكثر من 10 آلاف صف)؟** +ج: نفس الـ API يعمل، لكن يُفضَّل إيقاف الحسابات التلقائية (`workbook.CalcEngine = false`) قبل الإدخالات الضخمة لتحسين الأداء، ثم تفعيلها بعد ذلك. + +--- + +## الخلاصة + +لقد غطينا الآن كيفية **create table from range** في C# باستخدام Aspose.Cells، خطوة بخطوة—من **create excel workbook c#**، مرورًا بـ **add data to cells**، إلى **convert range to ListObject**، وأخيرًا **save excel without filter**. الشيفرة كاملة، قابلة للتنفيذ، وجاهزة للإنتاج. + +Next, you might want to explore: + +- إضافة تنسيق شرطي لتسليط الضوء على أعلى الدرجات. +- تصدير المصنف إلى PDF باستخدام `workbook.Save("Report.pdf", SaveFormat.Pdf);`. +- استخدام `table.Columns["Score"].DataBodyRange.Sort` لفرز الجدول برمجيًا. + +لا تتردد في تجربة مجموعات بيانات مختلفة، أنماط جدول، أو حتى عدة أوراق عمل. الـ API مرن بما يكفي للتعامل مع أي شيء من لوحة نتائج صغيرة إلى دفتر حسابات مالي ضخم. + +هل لديك أسئلة أو واجهت مشكلة؟ اترك تعليقًا أدناه أو راسلني على GitHub. برمجة سعيدة، واستمتع بتحويل النطاقات الخام إلى جداول 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/chinese/net/conversion-to-pdf/_index.md b/cells/chinese/net/conversion-to-pdf/_index.md index 38539d1d91..a30d21081e 100644 --- a/cells/chinese/net/conversion-to-pdf/_index.md +++ b/cells/chinese/net/conversion-to-pdf/_index.md @@ -34,6 +34,8 @@ 使用 Aspose.Cells for .NET 轻松将 Excel 电子表格转换为 PDF!按照我们的分步指南,即可获得无缝体验。 ### [在.NET中将图表转换为PDF](./convert-chart-to-pdf/) 通过本分步指南,学习如何在 .NET 中使用 Aspose.Cells 将 Excel 图表转换为 PDF!适合所有级别的程序员。 +### [使用 Aspose.Cells 将工作簿保存为 PDF – 完整分步指南](./save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/) +通过本完整分步指南,学习如何使用 Aspose.Cells 将 Excel 工作簿保存为高质量的 PDF 文件。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/chinese/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md b/cells/chinese/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md new file mode 100644 index 0000000000..f39e31548b --- /dev/null +++ b/cells/chinese/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-03-30 +description: 学习如何使用 Aspose.Cells 将工作簿保存为 PDF。本教程还涵盖将工作表导出为 PDF、如何将 Excel 导出为 PDF,以及从工作表创建 + PDF。 +draft: false +keywords: +- save workbook as pdf +- export worksheet to pdf +- how to export excel to pdf +- save excel as pdf +- create pdf from worksheet +language: zh +og_description: 轻松将工作簿保存为 PDF。本指南展示了如何将工作表导出为 PDF、如何将 Excel 导出为 PDF,以及如何使用 C# 从工作表创建 + PDF。 +og_title: 使用 Aspose.Cells 将工作簿保存为 PDF – 完整指南 +tags: +- Aspose.Cells +- C# +- PDF generation +title: 使用 Aspose.Cells 将工作簿保存为 PDF – 完整的分步指南 +url: /zh/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 将工作簿保存为 PDF – 完整分步指南 + +是否曾经需要 **将工作簿保存为 pdf**,却不确定哪个库能够保持数字的精度?你并不孤单。在许多项目中,我们必须将 Excel 数据转换为精美的 PDF,而正确的做法可以节省大量调试时间。 + +在本教程中,我们将逐步演示使用 Aspose.Cells **将工作簿保存为 pdf** 的完整代码,并在此过程中展示如何 **导出工作表为 pdf**,回答 *如何将 excel 导出为 pdf* 的问题,以及演示一种使用自定义精度设置 **从工作表创建 pdf** 的简洁方法。 + +阅读完本指南后,你将拥有一个可直接运行的 C# 控制台应用程序,生成仅包含你关心的有效数字的 PDF。没有多余的内容,只有稳健、可投入生产的解决方案。 + +--- + +## 你将学到 + +- 如何创建一个新的 `Workbook` 并定位其第一个工作表。 +- 在保持数值精度的同时 **将工作簿保存为 pdf** 的确切方法。 +- 当你 **导出工作表为 pdf** 时,`SignificantDigits` 属性为何重要。 +- 在尝试 **如何将 excel 导出为 pdf** 时常见的陷阱以及规避方式。 +- 使用不同页面选项快速 **将 excel 保存为 pdf**,以及如何以编程方式 **从工作表创建 pdf**。 + +### 前置条件 + +- .NET 6.0 或更高版本(代码同样适用于 .NET Framework 4.5+)。 +- 有效的 Aspose.Cells 许可证(或用于测试的免费临时许可证)。 +- Visual Studio 2022 或任意支持 C# 的 IDE。 + +如果你已经具备以上条件,下面开始吧。 + +--- + +## 第一步 – 安装 Aspose.Cells 并初始化 Workbook + +首先,你需要 Aspose.Cells NuGet 包。在项目文件夹的终端中运行: + +```bash +dotnet add package Aspose.Cells +``` + +安装完包后,创建一个新的 `Workbook` 对象。这就是你随后会 **将工作簿保存为 pdf** 的对象。 + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialise a fresh workbook – think of it as a blank Excel file. + Workbook workbook = new Workbook(); + + // Grab the first worksheet (index 0). This is where we’ll put our data. + Worksheet worksheet = workbook.Worksheets[0]; +``` + +*为什么要这一步?* +创建工作簿为你提供了一块干净的画布,选择第一个工作表可以确保你在已知位置上操作。若跳过此步骤,后续 **导出工作表为 pdf** 时可能会出现 *null reference* 错误。 + +--- + +## 第二步 – 插入高精度数据 + +现在我们放入一个小数位数多于 PDF 中实际需要显示的数字。这演示了 `SignificantDigits` 设置如何裁剪输出。 + +```csharp + // Place a high‑precision number in cell A1. + worksheet.Cells["A1"].PutValue(1234.56789); +``` + +如果此时运行程序并直接调用 `workbook.Save("output.pdf")`,PDF 将显示完整的 `1234.56789`。这在某些场景下可以接受,但在财务报表等情况下,你通常需要四舍五入到特定的有效数字位数。 + +--- + +## 第三步 – 配置 PDF 保存选项 + +Aspose.Cells 通过 `PdfSaveOptions` 提供细粒度控制。我们关注的属性是 `SignificantDigits`。将其设为 `4` 表示在 **将工作簿保存为 pdf** 时仅保留四个有效数字。 + +```csharp + // Configure PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 // This trims the number to 1235 in the PDF. + }; +``` + +*为什么使用 `SignificantDigits`?* +在 **从工作表创建 pdf** 时,你常常需要遵循监管机构的四舍五入规则。此选项会自动完成四舍五入,无需手动为每个单元格设置格式。 + +--- + +## 第四步 – 使用选项导出工作表为 PDF + +关键时刻:我们使用刚才定义的选项实际 **将工作簿保存为 pdf**。 + +```csharp + // Save the workbook as a PDF using the configured options. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + } +} +``` + +运行程序后,会在项目的输出文件夹生成名为 `SignificantDigits.pdf` 的文件。打开它,你会看到单元格 A1 中显示 `1235` —— 数字已四舍五入为四个有效数字。 + +*要点提示:* `Save` 方法同时接受文件路径和 `PdfSaveOptions`。如果省略选项,将使用默认行为,可能无法满足你的精度需求。 + +--- + +## 第五步 – 验证输出并排查常见问题 + +### 预期结果 + +- 一个名为 `SignificantDigits.pdf` 的单页 PDF。 +- 单元格 A1 显示 `1235`(四个有效数字)。 +- 不会出现额外的工作表或隐藏内容。 + +### 常见问答 + +| 问题 | 答案 | +|----------|--------| +| **如果需要导出多个工作表怎么办?** | 遍历 `workbook.Worksheets`,在单独保存每个工作表时使用相同的 `PdfSaveOptions`,或在选项中设置 `OnePagePerSheet = true`。 | +| **能保留原始数字格式吗?** | 可以 – 将 `PdfSaveOptions.AllColumnsInOnePage = true`,让 Excel 的格式规则生效,但请注意 `SignificantDigits` 仍会覆盖数值精度。 | +| **这能处理已有的 .xlsx 文件吗?** | 完全可以。将 `new Workbook()` 替换为 `new Workbook("input.xlsx")`,其余代码保持不变。 | +| **如果生成的 PDF 是空白的怎么办?** | 确认工作簿中确实有数据且保存路径可写。同时确保已正确应用 Aspose.Cells 许可证;未授权的试用版可能会限制输出。 | + +### 专业提示 + +如果需要 **将 excel 保存为 pdf** 时指定页面方向,可在调用 `Save` 前设置 `pdfSaveOptions.PageSetup.Orientation = PageOrientation.Landscape;`。这个小技巧常常能避免后期手动调整 PDF。 + +--- + +## 变体:导出多个工作表或自定义页面设置 + +### 一次性导出所有工作表 + +```csharp +PdfSaveOptions allSheetsOptions = new PdfSaveOptions +{ + SignificantDigits = 4, + OnePagePerSheet = true // Each worksheet gets its own page. +}; + +workbook.Save("AllSheets.pdf", allSheetsOptions); +``` + +### 导出单个工作表为 PDF + +如果只想为特定工作表 **导出工作表为 pdf**,使用 `Worksheet` 对象的 `ToPdf` 方法: + +```csharp +Worksheet sheet = workbook.Worksheets["Sheet2"]; +sheet.ToPdf("Sheet2.pdf", pdfSaveOptions); +``` + +### 调整页面边距 + +```csharp +pdfSaveOptions.PageSetup.TopMargin = 20; +pdfSaveOptions.PageSetup.BottomMargin = 20; +``` + +这些微调让你在不进行后期处理的情况下,精准控制最终文档的外观。 + +--- + +## 完整示例代码 + +下面是完整的、可直接复制粘贴的程序,已整合本文所有内容。保存为 `Program.cs` 并运行 `dotnet run`。 + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and select the first worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Insert a high‑precision number. + worksheet.Cells["A1"].PutValue(1234.56789); + + // 3️⃣ Set PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 + }; + + // 4️⃣ Save the workbook as PDF. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + + // Optional: Export another sheet with custom settings. + // Worksheet sheet2 = workbook.Worksheets.Add("Report"); + // sheet2.Cells["B2"].PutValue(9876.54321); + // sheet2.ToPdf("Report.pdf", pdfSaveOptions); + } +} +``` + +**结果:** 打开 `SignificantDigits.pdf` – 你会看到四舍五入后的值 `1235`。文件体积适中,布局与原始 Excel 表保持一致。 + +--- + +## 结论 + +我们已经演示了如何使用 Aspose.Cells **将工作簿保存为 pdf**,涵盖了从基础设置到高级选项,如 **导出工作表为 pdf**、**如何将 excel 导出为 pdf**,以及使用精确数值控制的 **从工作表创建 pdf**。 + +该方法简洁,只需几行 C# 代码,且兼容所有 .NET 版本。接下来,你可以尝试添加页眉/页脚、嵌入图片,或从模板生成 PDF——这些都建立在你现在掌握的基础之上。 + +有什么想法想尝试?比如为 PDF 设置密码保护或合并多个 PDF。这些都是自然的扩展,Aspose.Cells API 已为你准备好。大胆实验,让库为你完成繁重的工作吧。 + +--- + +![save workbook as pdf screenshot](/images/save-workbook-as-pdf.png){alt="将工作簿保存为 pdf 示例,显示生成的 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/chinese/net/converting-excel-files-to-other-formats/_index.md b/cells/chinese/net/converting-excel-files-to-other-formats/_index.md index 70d87656b5..004d2c65cd 100644 --- a/cells/chinese/net/converting-excel-files-to-other-formats/_index.md +++ b/cells/chinese/net/converting-excel-files-to-other-formats/_index.md @@ -56,6 +56,8 @@ Aspose.Cells for .NET 简化了文档转换,允许开发人员自动化流程 学习如何在.NET中使用Aspose.Cells以编程方式将JSON转换为CSV。按照我们的分步指南,确保无缝数据转换。 ### [在.NET中以编程方式将Excel文件转换为PPTX](./converting-excel-file-to-pptx/) 通过本分步指南了解如何使用 Aspose.Cells for .NET 以编程方式将 Excel 文件转换为 PowerPoint 演示文稿 (PPTX)。 +### [在 .NET 中以编程方式从 Excel 创建 PowerPoint – 步骤详解 C# 指南](./create-powerpoint-from-excel-step-by-step-c-guide/) +本教程展示如何使用 Aspose.Cells for .NET 将 Excel 工作表转换为 PowerPoint 演示文稿,提供完整的 C# 代码示例和步骤说明。 ### [在 .NET 中以编程方式在输出 HTML 中指定 HTML CrossType](./specifying-html-crosstype-in-output-html/) 学习如何在 Aspose.Cells for .NET 中指定 HTML CrossType。按照我们的分步教程,将 Excel 文件精确转换为 HTML。 ### [在 .NET 中以编程方式读取数字电子表格](./reading-numbers-spreadsheet/) diff --git a/cells/chinese/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md b/cells/chinese/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md new file mode 100644 index 0000000000..3f4ef38ae5 --- /dev/null +++ b/cells/chinese/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md @@ -0,0 +1,251 @@ +--- +category: general +date: 2026-03-30 +description: 使用 Aspose.Cells 和 Aspose.Slides 快速从 Excel 创建 PowerPoint。学习如何将工作表导出为图像并在 + C# 中将演示文稿保存为 PPTX。 +draft: false +keywords: +- create powerpoint from excel +- convert excel to powerpoint +- export worksheet as image +- save presentation as pptx +- export excel chart as picture +language: zh +og_description: 使用 Aspose 在 C# 中从 Excel 创建 PowerPoint。将工作表导出为图像,保持形状可编辑,并将结果保存为 PPTX。 +og_title: 从Excel创建PowerPoint – 完整C#教程 +tags: +- Aspose +- C# +- Office Automation +title: 从 Excel 创建 PowerPoint – 步骤式 C# 指南 +url: /zh/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-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**,但不确定哪个库能够保持图表可编辑?你并不孤单。在许多报表场景中,你会希望将电子表格转换为幻灯片,而不会失去以后编辑文本框的能力。本指南将向你展示如何使用 Aspose.Cells 和 Aspose.Slides **将 Excel 转换为 PowerPoint**,并涵盖 **将工作表导出为图像** 以及最终 **将演示文稿保存为 PPTX** 的完整过程。 + +我们将逐行讲解代码,解释每个设置背后的原因,并讨论如果工作簿包含复杂图表且你更倾向于将其导出为图片时的处理方式。完成后,你将拥有一个可直接运行的 C# 控制台应用程序,它会读取 `ShapesDemo.xlsx` 并生成 `Result.pptx` —— 所有文本框均可编辑,图片清晰锐利。 + +## 你需要准备的环境 + +- .NET 6.0 或更高(API 也兼容 .NET Framework,但 .NET 6 是最佳选择)。 +- **Aspose.Cells** 与 **Aspose.Slides** NuGet 包(免费试用许可证即可用于测试)。 +- 对 C# 语法有基本了解 —— 只要会写 `Console.WriteLine`,就可以开始。 + +无需额外的 COM 互操作,也不需要在服务器上安装 Office,更不必手动复制粘贴图片。所有操作均通过代码完成。 + +--- + +## 从 Excel 创建 PowerPoint – 加载工作簿并设置导出选项 + +首先打开 Excel 文件,并告诉 Aspose.Cells 我们希望如何渲染工作表。`ImageOrPrintOptions` 对象正是实现魔法的地方:我们启用 `ExportShapes` 与 `ExportEditableTextBoxes`,这样任何形状(包括图表)都会成为幻灯片的一部分 **且** 在转换后仍保持可编辑。 + +```csharp +using Aspose.Cells; +using Aspose.Slides; + +// 1️⃣ Load the Excel workbook +string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; +Workbook workbook = new Workbook(excelPath); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first sheet + +// 2️⃣ Configure image export – keep shapes editable +ImageOrPrintOptions imageOptions = new ImageOrPrintOptions +{ + OnePagePerSheet = true, // Export the whole sheet as one slide + ExportShapes = true, // Include shapes (charts, drawings) + ExportEditableTextBoxes = true // Make text boxes editable in PPTX +}; +``` + +**为什么要设置这些标志?** +- `OnePagePerSheet` 防止工作表被拆分到多张幻灯片——只得到一张完整大小的图片。 +- `ExportShapes` 告诉 Aspose.Cells 对图表 *以及* 矢量形状进行光栅化,保留外观。 +- `ExportEditableTextBoxes` 是关键,它让你在 PowerPoint 中双击文本框即可编辑文字,而无需再次打开 Excel。 + +> **小技巧:** 如果你只需要图表的静态图片,可将 `ExportShapes = false`,随后使用后文的 `ExportExcelChartAsPicture` 方法(见最后一节)。 + +--- + +## 将 Excel 转换为 PowerPoint – 从工作表生成图像 + +准备好选项后,我们将工作表转换为 `System.Drawing.Image`。`WorksheetToImageConverter` 完成繁重的工作,使用我们刚才定义的设置。 + +```csharp +// 3️⃣ Convert the worksheet to an image using the options above +WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); +System.Drawing.Image sheetImage = converter.ConvertToImage(0, imageOptions); +``` + +`0` 参数表示第一页(由于 `OnePagePerSheet`,我们只有一页)。生成的 `sheetImage` 保留了原始 DPI,因此即使在高分辨率显示器上,幻灯片也不会出现像素化。 + +--- + +## 将演示文稿保存为 PPTX – 将图像插入幻灯片 + +接下来创建一个全新的 PowerPoint 文件,添加一张幻灯片,并将位图放置上去。Aspose.Slides 将图片视为 *图片框* 形状,后续你可以像操作任何原生 PowerPoint 对象一样对其进行缩放或移动。 + +```csharp +// 4️⃣ Create a new PowerPoint presentation +Presentation presentation = new Presentation(); +ISlide slide = presentation.Slides[0]; // The default blank slide + +// Add the Excel‑derived image as a picture frame +slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, // Simple rectangle container + 0, 0, // Top‑left corner (0,0) + sheetImage.Width, // Width of the picture + sheetImage.Height, // Height of the picture + sheetImage); // The bitmap we generated +``` + +> **如果图像大于幻灯片尺寸怎么办?** +> PowerPoint 会自动裁剪超出幻灯片范围的部分。快速解决办法是先缩放图像再插入: + +```csharp +float scale = Math.Min(presentation.SlideSize.Size.Width / (float)sheetImage.Width, + presentation.SlideSize.Size.Height / (float)sheetImage.Height); +int newWidth = (int)(sheetImage.Width * scale); +int newHeight = (int)(sheetImage.Height * scale); +``` + +随后将 `newWidth` 与 `newHeight` 传递给 `AddPictureFrame` 即可。 + +--- + +## 将工作表导出为图像 – 保存 PPTX 文件 + +最后将演示文稿写入磁盘。`SaveFormat.Pptx` 标志确保使用现代的 OpenXML 格式,兼容所有近期版本的 PowerPoint。 + +```csharp +// 5️⃣ Save the presentation as a PPTX file +string pptxPath = "YOUR_DIRECTORY/Result.pptx"; +presentation.Save(pptxPath, SaveFormat.Pptx); +``` + +打开 `Result.pptx` 时,你会看到一张与 Excel 工作表完全相同的幻灯片,但仍然可以直接在 PowerPoint 中点击任意文本框并编辑其内容。 + +--- + +## 将 Excel 图表导出为图片 – 当需要光栅图像时 + +有时你并不需要可编辑的形状,只要一张高质量的 PNG 图表即可。Aspose.Cells 可以仅将指定图表导出为图片,而无需转换整张工作表: + +```csharp +// Example: Export the first chart on the sheet as a PNG +int chartIndex = 0; // Adjust if you have multiple charts +Chart chart = worksheet.Charts[chartIndex]; +ImageOrPrintOptions chartOptions = new ImageOrPrintOptions +{ + ImageFormat = ImageFormat.Png, + OnePagePerSheet = false +}; +chart.ToImage("chart.png", chartOptions); +``` + +随后你可以像插入 `sheetImage` 那样将 `chart.png` 嵌入幻灯片。此方式可减小 PPTX 文件体积,并在幻灯片不需要周围数据时特别有用。 + +--- + +## 常见陷阱及规避方法 + +| 问题 | 产生原因 | 解决方案 | +|------|----------|----------| +| **文字模糊** | 导出时 DPI 过低(默认 96)。 | 在转换前设置 `imageOptions.Dpi = 300;`。 | +| **形状消失** | `ExportShapes` 为 `false`。 | 需要可编辑图形时确保 `ExportShapes = true`。 | +| **幻灯片尺寸不匹配** | 图像尺寸大于幻灯片尺寸。 | 缩放图像(参见代码片段)或通过 `presentation.SlideSize` 调整幻灯片大小。 | +| **许可证异常** | 使用试用版未正确激活。 | 在 `Main` 方法开头调用 `License license = new License(); license.SetLicense("Aspose.Total.lic");`。 | + +--- + +## 完整可运行示例(复制粘贴即用) + +下面是完整程序代码,可直接粘贴到新的控制台项目中。将 `YOUR_DIRECTORY` 替换为存放 Excel 文件的文件夹路径。 + +```csharp +using System; +using Aspose.Cells; +using Aspose.Slides; +using System.Drawing; + +namespace ExcelToPowerPointDemo +{ + class Program + { + static void Main(string[] args) + { + // ----------------------------------------------------------------- + // 1️⃣ Load the Excel workbook + // ----------------------------------------------------------------- + string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; + Workbook workbook = new Workbook(excelPath); + Worksheet worksheet = workbook.Worksheets[0]; + + // ----------------------------------------------------------------- + // 2️⃣ Set up export options – keep shapes editable + // ----------------------------------------------------------------- + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + OnePagePerSheet = true, + ExportShapes = true, + ExportEditableTextBoxes = true, + Dpi = 300 // High‑resolution output + }; + + // ----------------------------------------------------------------- + // 3️⃣ Convert worksheet to an image + // ----------------------------------------------------------------- + WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); + Image sheetImage = converter.ConvertToImage(0, imageOptions); + + // ----------------------------------------------------------------- + // 4️⃣ Create PowerPoint and add the image as a slide + // ----------------------------------------------------------------- + Presentation presentation = new Presentation(); + ISlide slide = presentation.Slides[0]; + slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, + 0, 0, + sheetImage.Width, + sheetImage.Height, + sheetImage); + + // ----------------------------------------------------------------- + // 5️⃣ Save the PPTX file + // ----------------------------------------------------------------- + string pptxPath = "YOUR_DIRECTORY/Result.pptx"; + presentation.Save(pptxPath, SaveFormat.Pptx); + + Console.WriteLine("✅ PowerPoint created successfully at: " + pptxPath); + } + } +} +``` + +**预期输出:** +运行程序后会在控制台打印 `✅ PowerPoint created successfully at: YOUR_DIRECTORY/Result.pptx`。打开该 PPTX 文件,你会看到一张与原始 Excel 工作表相同的幻灯片,且文本框仍可编辑。 + +--- + +## 小结与后续 + +现在你已经掌握了使用 Aspose 强大 API **从 Excel 创建 PowerPoint**、**将工作表导出为图像**、以及 **保存为 PPTX** 并保持可编辑性的完整流程。同样的模式也适用于多工作表的工作簿——只需遍历 `workbook.Worksheets`,为每个工作表添加新幻灯片即可。 + +**接下来可以探索的方向:** + +- **批量转换:** 遍历文件夹中的 Excel 文件,为每个文件生成对应的幻灯片套件。 +- **动态布局:** 使用 `slide.LayoutSlide` 应用预设的 PowerPoint 模板。 +- **仅导出图表:** 将 “将 Excel 图表导出为图片” 代码片段与幻灯片占位符结合,生成更精简的演示文稿。 +- **高级样式:** 通过 Aspose.Slides 为幻灯片添加自定义背景、切换效果或动画。 + +尽情实验吧——修改 DPI、将 `ShapeType.Ellipse` 换成圆形图片框,甚至在同一幻灯片中嵌入多张图片。当你拥有编程化的控制权时,创意的边界只有想象力。 + +{{< /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/chinese/net/document-properties/_index.md b/cells/chinese/net/document-properties/_index.md index 572a7a5b20..b220d2d1fa 100644 --- a/cells/chinese/net/document-properties/_index.md +++ b/cells/chinese/net/document-properties/_index.md @@ -35,6 +35,8 @@ Excel 中的文档属性就像文件的元数据一样。想象一下:每个 E 通过我们的分步指南,学习如何使用 Aspose.Cells for .NET 访问 Excel 中的文档属性。高效管理您的电子表格。 ### [在 .NET 中添加文档属性](./adding-document-properties/) 通过本详细的分步指南了解如何使用 Aspose.Cells for .NET 在 Excel 中添加文档属性。 +### [如何在 C# 中保存带自定义属性的 XLSB – 步骤指南](./how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/) +通过本分步指南,学习如何使用 Aspose.Cells for .NET 在 C# 中将自定义属性保存到 XLSB 文件。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/chinese/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md b/cells/chinese/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md new file mode 100644 index 0000000000..a5276980db --- /dev/null +++ b/cells/chinese/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md @@ -0,0 +1,234 @@ +--- +category: general +date: 2026-03-30 +description: 学习如何在 C# 中保存 XLSB,同时添加自定义属性、读取该属性,并掌握使用 Aspose.Cells 将工作簿保存为 XLSB 的技巧。完整代码已附。 +draft: false +keywords: +- how to save xlsb +- add custom property +- how to add property +- how to read property +- save workbook as xlsb +language: zh +og_description: 如何在 C# 中保存 XLSB?本教程展示了如何添加自定义属性、读取该属性,并使用 Aspose.Cells 将工作簿保存为 XLSB。 +og_title: 如何在 C# 中保存带自定义属性的 XLSB – 完整指南 +tags: +- Aspose.Cells +- C# +- Excel Automation +title: 如何在 C# 中保存带有自定义属性的 XLSB – 步骤指南 +url: /zh/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何在 C# 中保存带有自定义属性的 XLSB – 步骤指南 + +是否曾想过 **如何保存 XLSB** 并在工作表上保留额外的元数据?你并不是唯一有此需求的人。在许多企业场景中,你需要一个二进制的 Excel 文件,同时还能携带自己的键/值对——比如合同编号、处理标记或版本标签。 + +好消息是 Aspose.Cells 让这变得轻而易举。在本指南中,你将看到如何添加自定义属性、持久化它,然后读取它,同时 **将工作簿保存为 XLSB**。没有模糊的说明,只有完整、可运行的示例,直接可以放入你的项目中使用。 + +## 你将收获的内容 + +- 一个全新从零创建的 `.xlsb` 文件。 +- 能够 **向工作表添加自定义属性**。 +- 演示在文件重新加载后 **如何读取属性** 的代码。 +- 关于在 **将工作簿保存为 XLSB** 时可能遇到的坑的提示。 + +> **先决条件:** .NET 6+(或 .NET Framework 4.6+),Visual Studio(或任意 C# IDE),以及通过 NuGet 安装的 Aspose.Cells for .NET 库。除此之外无需其他东西。 + +--- + +## 步骤 1:设置项目并创建新工作簿 + +首先——让我们先准备一个干净的工作簿对象。 + +```csharp +using Aspose.Cells; +using System; + +// Initialize a new workbook; this will be an in‑memory Excel file. +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0) – it’s created automatically. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +*为什么这很重要:* `Workbook` 是 Aspose.Cells 中所有操作的入口。通过从全新实例开始,你可以避免后续可能破坏自定义元数据的隐藏状态。 + +--- + +## 步骤 2:**添加自定义属性** 到工作表 + +现在我们将在此工作表上附加一个仅存在于该表的键/值对。 + +```csharp +// Add a user‑defined property called "MyProperty" with the value "CustomValue". +worksheet.CustomProperties.Add("MyProperty", "CustomValue"); +``` + +> **专业提示:** 属性名称区分大小写。如果你之后尝试获取 `"myproperty"`,会抛出 `KeyNotFoundException`。从一开始就遵循命名约定——camelCase 或 PascalCase。 + +--- + +## 步骤 3:**将工作簿保存为 XLSB** – 持久化属性 + +当你将工作簿写入二进制 XLSB 格式时,魔法就会发生。 + +```csharp +// Define the output path. Adjust the folder to something writable on your machine. +string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + +// Save the workbook; the custom property travels with the file. +workbook.Save(outputPath, SaveFormat.Xlsb); +``` + +*你实际在做的事:* `SaveFormat.Xlsb` 枚举指示 Aspose.Cells 输出二进制 Excel 文件(打开更快,磁盘占用更小)。所有工作表级别的自定义属性会自动序列化——无需额外步骤。 + +--- + +## 步骤 4:重新加载文件并 **读取属性** + +让我们验证属性在往返过程中是否仍然存在。 + +```csharp +// Load the just‑saved XLSB file back into memory. +Workbook reloadedWorkbook = new Workbook(outputPath); + +// Access the same worksheet (index 0) and fetch the property value. +string customValue = reloadedWorkbook.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); +``` + +如果一切顺利,`customValue` 现在保存着 `"CustomValue"`。 + +--- + +## 步骤 5:验证结果 – 快速控制台输出 + +在开发过程中,一个小的合理性检查会很有帮助。 + +```csharp +Console.WriteLine($"Custom property value: {customValue}"); +``` + +运行程序后应输出: + +``` +Custom property value: CustomValue +``` + +看到这行输出意味着你已经成功掌握了 **如何保存 XLSB**、**添加自定义属性** 以及 **如何读取属性**——全部在一个整洁的流程中完成。 + +--- + +## 完整可运行示例(复制粘贴即可) + +下面是完整程序。将其粘贴到新的控制台应用程序中,按 **F5**,即可在控制台看到属性值的确认。 + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // 1️⃣ Create a new workbook and get its first sheet + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // 2️⃣ Add a custom property (key/value) to the sheet + // ------------------------------------------------- + worksheet.CustomProperties.Add("MyProperty", "CustomValue"); + + // ------------------------------------------------- + // 3️⃣ Save the workbook as XLSB – the property is kept + // ------------------------------------------------- + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(outputPath, SaveFormat.Xlsb); + + // ------------------------------------------------- + // 4️⃣ Reload the saved file to demonstrate persistence + // ------------------------------------------------- + Workbook reloaded = new Workbook(outputPath); + + // ------------------------------------------------- + // 5️⃣ Retrieve the custom property's value + // ------------------------------------------------- + string customValue = reloaded.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); + + // ------------------------------------------------- + // 6️⃣ Display the retrieved value (optional) + // ------------------------------------------------- + Console.WriteLine($"Custom property value: {customValue}"); + } +} +``` + +> **请记住:** 将 `outputPath` 更改为你有写入权限的文件夹。如果你在 Linux/macOS 上,使用类似 `"/tmp/WithCustomProp.xlsb"` 的路径。 + +--- + +## 常见问题与边缘情况 + +### 如果属性已经存在怎么办? + +对已有键调用 `Add` 会抛出 `ArgumentException`。如果不确定,可使用 `ContainsKey` 检查或将调用包裹在 `try/catch` 中。 + +```csharp +if (!worksheet.CustomProperties.ContainsKey("MyProperty")) +{ + worksheet.CustomProperties.Add("MyProperty", "AnotherValue"); +} +``` + +### 我可以存储非字符串值吗? + +当然可以。`Value` 属性接受任意 `object`。对于数字、日期或布尔值,只需传入相应的类型——Aspose.Cells 在读取时会处理转换。 + +### 将文件转换为 XLSX 时属性会保留吗? + +会。自定义属性是工作表 XML 表示的一部分,因此在 XLSX、XLS 和 XLSB 格式之间都会保留。 + +### 如何 **向多个工作表添加属性**? + +遍历 `Worksheets` 集合,对每个需要的工作表调用相同的 `CustomProperties.Add`。 + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + ws.CustomProperties.Add("ExportedBy", "MyApp"); +} +``` + +### 大批量 **将工作簿保存为 XLSB** 时的性能提示 + +如果要生成数百个文件,重复使用同一个 `Workbook` 实例,并在每次保存后调用 `Clear` 释放内存。如果不需要在加载时计算公式,还可以将 `Workbook.Settings.CalculateFormulaOnOpen = false`。 + +--- + +## 结论 + +现在你已经了解了如何在 C# 中 **保存 XLSB**,并使用 Aspose.Cells 嵌入以及随后检索自定义属性。完整的解决方案——创建工作簿、添加属性、使用 **将工作簿保存为 XLSB** 持久化、重新加载并读取值——代码行数不足 50 行。 + +接下来,你可以探索: + +- 为每个工作表添加多个自定义属性。 +- 通过 JSON 字符串存储复杂对象。 +- 对 XLSB 文件进行加密以提升安全性。 + +尝试这些想法,你很快就会成为团队中 Excel 自动化的首选专家。如有疑问或遇到棘手场景,欢迎在下方留言,祝编码愉快! + +![如何使用自定义属性保存 XLSB](/images/how-to-save-xlsb.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/chinese/net/excel-copy-worksheet/_index.md b/cells/chinese/net/excel-copy-worksheet/_index.md index 112ff03509..b6a7af9746 100644 --- a/cells/chinese/net/excel-copy-worksheet/_index.md +++ b/cells/chinese/net/excel-copy-worksheet/_index.md @@ -42,6 +42,7 @@ Aspose.Cells for .NET 提供了强大的 Excel 文件操作功能,包括复制 | [Excel 复制工作表](./excel-copy-worksheet/) 学习如何使用 Aspose.Cells for .NET 复制 Excel 工作表,本指南简单易懂。非常适合希望自动化 Excel 任务的 .NET 开发人员。| | [Excel 在工作簿之间复制工作表](./excel-copy-worksheets-between-workbooks/) 学习如何使用 Aspose.Cells for .NET 在 Excel 工作簿之间复制工作表。本指南包含代码示例,旨在简化您的电子表格管理。| | [Excel 移动工作表](./excel-move-worksheet/) 在我们的分步指南中学习如何使用 Aspose.Cells for .NET 在 Excel 中移动工作表。掌握 Excel 编程的艺术。| +| [使用 Aspose.Cells 在 C# 中复制工作表 – 完整指南](./how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/) 本完整指南详细演示如何在 C# 中使用 Aspose.Cells 复制 Excel 工作表,包含代码示例和最佳实践。| {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/chinese/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md b/cells/chinese/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md new file mode 100644 index 0000000000..f13ca7c7ac --- /dev/null +++ b/cells/chinese/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md @@ -0,0 +1,284 @@ +--- +category: general +date: 2026-03-30 +description: 如何在 C# 中使用 Aspose.Cells 复制工作表 – 步骤指南,涵盖复制单元格范围、在工作表之间复制列、复制工作表透视表以及添加新工作表的代码。 +draft: false +keywords: +- how to copy worksheet +- copy cell range +- copy columns between sheets +- copy worksheet pivot table +- add new worksheet code +language: zh +og_description: 学习如何使用 Aspose.Cells 在 C# 中复制工作表。本指南展示了复制单元格范围、保留数据透视表、在工作表之间复制列以及添加新工作表的代码。 +og_title: 如何在 C# 中复制工作表 – 完整的 Aspose.Cells 教程 +tags: +- Aspose.Cells +- C# +- Excel Automation +title: 如何在 C# 中使用 Aspose.Cells 复制工作表 – 完整指南 +url: /zh/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何在 C# 中使用 Aspose.Cells 复制工作表 – 完整指南 + +是否曾经想过 **如何复制工作表** 而不丢失任何数据透视表或公式?你并不孤单——很多开发者在需要复制工作表并保持所有内容完整时都会卡住。在本教程中,我们将一步步演示一个实用的端到端解决方案,不仅复制数据,还能保留 **复制工作表的数据透视表**,处理 **复制单元格范围**,并展示你需要的 **添加新工作表代码**。 + +我们将从加载源工作簿到保存目标文件的整个过程全部覆盖,这样你就可以在工作表之间复制列,保留对象,并保持代码整洁。没有模糊的引用,只有完整、可直接运行的示例,今天就可以放进你的项目中使用。 + +## 本教程涵盖内容 + +- 使用 Aspose.Cells 加载已有的 Excel 文件 +- 使用 **添加新工作表代码** 创建目标工作表 +- 定义包含数据透视表的 **复制单元格范围** +- 设置 **CopyOptions** 以保持图表、公式和数据透视表完整 +- 执行 **在工作表之间复制列**,实现逐行精确复制 +- 保存结果并验证工作表是否正确复制 + +阅读完本指南后,你将能够自信地回答 “如何复制工作表” 这一问题,无论是自动化报表还是构建基于电子表格的 UI。 + +--- + +## 如何复制工作表 – 概览 + +在深入代码之前,先梳理一下高层流程。把它想象成一道食谱: + +1. **加载** 源工作簿 (`Source.xlsx`)。 +2. **添加** 一个全新的工作表来存放副本(**添加新工作表代码**)。 +3. **定义** 需要复制的区域(**复制单元格范围**)。 +4. **配置** 复制选项,使数据透视表能够保留下来(**复制工作表的数据透视表**)。 +5. **复制** 行和列(**在工作表之间复制列**)。 +6. **保存** 新工作簿 (`Destination.xlsx`)。 + +就是这么简单——六个步骤,没有魔法。每一步下面都有代码片段和背后的原理说明。 + +--- + +## 第一步 – 加载源工作簿 + +首先,你需要一个指向要复制文件的 `Workbook` 实例。这一步至关重要,因为 Aspose.Cells 直接操作文件系统,而不是 Office UI。 + +```csharp +using Aspose.Cells; + +// Path to the original file +string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; +string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + +// Load the workbook – this is the starting point for how to copy worksheet +Workbook workbook = new Workbook(sourcePath); +``` + +*为什么重要:* 加载文件会在内存中创建每个工作表、单元格和对象的表示。如果没有这一步,就没有可复制的内容,后续的 `添加新工作表代码` 也会因缺少源数据而失败。 + +--- + +## 第二步 – 添加新工作表(添加新工作表代码) + +现在我们需要一个位置来粘贴复制的数据。这时 **添加新工作表代码** 派上用场。工作表名称可以随意,这里我们命名为 `"Copy"`。 + +```csharp +// Grab the first worksheet (the one we want to copy) +Worksheet sourceSheet = workbook.Worksheets[0]; + +// Add a fresh worksheet to receive the copy +Worksheet copySheet = workbook.Worksheets.Add("Copy"); +``` + +*小技巧:* 如果需要复制多个工作表,可以在循环中调用 `Worksheets.Add` 并为每个工作表分配唯一名称。这样可以避免名称冲突,让工作簿保持整洁。 + +--- + +## 第三步 – 定义复制单元格范围 + +**复制单元格范围** 告诉 Aspose.Cells 要复制哪些行列。在很多实际场景中,这个范围会包含数据透视表,所以必须精准指定。 + +```csharp +// Define the area that contains the pivot table (A1:G20) +CellArea sourceRange = new CellArea +{ + StartRow = 0, // Row 1 (zero‑based) + StartColumn = 0, // Column A + EndRow = 19, // Row 20 + EndColumn = 6 // Column G +}; + +// Destination range – we start at the same top‑left corner +CellArea destinationRange = new CellArea +{ + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 +}; +``` + +*为什么需要这一步:* 明确声明范围可以避免复制整张工作表(这会浪费资源),并确保数据透视表位于复制的区域内。这是实现 **如何复制工作表** 时,只复制部分内容的关键。 + +--- + +## 第四步 – 设置复制选项(保留复制工作表的数据透视表) + +Aspose.Cells 提供了 `CopyOptions` 对象,用来控制粘贴的内容。为了保留数据透视表、图表和公式,我们将 `PasteType` 设置为 `All` 并启用 `PasteSpecial`。 + +```csharp +CopyOptions copyOptions = new CopyOptions +{ + PasteType = PasteType.All, // Copy everything: values, formats, objects + PasteSpecial = true // Enable special paste to retain pivot tables +}; +``` + +*说明:* `PasteType.All` 是最全面的选项,而 `PasteSpecial` 则指示引擎正确处理像数据透视表这样的复杂对象。跳过这一步是常见的陷阱,复制后的工作表会失去交互功能。 + +--- + +## 第五步 – 复制行和列(在工作表之间复制列) + +下面进入核心:真正搬运数据。我们将使用 `CopyRows` 和 `CopyColumns` 来实现 **在工作表之间复制列**。两者一起使用可以保证合并单元格和列宽也被保留。 + +```csharp +// Copy rows from the source to the destination sheet +sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + +// Copy columns from the source to the destination sheet +sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); +``` + +*正在发生什么:* `CopyRows` 按行复制数据,`CopyColumns` 按列复制。两者同时执行可确保整个矩形块被完整复制,这在需要 **在工作表之间复制列** 且列宽或隐藏列不同的情况下尤为重要。 + +--- + +## 第六步 – 保存工作簿 + +最后,将更改写回磁盘。这一步完成了 **如何复制工作表** 的全部流程。 + +```csharp +// Save the workbook with the newly copied sheet +workbook.Save(destinationPath); +``` + +*验证小贴士:* 打开 `Destination.xlsx`,检查 `"Copy"` 工作表是否与原始工作表完全一致,数据透视表是否可用,列宽是否匹配。如有异常,请回顾 `CopyOptions` 设置。 + +--- + +## 边缘情况与常见变体 + +### 复制多个工作表 + +如果需要复制多张工作表,可将上述逻辑放入 `foreach` 循环: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + Worksheet newWs = workbook.Worksheets.Add(ws.Name + "_Copy"); + // Re‑use sourceRange/destinationRange or calculate per sheet + // Then call CopyRows/CopyColumns as shown earlier +} +``` + +### 在不同工作簿之间保留公式 + +当源工作簿和目标工作簿的命名范围不同,除了 `All` 之外,还可以将 `copyOptions` 设置为 `PasteType.Formulas`: + +```csharp +copyOptions.PasteType = PasteType.All | PasteType.Formulas; +``` + +### 大范围数据与性能 + +对于极大数据集(数十万行),可以仅使用 `CopyRows`,如果列宽不重要则跳过 `CopyColumns`。这样可以节省几秒钟的执行时间。 + +--- + +## 完整可运行示例 + +下面是完整、可直接运行的程序示例,涵盖了本文所有要点。将其粘贴到控制台应用程序中,修改文件路径后按 **F5** 运行。 + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // ---------- Step 1: Load the source workbook ---------- + string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; + string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + Workbook workbook = new Workbook(sourcePath); + + // ---------- Step 2: Add a new worksheet (add new worksheet code) ---------- + Worksheet sourceSheet = workbook.Worksheets[0]; + Worksheet copySheet = workbook.Worksheets.Add("Copy"); + + // ---------- Step 3: Define the copy cell range ---------- + CellArea sourceRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + CellArea destinationRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + + // ---------- Step 4: Set copy options (preserve copy worksheet pivot table) ---------- + CopyOptions copyOptions = new CopyOptions + { + PasteType = PasteType.All, + PasteSpecial = true + }; + + // ---------- Step 5: Copy rows and columns (copy columns between sheets) ---------- + sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + + sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); + + // ---------- Step 6: Save the workbook ---------- + workbook.Save(destinationPath); + } +} +``` + +**预期结果:** 打开 `Destination.xlsx`,会看到一个名为 **Copy** 的工作表,它完整复制了 `Source.xlsx` 的第一张工作表,包括所有数据透视表、格式和列宽。原始文件保持不变。 + +--- + +## 常见问答 + +**问:这段代码能处理 Excel 2019 创建的 .xlsx 文件吗?** +答:完全可以。Aspose.Cells 支持所有现代 Excel 格式,代码同样适用于 `.xlsx`、`.xlsm`,甚至更旧的 `.xls` 文件。 + +{{< /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/chinese/net/excel-custom-number-date-formatting/_index.md b/cells/chinese/net/excel-custom-number-date-formatting/_index.md index 1ade0a4838..9500c23357 100644 --- a/cells/chinese/net/excel-custom-number-date-formatting/_index.md +++ b/cells/chinese/net/excel-custom-number-date-formatting/_index.md @@ -21,7 +21,7 @@ ## 检查单元格值是否采用特定的自定义数字格式 -您是否曾担心单元格的值是否符合某种自定义数字格式?想象一下,您正在处理财务记录,准确性至关重要。使用 Aspose.Cells,您可以轻松检查单元格值是否符合预定义格式。此功能可以避免错误并确保数据的一致性。 +您是否曾担心单元格的值是否符合某种自定义数字格式?想象一下,您正在处理财务记录,准确性至关重要。使用 Aspose.Cells,您可以轻松检查单元格值是否符合预定义格式设置条件。此功能可以避免错误并确保数据的一致性。 在我们的教程中,您将学习如何实现一个简单的代码片段,用于验证单元格是否符合您的自定义格式设置条件。我们将逐步指导您完成整个过程,并提供可根据您的项目进行调整的代码示例。有具体的用例吗?我们详细的讲解将帮助您应对各种场景,确保您能够广泛地运用这些知识。 [阅读更多](./check-if-a-cell-value-is-in-a-specific-custom-number-format/) @@ -36,6 +36,10 @@ 通过本分步教程学习如何使用 Aspose.Cells for .NET 根据自定义数字格式检查 Excel 单元格值。 ### [将数据导入 Excel 工作表时指定公式字段](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) 在本详细教程中了解如何使用 Aspose.Cells for .NET 将数据导入具有指定公式字段的 Excel 工作表。 +### [在 C# 中使用分隔符格式化数字 – 完整 Aspose.Cells 指南](./format-number-with-separator-in-c-complete-aspose-cells-guid/) +通过本完整指南学习如何在 C# 中使用 Aspose.Cells 为数字添加分隔符。 +### [从 Excel 格式化 ISO 日期 – 完整 C# 指南](./format-date-iso-from-excel-complete-c-guide/) +通过本完整指南学习如何在 C# 中使用 Aspose.Cells 将 Excel 日期转换为 ISO 格式。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/chinese/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md b/cells/chinese/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..bf1e98a3f9 --- /dev/null +++ b/cells/chinese/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md @@ -0,0 +1,216 @@ +--- +category: general +date: 2026-03-30 +description: 学习如何在读取 Excel 日期时间值时将日期格式化为 ISO,并使用 Aspose.Cells 在 C# 中提取 Excel 日期时间数据。 +draft: false +keywords: +- format date iso +- read excel datetime +- extract datetime excel +- Aspose.Cells date parsing +- Japanese era dates +language: zh +og_description: 使用 Aspose.Cells 将 Excel 数据的日期格式化为 ISO。本指南展示了如何读取 Excel 日期时间、提取 Excel + 日期时间值,并输出 ISO 日期。 +og_title: 将 Excel 中的日期格式化为 ISO – 步骤详解 C# 教程 +tags: +- C# +- Excel +- DateTime +- Aspose.Cells +title: 从 Excel 将日期格式化为 ISO – 完整 C# 指南 +url: /zh/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 从 Excel 格式化 ISO 日期 – 完整 C# 指南 + +是否曾在从 Excel 表格中提取日期时需要 **format date iso**?也许你要处理日本纪元日期,或只是想得到一个干净的 `yyyy‑MM‑dd` 字符串用于 API 负载。在本教程中,你将看到如何 **read Excel datetime** 单元格、**extract datetime Excel** 值,并将其转换为 ISO‑8601 格式——无需猜测。 + +我们将通过一个真实案例演示使用 Aspose.Cells,解释每行代码的意义,并展示可以直接复制到项目中的最终输出。完成后,你将能够处理像 “令和3年5月1日” 这样的特殊纪元字符串,并生成标准的 ISO 日期,适用于数据库、JSON 或任何需要的场景。 + +## 前置条件 + +- .NET 6.0 或更高版本(代码同样适用于 .NET Framework) +- Aspose.Cells for .NET(免费试用版或正式授权版) +- 对 C# 和 Excel 基础概念有基本了解 +- Visual Studio 或任意你喜欢的 C# 编辑器 + +除 Aspose.Cells 外无需额外的 NuGet 包,设置相当简洁。 + +--- + +## 第一步:创建 Workbook 并定位到第一个工作表 + +首先需要实例化一个新的 `Workbook` 对象。这会在内存中创建一个 Excel 文件的表示,随后可以对其进行操作或读取。 + +```csharp +using Aspose.Cells; +using System.Globalization; + +// Step 1: Initialize a new workbook and grab the first worksheet +Workbook workbook = new Workbook(); // creates an empty .xlsx +Worksheet worksheet = workbook.Worksheets[0]; // the default sheet is "Sheet1" +``` + +*为什么重要:* +以编程方式创建工作簿可以避免在测试期间处理物理文件。同时也确保工作表引用始终有效——后续 **read Excel datetime** 时不会出现空引用异常。 + +--- + +## 第二步:向单元格写入日本纪元日期字符串 + +我们的目标是演示解析非公历日期。我们将在单元格 **A1** 中直接放入纪元字符串。 + +```csharp +// Step 2: Insert a Japanese era date string into cell A1 +worksheet.Cells["A1"].PutValue("令和3年5月1日"); +``` + +*小技巧:* 如果你是从已有工作簿中读取数据,则可以跳过 `PutValue` 调用,直接引用已经包含日期的单元格。关键是该单元格保存的是一个 **string**,其内容是日本阴阳历的日期表示。 + +--- + +## 第三步:配置能够识别日本阴阳历的 Culture + +.NET 的 `CultureInfo` 类允许你指定日期的解释方式。通过将默认的公历替换为 `JapaneseLunisolarCalendar`,即可为解析器提供所需的上下文。 + +```csharp +// Step 3: Set up a culture using the Japanese lunisolar calendar +CultureInfo japaneseCulture = new CultureInfo("ja-JP"); +japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); +``` + +*这样做的原因:* +如果使用默认文化去解析 “令和3年5月1日”,.NET 会抛出 `FormatException`。切换到阴阳历后,运行时就能把 “令和3年”(即 Reiwa 纪元第 3 年)映射到公历的 2021 年。 + +--- + +## 第四步:使用配置好的 Culture 将单元格值解析为 `DateTime` + +接下来就是核心操作——将纪元字符串转换为标准的 `DateTime` 对象。Aspose.Cells 提供了接受 `CultureInfo` 参数的 `GetDateTime` 重载,使用起来非常方便。 + +```csharp +// Step 4: Retrieve the cell value as a DateTime, respecting the Japanese culture +DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); +``` + +*内部工作原理:* +`GetDateTime` 读取原始字符串,应用提供的文化日历规则,并返回一个在公历中对应同一时刻的 `DateTime`。这一步正是 **extract datetime Excel** 数据并在 .NET 中可用的关键环节。 + +--- + +## 第五步:以 ISO 8601 格式输出解析后的日期 + +最后,我们将 `DateTime` 格式化为 ISO 字符串——`yyyy‑MM‑dd`——这在 API、数据库和前端框架中被普遍接受。 + +```csharp +// Step 5: Print the date in ISO format (e.g., 2021-05-01) +Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // Output: 2021-05-01 +``` + +*为什么选 ISO?* +ISO 8601 消除了歧义。比如 “05/01/2021” 在不同地区可能是 5 月 1 日或 1 月 5 日,而 `2021-05-01` 则一目了然,这也是我们在几乎所有集成场景中 **format date iso** 的原因。 + +--- + +## 完整可运行示例 + +下面是完整的、可直接运行的程序。复制到控制台应用项目中,添加 Aspose.Cells 引用,然后按 **F5** 运行。 + +```csharp +using Aspose.Cells; +using System; +using System.Globalization; + +class Program +{ + static void Main() + { + // 1️⃣ Create workbook and select the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("令和3年5月1日"); + + // 3️⃣ Set up Japanese lunisolar culture + CultureInfo japaneseCulture = new CultureInfo("ja-JP"); + japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); + + // 4️⃣ Parse the cell value as DateTime using the culture + DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); + + // 5️⃣ Output the date in ISO format + Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // 2021-05-01 + } +} +``` + +**预期输出** + +``` +2021-05-01 +``` + +运行一次,你将看到控制台打印出的 ISO 格式日期。这就是从 **read Excel datetime** 到 **format date iso** 的完整流程。 + +--- + +## 常见边缘情况处理 + +### 1. 单元格包含真实的 Excel 日期序号 + +有时 Excel 会把日期存为序号(例如 `44204`)。此时无需指定文化,只需直接调用不带参数的 `GetDateTime()`: + +```csharp +DateTime serialDate = worksheet.Cells["B2"].GetDateTime(); // B2 holds a numeric date +Console.WriteLine(serialDate.ToString("yyyy-MM-dd")); +``` + +### 2. 空白或无效单元格 + +如果单元格为空或包含无法解析的字符串,`GetDateTime` 会抛出异常。可以在调用前使用 `IsDateTime` 检查,或将调用包裹在 `try/catch` 中: + +```csharp +if (worksheet.Cells["C3"].Type == CellValueType.IsDateTime) +{ + DateTime safeDate = worksheet.Cells["C3"].GetDateTime(); + Console.WriteLine(safeDate.ToString("yyyy-MM-dd")); +} +else +{ + Console.WriteLine("Cell C3 does not contain a valid date."); +} +``` + +### 3. 不同的纪元格式 + +其他日本纪元(如平成、昭和)遵循相同的模式。`JapaneseLunisolarCalendar` 会自动处理它们,无需额外逻辑——只要传入对应的字符串即可。 + +--- + +## 专业技巧与注意事项 + +- **性能**:处理大批量工作表时,复用同一个 `CultureInfo` 实例,而不是在循环内部每次创建新实例。 +- **线程安全**:在设置完日历后,`CultureInfo` 对象即为只读,可安全地在多个线程间共享。 +- **Aspose.Cells 授权**:使用免费试用版时,请注意部分功能在试用期结束后可能受限。本文展示的日期解析在试用版和正式授权版均可正常工作。 +- **时区**:得到的 `DateTime` 类型为 **unspecified**(未指定时区)。如果需要 UTC,可调用 `DateTime.SpecifyKind(parsedDate, DateTimeKind.Utc)` 或使用 `TimeZoneInfo` 进行转换。 + +--- + +## 结论 + +本文完整演示了如何使用 C# 从 Excel 工作簿 **format date iso**。从原始的日本纪元字符串出发,我们 **read Excel datetime**、配置合适的文化、**extract datetime Excel**,最终输出干净的 ISO‑8601 字符串。该方法同样适用于 Excel 可能提供的任何日期形式,无论是序号、地区特定字符串,还是传统纪元格式。 + +接下来可以尝试遍历整列日期,将 ISO 结果写回新工作表,或直接填充到 JSON 请求体中。如果你对其他日历系统(希伯来历、伊斯兰历)感兴趣,Aspose.Cells 与 .NET 的 `CultureInfo` 同样可以轻松实现。 + +有任何问题或遇到棘手的日期格式,欢迎在下方留言,祝编码愉快! + +{{< /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/chinese/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md b/cells/chinese/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md new file mode 100644 index 0000000000..34f38afae6 --- /dev/null +++ b/cells/chinese/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md @@ -0,0 +1,248 @@ +--- +category: general +date: 2026-03-30 +description: 学习如何在 C# 中使用 Aspose.Cells 对数字进行分隔符格式化。包括设置自定义数字格式、添加千位分隔符、格式化小数位以及如何格式化单元格。 +draft: false +keywords: +- format number with separator +- set custom number format +- add thousands separator +- format decimal places +- how to format cell +language: zh +og_description: 在 C# 中使用分隔符格式化数字。本指南展示了如何设置自定义数字格式、添加千位分隔符、格式化小数位,以及如何使用 Aspose.Cells + 格式化单元格。 +og_title: 在 C# 中使用分隔符格式化数字 – Aspose.Cells 教程 +tags: +- C# +- Aspose.Cells +- Number Formatting +title: 在 C# 中使用分隔符格式化数字 – 完整的 Aspose.Cells 指南 +url: /zh/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 使用 C# 为数字添加分隔符 – 完整 Aspose.Cells 指南 + +是否曾经需要在电子表格中**为数字添加分隔符**但不确定使用哪个 API 调用?你并不是唯一的——开发者在导出数据时经常要处理千位分隔符、小数位数和自定义模式。 + +好消息:Aspose.Cells 让这件事轻而易举。在本教程中,我们将通过一个真实案例演示**设置自定义数字格式**、**添加千位分隔符**、**格式化小数位数**,并展示**如何将单元格格式化为字符串**。完成后,你将拥有一个可直接在任何 .NET 项目中使用的完整代码片段。 + +## 本指南涵盖内容 + +* 需要的 NuGet 包以及如何安装。 +* 步骤清晰的代码,创建工作簿、写入数值并应用自定义格式。 +* 为什么 `ExportTableOptions.ExportAsString` 是获取格式化值的首选方式。 +* 常见陷阱——例如忘记启用 `ExportAsString` 或使用错误的格式掩码。 +* 如需不同的小数位数或不同的分隔符样式,如何调整格式掩码。 + +无需外部文档链接,所有内容都在这里。让我们开始吧。 + +--- + +## 前置条件 + +| 需求 | 原因 | +|------|------| +| .NET 6.0 或更高版本 | Aspose.Cells 23.10+ 目标 .NET Standard 2.0+,因此 .NET 6 安全且是当前主流。 | +| Visual Studio 2022(或任意 C# IDE) | 便于调试和包管理。 | +| Aspose.Cells for .NET NuGet 包 | 提供我们将使用的 `Workbook`、`Worksheet` 和 `ExportTableOptions` 类。 | + +你可以通过包管理控制台安装该包: + +```powershell +Install-Package Aspose.Cells +``` + +就这么简单——无需额外 DLL、无需 COM 互操作,只需一个 NuGet 引用。 + +--- + +## 第 1 步:初始化新工作簿(如何格式化单元格) + +首先创建一个全新的 `Workbook` 实例。它相当于一个空的 Excel 文件,准备接受数据。 + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Create a new workbook – this is where we’ll format the cell. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **为什么这很重要:**`Workbook` 是 Aspose.Cells 中所有操作的入口。通过获取第一个工作表 (`Worksheets[0]`),我们得到一个干净的画布,无需额外命名工作表。 + +--- + +## 第 2 步:将数值写入目标单元格 + +接下来,将原始数字写入 **A1** 单元格。此时数值尚未格式化,仅是一个 double。 + +```csharp + // Step 2: Insert a raw numeric value. + worksheet.Cells["A1"].PutValue(12345.6789); +``` + +> **小技巧:**当你计划后续应用数字格式时,请使用 `PutValue` 而不是 `PutString`。这会保留底层数据类型,便于 Excel 兼容的计算。 + +--- + +## 第 3 步:设置自定义数字格式(添加千位分隔符并格式化小数位数) + +现在进入教程核心:定义一个格式掩码,告诉 Aspose.Cells 如何显示数字。掩码 `#,##0.00` 实现了三件事: + +1. **`#,##0`** – 默认使用逗号作为千位分隔符。 +2. **`.00`** – 强制显示两位小数。 + +如果需要不同的小数位数,只需更改小数点后 `0` 的数量。 + +```csharp + // Step 3: Configure the custom number format. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, // Return the value as a formatted string. + NumberFormat = "#,##0.00" // Add thousands separator and fix to 2 decimals. + }; +``` + +> **为什么使用 `ExportAsString`:**默认情况下,`ExportString` 返回原始值。将 `ExportAsString = true` 设置为 true 会在转换为文本之前先应用 `NumberFormat` 掩码。这在需要将精确的字符串表示用于报表、JSON 或 UI 显示时至关重要。 + +--- + +## 第 4 步:导出格式化文本(如何格式化单元格) + +准备好选项后,我们在同一个单元格上调用 `ExportString`。该方法会遵循我们刚定义的掩码,并返回一个格式化好的字符串。 + +```csharp + // Step 4: Export the formatted value. + string formattedCellText = worksheet.Cells["A1"].ExportString(exportOptions); + + // Step 5: Show the result. + Console.WriteLine(formattedCellText); // Expected output: 12,345.68 + } +} +``` + +运行程序后,控制台会打印 **`12,345.68`**,正是我们期望的格式。 + +> **边缘情况:**如果源数字的小数位超过两位,掩码会进行四舍五入。如果需要截断而非四舍五入,必须在调用 `PutValue` 前使用 `Math.Truncate` 预处理数值。 + +--- + +## 第 5 步:微调格式 – 常见变体 + +### 5.1 更改小数精度 + +想要三位小数吗?只需替换掩码: + +```csharp +NumberFormat = "#,##0.000" // → 12,345.679 +``` + +### 5.2 使用不同的千位分隔符 + +某些地区更喜欢空格或句点。可以直接在掩码中嵌入该字符: + +```csharp +NumberFormat = "# ##0.00" // Uses a non‑breaking space as separator. +``` + +或者依赖工作簿的区域设置: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("de-DE"); +NumberFormat = "#.##0,00"; // German style: 12.345,68 +``` + +### 5.3 前缀或后缀(货币、百分比) + +在掩码中直接加入美元符号或百分号: + +```csharp +NumberFormat = "$#,##0.00"; // → $12,345.68 +NumberFormat = "0.00%"; // → 1,234,568.00% +``` + +> **注意:**掩码区分大小写。`$` 和 `%` 是字面符号,不会影响底层数值。 + +--- + +## 第 6 步:完整可运行示例(复制粘贴即用) + +下面是可以直接复制到新控制台应用中的完整程序。它包含所有步骤、注释以及最终输出验证。 + +```csharp +using System; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write raw numeric value to A1. + worksheet.Cells["A1"].PutValue(12345.6789); + + // 3️⃣ Define custom format: thousands separator + two decimals. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + NumberFormat = "#,##0.00" + }; + + // 4️⃣ Export the formatted string. + string result = worksheet.Cells["A1"].ExportString(exportOptions); + + // 5️⃣ Display the outcome. + Console.WriteLine(result); // Output: 12,345.68 + + // Optional: keep console open. + Console.WriteLine("Press any key to exit..."); + Console.ReadKey(); + } +} +``` + +运行程序(在终端执行 `dotnet run` 或在 Visual Studio 中按 F5),即可看到如上所示的格式化数字。 + +--- + +## 常见问题解答 (FAQ) + +**问:这在旧版本的 Excel 中也能工作吗?** +答:可以。格式掩码遵循 Excel 原生的数字格式语法,任何能够识别 `#,##0.00` 的 Excel 版本都会呈现相同的字符串。 + +**问:如果需要格式化一整块单元格怎么办?** +答:遍历目标范围,对每个单元格应用相同的 `ExportTableOptions`,或者在该范围上设置 `Style.Custom` 属性,然后在任意单元格上调用 `ExportString`。 + +**问:能直接导出为 CSV 并保留这些格式吗?** +答:完全可以。在为每个单元格设置格式后,使用 `Workbook.Save("output.csv", SaveFormat.CSV);`。Aspose.Cells 在生成 CSV 时会尊重单元格的 `Style`。 + +--- + +## 结论 + +我们已经展示了如何在 C# 中使用 Aspose.Cells **为数字添加分隔符**,涵盖了从**设置自定义数字格式**、**添加千位分隔符**、**格式化小数位数**到**如何将单元格格式化为字符串**的完整过程。代码完全自包含,适用于 .NET 6+,并可根据任何地区或精度需求进行调整。 + +接下来,你可以尝试: + +* 将相同技术应用于日期和时间(`NumberFormat = "dd‑MMM‑yyyy"`)。 +* 自动化批量导出,为每列设置不同的掩码。 +* 将格式化后的字符串集成到使用 Aspose.Words 的 PDF 报表中。 + +试一试这些技巧,你很快就会成为团队中电子表格格式化的首选专家。祝编码愉快! (Image: ![显示在 Aspose.Cells 输出中的带分隔符的格式化数字的截图](image-placeholder.png){alt="在 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/chinese/net/excel-data-import-export/_index.md b/cells/chinese/net/excel-data-import-export/_index.md index cd69fbabc6..8d8842e3d5 100644 --- a/cells/chinese/net/excel-data-import-export/_index.md +++ b/cells/chinese/net/excel-data-import-export/_index.md @@ -32,6 +32,10 @@ 在本简单易懂的教程中,学习如何使用 Aspose.Cells for .NET 将自定义 DB Num 格式的数据导入 Excel。 ### [在 Excel 中插入数据表行时将第一行向下移动](./shift-first-row-down-when-inserting-cells-datatable-rows-in-excel/) 学习如何使用 Aspose.Cells for .NET 在 Excel 中插入 DataTable 行,而无需将第一行向下移动。分步指南,轻松实现自动化。 +### [创建 Excel 工作簿 C# – 插入 JSON 并保存为 XLSX](./create-excel-workbook-c-insert-json-and-save-as-xlsx/) +学习如何使用 Aspose.Cells for .NET 在 C# 中创建 Excel 工作簿,插入 JSON 数据并保存为 XLSX。 +### [创建 Excel 工作簿 C# – 应用货币格式并导入 DataTable](./create-excel-workbook-c-apply-currency-format-and-import-dat/) +学习如何使用 Aspose.Cells for .NET 在 C# 中创建 Excel 工作簿,应用货币格式并导入 DataTable。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/chinese/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md b/cells/chinese/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md new file mode 100644 index 0000000000..7c00151c61 --- /dev/null +++ b/cells/chinese/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md @@ -0,0 +1,261 @@ +--- +category: general +date: 2026-03-30 +description: 使用 C# 创建带有货币格式的 Excel 工作簿。学习如何导入 DataTable、添加 Excel 数字格式,并在几分钟内为列应用货币格式。 +draft: false +keywords: +- create excel workbook c# +- format cells currency +- import datatable to excel +- add number format excel +- apply currency format column +language: zh +og_description: 使用 C# 创建 Excel 工作簿并立即将单元格格式设置为货币。本分步教程展示了如何将 DataTable 导入 Excel 并为列添加数字格式。 +og_title: 使用 C# 创建 Excel 工作簿 – 货币格式化指南 +tags: +- Aspose.Cells +- C# +- Excel automation +title: 使用 C# 创建 Excel 工作簿 – 应用货币格式并导入 DataTable +url: /zh/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 创建 Excel 工作簿 C# – 应用货币格式并导入 DataTable + +是否曾需要 **create Excel workbook C#** 并且已经像精美报告一样?也许你正从数据库中提取销售数据,并希望价格列以美元显示,而无需手动在 Excel 中调整。听起来很熟悉吗?你并不孤单——大多数开发者在首次自动化 Excel 导出时都会遇到这个问题。 + +在本指南中,我们将逐步演示一个完整、可直接运行的解决方案,该方案 **creates an Excel workbook C#**,导入 `DataTable`,并 **formats the Price column as currency**。完成后,你将得到一个名为 `StyledTable.xlsx` 的文件,打开后即可看到格式良好的数字。无需额外的后处理。 + +> **你将学到的内容** +> - 如何在 .NET 项目中设置 Aspose.Cells +> - 如何 **import datatable to excel** 使用样式数组 +> - 如何 **add number format excel** 为特定列设置数字格式 +> - 处理更多列或不同地区设置的技巧 + +> **先决条件** +> - 已安装 .NET 6+(或 .NET Framework 4.6+) +> - Aspose.Cells for .NET NuGet 包 (`Install-Package Aspose.Cells`) +> - 对 C# 和 DataTables 有基本了解 + +## Step 1: Prepare the DataTable (import datatable to excel) + +首先,我们需要一些示例数据。在真实的应用中,你可能会通过数据库查询填充此表,但硬编码示例可以保持简单。 + +```csharp +using System.Data; + +// Create a DataTable with two columns: Product (string) and Price (double) +DataTable dataTable = new DataTable(); +dataTable.Columns.Add("Product", typeof(string)); +dataTable.Columns.Add("Price", typeof(double)); + +// Add a few rows – you can add as many as you like +dataTable.Rows.Add("Apple", 1.23); +dataTable.Rows.Add("Banana", 0.78); +dataTable.Rows.Add("Cherry", 2.50); +``` + +*为什么这很重要*:`DataTable` 是业务数据与 Excel 文件之间的桥梁。Aspose.Cells 可以直接导入它,保留列名和数据类型。 + +## Step 2: Spin Up a New Workbook (create excel workbook c#) + +现在我们创建实际的 Excel 文件对象。可以把它看作是你将要绘制的空白画布。 + +```csharp +using Aspose.Cells; + +// Instantiate a fresh workbook – this is the core of create excel workbook c# +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0). You could also add more sheets later. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **专业提示**:如果需要多个工作表,请调用 `workbook.Worksheets.Add()` 并为每个工作表提供有意义的名称。 + +## Step 3: Define a Currency Style (format cells currency) + +Aspose.Cells 允许你创建一个描述单元格外观的 `Style` 对象。对于货币,我们使用内置的数字格式 ID 164 (`"$#,##0.00"`). + +```csharp +// Create a new style object for the price column +Style priceStyle = workbook.CreateStyle(); +priceStyle.Number = 164; // Built‑in currency format "$#,##0.00" +``` + +*为什么不直接设置格式字符串?* 使用内置 ID 可确保在不同 Excel 版本之间的兼容性,并避免地区特定的怪异行为。 + +## Step 4: Build the Style Array (apply currency format column) + +在导入 `DataTable` 时,你可以传入一个 `Style` 对象数组——每列一个。`null` 表示“使用默认样式”。这里我们仅对第二列应用 `priceStyle`。 + +```csharp +// Column 0 (Product) gets the default style, Column 1 (Price) gets the currency style +Style[] columnStyles = { null, priceStyle }; +``` + +如果以后添加更多列,只需相应地扩展数组。`columnStyles` 的长度必须与导入的列数匹配,否则 Aspose 会抛出异常。 + +## Step 5: Import the DataTable with Styles (import datatable to excel) + +现在魔法发生了——我们的 `DataTable` 被放入工作表,且价格列立即显示为货币格式。 + +```csharp +// Parameters: +// - dataTable: source data +// - true: include column headers +// - startRow: 0 (top of sheet) +// - startColumn: 0 (first column) +// - columnStyles: style array defined above +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +*如果有超过两列怎么办?* 只需扩展 `columnStyles`,让每列获得相应的样式(或 `null` 使用默认)。这是有选择地 **add number format excel** 的最简洁方式。 + +## Step 6: Save the Workbook (create excel workbook c#) + +最后,我们将文件写入磁盘。选择任意你有写入权限的文件夹。 + +```csharp +// Save the workbook as an XLSX file +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +在 Excel 中打开 `StyledTable.xlsx`,你应该看到: + +| 产品 | 价格 | +|------|------| +| Apple | $1.23 | +| Banana | $0.78 | +| Cherry | $2.50 | + +**Price** 列已经格式化为货币——无需额外步骤。 + +## Edge Cases & Variations + +### More Columns, Different Formats + +如果需要为多个列(例如 Cost、Tax、Total) **format cells currency**,请为每个列创建单独的 `Style` 并相应填充 `columnStyles`: + +```csharp +Style costStyle = workbook.CreateStyle(); +costStyle.Number = 164; // currency + +Style taxStyle = workbook.CreateStyle(); +taxStyle.Number = 164; + +// Assuming columns: Product, Cost, Tax, Total +Style[] styles = { null, costStyle, taxStyle, priceStyle }; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, styles); +``` + +### Locale‑Specific Currency + +对于欧元或英镑,使用不同的内置 ID(例如,165 对应 `€#,##0.00`)。或者,设置自定义格式字符串: + +```csharp +priceStyle.Custom = "€#,##0.00"; +``` + +### Large Data Sets + +Aspose.Cells 能处理数百万行,但内存消耗会随样式对象增加。对所有货币列复用同一个 `Style` 实例,以保持占用低。 + +### Missing Styles + +如果 `columnStyles` 的长度小于列数,Aspose 会对其余列使用默认样式。当你只关心少数列时,这很方便。 + +## Full Working Example (All Steps Combined) + +下面是完整的程序,你可以复制粘贴到控制台应用中。它包含了我们讨论的所有部分,并附带一些有用的注释。 + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // Step 1: Build sample DataTable (import datatable to excel) + // ------------------------------------------------- + DataTable dataTable = new DataTable(); + dataTable.Columns.Add("Product", typeof(string)); + dataTable.Columns.Add("Price", typeof(double)); + dataTable.Rows.Add("Apple", 1.23); + dataTable.Rows.Add("Banana", 0.78); + dataTable.Rows.Add("Cherry", 2.50); + // You can add as many rows as you like here. + + // ------------------------------------------------- + // Step 2: Create a new workbook (create excel workbook c#) + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // Step 3: Define a currency style (format cells currency) + // ------------------------------------------------- + Style priceStyle = workbook.CreateStyle(); + priceStyle.Number = 164; // "$#,##0.00" – built‑in currency format + + // ------------------------------------------------- + // Step 4: Build the style array (apply currency format column) + // ------------------------------------------------- + // First column gets default style (null), second column uses priceStyle. + Style[] columnStyles = { null, priceStyle }; + + // ------------------------------------------------- + // Step 5: Import the DataTable with the style array + // ------------------------------------------------- + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // ------------------------------------------------- + // Step 6: Save the workbook to disk + // ------------------------------------------------- + string outputPath = @"YOUR_DIRECTORY\StyledTable.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } +} +``` + +**预期结果**:打开 `StyledTable.xlsx` 时,`Price` 列显示美元符号和两位小数,正好符合 `format cells currency` 指令的要求。 + +## Frequently Asked Questions + +**Q: 这在 .NET Core 上能工作吗?** +A: 当然可以。Aspose.Cells 符合 .NET‑standard 标准,因此你可以针对 .NET 5、.NET 6 或更高版本而无需更改。 + +**Q: 如果我的 DataTable 有 10 列,但我只想格式化第 5 列怎么办?** +A: 创建长度为 10 的 `Style[]`,将位置 0‑4 和 6‑9 填入 `null`,并在索引 4(从零开始)处放置自定义样式。Aspose 会遵循每个条目。 + +**Q: 我可以隐藏标题行吗?** +A: 导入后,设置 `worksheet.Cells.Rows[0].Hidden = true;`,或者在 `ImportDataTable` 中将 `includeColumnNames` 参数设为 `false`。 + +## Conclusion + +我们刚刚 **created an Excel workbook C#**,导入了 `DataTable`,并使用 Aspose.Cells **applied a currency format column**。主要步骤——准备数据、定义样式、构建样式数组、使用 `ImportDataTable` 导入以及保存——涵盖了大多数 Excel 自动化任务的核心。 + +从这里你可以进一步探索: + +- 为日期或百分比 **add number format excel** +- 在单个文件中导出多个工作表 +- 使用 **format cells currency** 与地区特定符号 +- 基于相同数据自动生成图表 + +尝试一下,你很快就会成为团队中 Excel 报告的首选专家。有什么独特的做法想分享?在下方留言——祝编码愉快! + +![create excel workbook c# screenshot](image.png "create excel workbook c#") + +{{< /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/chinese/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md b/cells/chinese/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md new file mode 100644 index 0000000000..85cf543c1c --- /dev/null +++ b/cells/chinese/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md @@ -0,0 +1,250 @@ +--- +category: general +date: 2026-03-30 +description: 通过插入 JSON 数据并将工作簿保存为 XLSX,使用 C# 快速创建 Excel 工作簿。了解如何从 JSON 生成 Excel、将 + JSON 写入 Excel,以及将 JSON 插入 Excel。 +draft: false +keywords: +- create excel workbook c# +- save workbook as xlsx +- generate excel from json +- write json to excel +- insert json into excel +language: zh +og_description: 通过插入 JSON 数据并将工作簿保存为 XLSX,使用 C# 快速创建 Excel 工作簿。按照本分步指南从 JSON 生成 Excel。 +og_title: 使用 C# 创建 Excel 工作簿 – 插入 JSON 并保存为 XLSX +tags: +- Aspose.Cells +- C# +- Excel automation +title: 使用 C# 创建 Excel 工作簿 – 插入 JSON 并保存为 XLSX +url: /zh/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 创建 Excel 工作簿 C# – 插入 JSON 并保存为 XLSX + +是否曾需要 **create Excel workbook C#** 并将 JSON 直接写入单元格?你并不是唯一遇到这种情况的人——开发者经常在需要将 API 负载或配置文件放入电子表格以进行报告或共享时面对同样的难题。 + +好消息是,使用 Aspose.Cells 只需几行代码即可完成,**save workbook as XLSX**,并且整个过程保持类型安全。在本教程中,我们将 **generate Excel from JSON**、**write JSON to Excel**,并展示如何 **insert JSON into Excel**,无需繁琐的字符串拼接。 + +## 本指南涵盖内容 + +我们将逐步演示: + +1. 设置一个全新的工作簿。 +2. 添加一个期望 JSON 的 Smart Marker。 +3. 将 JSON 数组传递给该标记。 +4. 调整 `SmartMarkerOptions` 使 JSON 保持在单元格内。 +5. 将文件保存为 XLSX 工作簿。 + +结束时,你将拥有一个可直接使用的 `JsonSingleCell.xlsx` 文件,以及一个可在任何 JSON‑to‑Excel 场景中复用的可靠模式。无需外部服务,仅使用纯 C# 和 Aspose.Cells 库。 + +**先决条件** + +- .NET 6+(或 .NET Framework 4.6+)。 +- Visual Studio 2022 或任何兼容 C# 的 IDE。 +- NuGet 包 `Aspose.Cells`(免费试用版或授权版)。 + +如果你已经具备这些条件,让我们开始吧——无需额外设置。 + +--- + +## 步骤 1:在 C# 中创建新工作簿 + +首先,你需要一个空白的工作簿对象。可以把它想象成一个等待写入数据的全新 Excel 文件。 + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is your empty Excel file +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; +``` + +**为什么这很重要:** +`Workbook` 是所有 Excel 操作的入口。先创建它,可确保后续的 **save workbook as xlsx** 调用拥有具体的对象可进行序列化。 + +> **技巧提示:** 如果计划使用多个工作表,可以立即使用 `workbook.Worksheets.Add()` 添加它们。 + +--- + +## 步骤 2:放置一个期望 JSON 的 Smart Marker + +Smart Markers 是 Aspose.Cells 在运行时替换的占位符。这里我们让它查找名为 `data` 的 JSON 字符串。 + +```csharp +// Put a Smart Marker in cell A1 – {{data:json}} tells Aspose to expect JSON +worksheet.Cells["A1"].PutValue("{{data:json}}"); +``` + +**为什么这很重要:** +`:json` 后缀告诉引擎传入的值是 JSON,而非普通文本。这是实现 **write json to excel** 而无需手动解析的关键。 + +--- + +## 步骤 3:定义 JSON 数组 + +现在我们构造要插入的 JSON。演示中我们使用一个简单的人员列表。 + +```csharp +// Sample JSON array – could come from an API, file, or DB +string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; +``` + +**边缘情况:** +如果你的 JSON 包含双引号,请确保已转义(如示例所示),或使用逐字字符串(`@"..."`)以避免编译错误。 + +--- + +## 步骤 4:配置 Smart Marker 选项 – 保持数组整体 + +默认情况下,Aspose 会尝试将数组展开到多行。我们希望整个 JSON 字符串保持在单个单元格中,这对于稍后由消费者解析 JSON 的 **insert json into excel** 场景非常合适。 + +```csharp +SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions +{ + // Treat the whole array as a single cell value + ArrayAsSingle = true +}; +``` + +**为什么这很重要:** +`ArrayAsSingle = true` 可阻止行展开,得到一个干净的单元格 JSON 块。当电子表格作为传输格式而非报告时,这一点尤为重要。 + +--- + +## 步骤 5:使用 JSON 数据处理 Smart Marker + +现在我们将 JSON 绑定到标记,让 Aspose 完成繁重的工作。 + +```csharp +// Process the marker – the anonymous object maps "data" to our JSON string +worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); +``` + +**内部发生了什么:** +Aspose 解析占位符 `{{data:json}}`,序列化 `jsonData` 字符串,并根据我们设置的选项将其写入单元格 A1。 + +--- + +## 步骤 6:将工作簿保存为 XLSX 文件 + +最后,我们将工作簿写入 **磁盘**。这正是 **save workbook as xlsx** 发挥作用的地方。 + +```csharp +// Save the workbook – the extension determines the format (XLSX here) +workbook.Save("JsonSingleCell.xlsx"); +``` + +**结果:** +在 Excel 中打开 `JsonSingleCell.xlsx`,你会看到 JSON 数组正如我们定义的那样,整齐地位于单元格 A1 中。 + +--- + +## 完整、可运行的示例 + +下面是完整的程序代码,你可以复制粘贴到控制台应用中。它包含上述所有步骤,直接即可运行(前提是已安装 Aspose.Cells NuGet 包)。 + +```csharp +using System; +using Aspose.Cells; + +namespace JsonToExcelDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add a Smart Marker that expects JSON + worksheet.Cells["A1"].PutValue("{{data:json}}"); + + // 3️⃣ Define the JSON array + string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; + + // 4️⃣ Configure options – keep array as a single cell value + SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions + { + ArrayAsSingle = true + }; + + // 5️⃣ Process the marker with the JSON payload + worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); + + // 6️⃣ Save the workbook as XLSX + workbook.Save("JsonSingleCell.xlsx"); + + Console.WriteLine("Excel file created successfully! Check JsonSingleCell.xlsx."); + } + } +} +``` + +**在 Excel 中的预期输出** + +| A | +|---| +| `[{"Name":"John","Age":30},{"Name":"Jane","Age":28}]` | + +该单元格现在保存了一个完全有效的 JSON 数组,可供后续处理使用。 + +--- + +## 常见问题与边缘情况 + +### 如果需要将 JSON 拆分到多行怎么办? + +将 `ArrayAsSingle = false`(默认值)设置为 false。Aspose 会为每个数组元素创建一行,并将对象属性映射到 **列**。当你想要表格视图而非原始 JSON 字符串时,这非常有用。 + +### 能否使用 JSON 文件而不是硬编码字符串? + +完全可以。将文件读取为字符串: + +```csharp +string jsonData = File.ReadAllText("people.json"); +``` + +然后将 `jsonData` 传递给相同的 `Process` 调用。其余管道保持不变。 + +### 这对大体积 JSON 有效吗? + +可以,但需关注 **内存** 使用情况。对于巨大的数组,考虑流式处理数据或直接写入行(`ArrayAsSingle = false`),以避免出现 Excel 难以处理的单个超大单元格。 + +### 生成的 XLSX 与旧版 Excel 兼容吗? + +`.xlsx` 格式基于 Office Open XML,适用于 Excel 2007 及更高版本。如果需要传统的 `.xls` 格式,只需更改保存调用: + +```csharp +workbook.Save("JsonSingleCell.xls", SaveFormat.Excel97To2003); +``` + +--- + +## 使用 JSON 与 Excel 的高级技巧 + +- **首先验证 JSON** – 使用 `System.Text.Json.JsonDocument.Parse(jsonData)` 及早捕获格式错误。 +- **转义特殊字符** – 如果 JSON 包含换行符,它们会以字面量 `\n` 出现在单元格中;在处理前可将其替换为 `Environment.NewLine`。 +- **复用 Smart Markers** – 可以在同一工作表中放置多个标记,每个指向不同的 JSON 属性。 +- **结合公式使用** – JSON 写入单元格后,可使用 Excel 的 `FILTERXML`(在新版中)即时解析。 + +--- + +## 结论 + +现在你已经掌握了如何使用 Aspose.Cells **create excel workbook c#**、嵌入 JSON 负载并 **save workbook as xlsx**。此模式只需几行代码即可 **generate excel from json**、**write json to excel**、**insert json into excel**,让服务与分析师之间的数据交换变得轻松无痛。 + +准备好下一步了吗?尝试将 JSON 数组转换为正式表格(设置 `ArrayAsSingle = false`),或在插入后为工作表添加样式。同样的方法也适用于 CSV、XML,甚至自定义对象——只需调整 Smart Marker 类型即可。 + +祝编码愉快,尽情尝试吧!如果遇到任何问题,欢迎在下方留言,或查阅 Aspose 官方文档深入了解 Smart Markers。 + +{{< /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/chinese/net/excel-workbook/_index.md b/cells/chinese/net/excel-workbook/_index.md index 5fcd397aa7..f27359b71b 100644 --- a/cells/chinese/net/excel-workbook/_index.md +++ b/cells/chinese/net/excel-workbook/_index.md @@ -86,6 +86,7 @@ Excel 工作表中的已定义名称可以方便地管理数据。它们使公 | [工作簿打印预览](./workbook-print-preview/) 了解如何使用 Aspose.Cells for .NET 创建 Excel 文件的打印预览。通过详细易懂的教程学习编码步骤。| | [使用内容类型属性](./working-with-content-type-properties/) 了解如何使用 Aspose.Cells for .NET 处理内容类型属性,以增强 Excel 元数据管理。请遵循本指南,一步步操作。| | [Xades 签名支持](./xades-signature-support/) 学习如何使用 Aspose.Cells for .NET 将 Xades 签名添加到 Excel 文件,并遵循本分步指南。保护您的文档安全。| +| [在 C# 中创建主工作表 – 完整 Aspose.Cells 指南](./create-master-sheet-in-c-complete-aspose-cells-guide/) 通过本完整指南,学习使用 Aspose.Cells for .NET 在 C# 中创建主工作表,实现数据汇总与管理。| {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/chinese/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md b/cells/chinese/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md new file mode 100644 index 0000000000..e2043e8e12 --- /dev/null +++ b/cells/chinese/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-03-30 +description: 使用 Aspose.Cells 在 C# 中创建主工作表。学习如何在 C# 中创建 Excel 工作簿,允许重复的工作表名称,并在几步内将工作簿保存为 + XLSX。 +draft: false +keywords: +- create master sheet +- create excel workbook c# +- save workbook as xlsx +- allow duplicate sheet names +language: zh +og_description: 使用 Aspose.Cells 在 C# 中创建主工作表。本指南展示了如何在 C# 中创建 Excel 工作簿、允许重复的工作表名称,并将工作簿保存为 + XLSX。 +og_title: 在 C# 中创建主工作表 – 完整的 Aspose.Cells 指南 +tags: +- Aspose.Cells +- C# +- Excel automation +title: 在 C# 中创建主工作表 – 完整的 Aspose.Cells 指南 +url: /zh/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 在 C# 中创建主工作表 – 完整 Aspose.Cells 指南 + +是否曾经需要在 Excel 文件中 **创建主工作表**,但不确定如何处理一堆共享相同基础名称的明细工作表?你并不孤单。在许多报表场景中,你会得到数十个明细标签页,而大多数库的默认行为是在出现同名工作表时抛出异常。 + +幸运的是,Aspose.Cells 让 **创建主工作表**、配置引擎以 **允许重复工作表名称**,然后 **将工作簿保存为 XLSX**——全部通过干净的 C# 代码实现变得轻而易举。在本教程中,我们将逐步演示一个完整可运行的示例,解释每行代码的意义,并提供一系列可以直接复制到你项目中的技巧。 + +> **你将收获** +> * 如何使用 Aspose.Cells **以 C# 方式创建 Excel 工作簿**。 +> * 如何嵌入智能标记,以为每行数据生成一个明细工作表。 +> * 如何将 `DetailSheetNewName = DuplicateAllowed` 设置为让库自动追加数字后缀。 +> * 如何 **将工作簿保存为 XLSX** 到磁盘,而无需任何额外步骤。 + +无需外部文档——所有你需要的内容都在这里。 + +--- + +## 前置条件 + +在开始之前,请确保你具备以下条件: + +| 要求 | 为什么重要 | +|------|------------| +| .NET 6.0 或更高(或 .NET Framework 4.7+) | Aspose.Cells 23.x+ 目标这些运行时。 | +| Visual Studio 2022(或任意 C# IDE) | 便于创建项目和调试。 | +| Aspose.Cells for .NET NuGet 包(`Install-Package Aspose.Cells`) | 提供所有智能标记魔法的库。 | +| 基础的 C# 知识 | 你可以在不需要速成课程的情况下理解语法。 | + +如果缺少上述任意项,请立即补齐——继续在半成品环境中操作没有意义。 + +--- + +## 第一步:使用 Aspose.Cells 创建主工作表 + +首先,我们通过实例化 `Workbook` 对象 **以 C# 方式创建 Excel 工作簿**。该对象已经包含一个默认工作表,我们将其重命名为 “Master”,并将其作为所有明细页的模板。 + +```csharp +using Aspose.Cells; + +// Step 1: Initialise a new workbook – this automatically gives us one sheet +Workbook workbook = new Workbook(); + +// Grab the first (and only) worksheet that comes with a fresh workbook +Worksheet masterSheet = workbook.Worksheets[0]; + +// Give it a meaningful name – this will be our master sheet +masterSheet.Name = "Master"; +``` + +*为什么要重命名工作表?* +默认名称如 “Sheet1” 并不能表达意图,后续扫描文件时,你希望主标签页能够一眼被识别。命名还能防止后面添加更多工作表时意外冲突。 + +--- + +## 第二步:准备生成明细工作表的智能标记 + +智能标记是 Aspose.Cells 在运行时用数据替换的占位符。通过在单元格 **A1** 中放置 `{{#detail:DataSheetName}}`,我们告诉引擎:“对数据源中的每条记录,创建一个新工作表,其名称来源于 `DataSheetName` 字段。” + +```csharp +// Step 2: Insert a smart‑marker into cell A1. +// The marker #detail tells Aspose.Cells to generate a new sheet per data row. +masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); +``` + +可以把标记想象成贴在工作表上的一张小指令卡。处理器运行时会读取这张卡,从数据源中提取相应的值,然后将主工作表克隆为一个新标签页。 + +--- + +## 第三步:构建数据源——有意使用重复的工作表名称 + +在真实项目中你可能会从数据库读取,但演示中我们使用内存中的匿名对象数组。注意两个项目都使用相同的基础名称 `"Detail"`;这正是 **允许重复工作表名称** 必不可少的场景。 + +```csharp +// Step 3: Create a data source with two items that share the same base sheet name. +var dataSource = new[] +{ + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } +}; +``` + +如果不做任何特殊设置直接运行,Aspose.Cells 在第二次迭代时会因已存在名为 “Detail” 的工作表而抛出异常。这就是下一步的重要性所在。 + +--- + +## 第四步:启用重复工作表名称 + +Aspose.Cells 提供 `SmartMarkerOptions.DetailSheetNewName`。将其设为 `DetailSheetNewName.DuplicateAllowed`,即可让引擎在名称冲突时自动追加数字后缀(例如 “Detail_1”)。 + +```csharp +// Step 4: Configure SmartMarker options to permit duplicate sheet names. +var smartMarkerOptions = new SmartMarkerOptions +{ + // This makes the library rename clashes to "Detail_1", "Detail_2", etc. + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed +}; +``` + +*为什么不手动为每行提供唯一名称?* +因为源数据往往无法保证唯一性,尤其是用户自由输入的文本。让库自行处理后缀可以消除一整类 bug。 + +--- + +## 第五步:处理智能标记并生成明细工作表 + +现在调用 `SmartMarkers.Process`,传入数据源和刚才配置的选项。该方法会遍历每个项目,克隆主工作表,并根据 `DataSheetName` 字段(加上必要的后缀)重命名克隆。 + +```csharp +// Step 5: Run the smart‑marker processor – this creates the detail sheets. +masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); +``` + +执行完此行代码后,工作簿中将出现三个标签页: + +1. **Master** – 原始模板。 +2. **Detail** – 第一个生成的工作表(无需后缀)。 +3. **Detail_1** – 第二个生成的工作表(自动添加后缀)。 + +打开 Excel 即可验证,你会看到两个明细工作表并排显示。 + +--- + +## 第六步:将工作簿保存为 XLSX 文件 + +最后,将文件持久化到磁盘。`Save` 方法在你提供 `.xlsx` 扩展名时会自动选择 XLSX 格式。 + +```csharp +// Step 6: Persist the workbook – this is the moment we finally “save workbook as XLSX”. +string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; +workbook.Save(outputPath); +``` + +**小技巧:** 如果需要直接将文件流输出到 Web 响应(例如 ASP.NET Core),请使用 `workbook.Save(stream, SaveFormat.Xlsx)` 而不是文件路径。 + +--- + +## 完整可运行示例 + +下面是完整的、可直接运行的程序。复制粘贴到控制台应用,按 F5 运行,然后打开生成的文件即可看到效果。 + +```csharp +using System; +using Aspose.Cells; + +namespace MasterSheetDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook and rename the default sheet to "Master" + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert a smart‑marker that will generate a detail sheet per data row + masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); + + // 3️⃣ Prepare a data source where two rows share the same sheet name + var dataSource = new[] + { + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } + }; + + // 4️⃣ Allow duplicate sheet names – the library will add "_1", "_2", … + var smartMarkerOptions = new SmartMarkerOptions + { + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed + }; + + // 5️⃣ Process the smart‑markers; this creates the detail sheets + masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); + + // 6️⃣ Save the workbook as an XLSX file + string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**预期结果:** 打开 `DuplicateDetailSheets.xlsx`,你会看到三个工作表——`Master`、`Detail` 和 `Detail_1`。每个明细工作表都是主工作表的完整副本,后续可填充行特定数据。 + +--- + +## 常见问题与边缘情况 + +### 如果需要超过两个重复工作表怎么办? + +完全没问题。相同的 `DuplicateAllowed` 设置会继续追加递增数字(`Detail_2`、`Detail_3` …),直至每行都有自己的标签页。 + +### 能自定义后缀格式吗? + +默认情况下,Aspose.Cells 使用下划线加数字索引。如果需要不同的模式(例如 “Detail‑A”、 “Detail‑B”),则必须在 `Process` 执行后自行遍历 `workbook.Worksheets` 并进行重命名。 + +### 这种方式能处理大数据集(数百行)吗? + +可以,但需关注内存使用情况。每生成一个工作表都会完整复制主工作表,行数很多时文件体积会快速膨胀。如果每个工作表只需要少量行,可考虑使用 `SmartMarkerOptions.RemoveEmptyRows = true` 来裁剪多余单元格。 + +### 生成的文件真的是 XLSX 吗? + +绝对是。`Save` 方法写入的是 Excel 所期望的 Open XML 包。你甚至可以直接用 LibreOffice 或 Google Sheets 打开,无需任何转换。 + +--- + +## 生产环境代码建议 + +| 建议 | 为什么重要 | +|------|------------| +| **Dispose `Workbook`** | 确保释放底层资源,防止内存泄漏。 | +| 使用 `using` 语句块包裹 `Workbook` 实例 | 自动管理对象生命周期。 | +| 在大批量生成时考虑分批保存 | 减少一次性内存占用。 | +| 通过 `SmartMarkerOptions.RemoveEmptyRows` 精简工作表 | 降低文件体积。 | +| 记录并监控生成过程中的异常 | 及时捕获命名冲突或数据问题。 | + +(根据实际项目需求,可继续补充更多生产级别的最佳实践) + +--- + +{{< /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/chinese/net/formulas-functions/_index.md b/cells/chinese/net/formulas-functions/_index.md index ed4d535a32..5f5976f722 100644 --- a/cells/chinese/net/formulas-functions/_index.md +++ b/cells/chinese/net/formulas-functions/_index.md @@ -102,6 +102,10 @@ ### [使用 Aspose.Cells .NET 更新 Excel Power Query 公式](./update-power-query-formulas-aspose-cells-net) 了解如何使用 Aspose.Cells for .NET 以编程方式更新 Excel 工作簿中的 Power Query 公式。掌握动态报告的数据源管理。 +### [如何在 C# 中使用 WRAPCOLS – 创建带有 Wrap 函数的 Excel 工作簿](./how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/) + +### [创建 Excel 工作簿 C# – Lambda、SEQUENCE 与 EXPAND 指南](./create-excel-workbook-c-lambda-sequence-expand-guide/) + ## 了解 Excel 公式类型 Excel 公式有多种形式,每种形式都具有 Aspose.Cells 可以管理的独特特性: diff --git a/cells/chinese/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md b/cells/chinese/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md new file mode 100644 index 0000000000..cd2aa0c0a2 --- /dev/null +++ b/cells/chinese/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md @@ -0,0 +1,211 @@ +--- +category: general +date: 2026-03-30 +description: 使用 Aspose.Cells 在 C# 中创建 Excel 工作簿。学习在 Excel 中使用 lambda 函数、sequence 函数、expand + array 函数,并将工作簿保存为 xlsx。 +draft: false +keywords: +- create excel workbook c# +- lambda function excel +- save workbook as xlsx +- sequence function excel +- expand array excel +language: zh +og_description: 快速使用 C# 创建 Excel 工作簿。本指南展示如何使用 Excel 的 lambda 函数、sequence 函数、expand + array 函数,并将工作簿保存为 xlsx。 +og_title: 使用 C# 创建 Excel 工作簿 – Lambda、SEQUENCE 与 EXPAND 指南 +tags: +- Aspose.Cells +- C# +- Excel automation +title: 使用 C# 创建 Excel 工作簿 – Lambda、SEQUENCE 与 EXPAND 指南 +url: /zh/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 创建 Excel 工作簿 C# – Lambda、SEQUENCE 与 EXPAND 指南 + +是否曾经需要 **创建 Excel 工作簿 C#** 来生成自动化报告,却不确定该使用哪些 API 调用?你并不孤单——许多开发者在首次接触编程生成 Excel 时都会遇到同样的难题。在本指南中,你将看到一个完整、可运行的示例,涵盖从全新的 **SEQUENCE 函数 Excel** 到强大的 **LAMBDA 函数 Excel**,甚至还有如何 **展开数组 Excel** 结果的全部内容。 + +我们还会演示 **将工作簿保存为 xlsx** 的精确步骤,这样你就可以把文件交给任何使用 Excel 的人。阅读完本教程后,你将拥有一段坚固、可直接投入生产的代码片段,能够在任何 .NET 项目中使用。没有模糊的 “参考文档” 链接——只有今天就能运行的代码。 + +## 你需要准备的内容 + +- **.NET 6.0 或更高** – 示例针对 .NET 6,但任何近期版本均可。 +- **Aspose.Cells for .NET** – 通过 NuGet 安装 (`Install-Package Aspose.Cells`)。 +- 对 C# 语法有基本了解(变量、对象和 lambda 表达式)。 +- 你熟悉的 IDE(Visual Studio、Rider 或 VS Code)。 + +就这些。无需额外的 COM 互操作,也不需要在服务器上安装 Office——Aspose.Cells 在内存中处理一切。 + +## 创建 Excel 工作簿 C# – 步骤实现 + +下面我们将过程拆分为若干小步骤。每一步都有明确的标题、简短的代码摘录以及 **为什么** 要这么做的解释。你可以直接复制最后的完整代码块并作为控制台应用运行。 + +### 步骤 1 – 初始化新工作簿 + +首先:我们需要一个空的工作簿对象,它代表内存中的 Excel 文件。 + +```csharp +using Aspose.Cells; + +// Step 1: Create a new workbook and get the first worksheet +Workbook workbook = new Workbook(); // empty workbook +Worksheet sheet = workbook.Worksheets[0]; // default first sheet +``` + +*为什么重要:* `Workbook` 是所有 Aspose.Cells 操作的入口。通过获取第一个 `Worksheet`,我们得到一个可以写入公式、数值或格式的画布。 + +> **小技巧:** 如果需要多个工作表,只需调用 `workbook.Worksheets.Add()` 并保持对每个工作表的引用。 + +### 步骤 2 – 使用 SEQUENCE 函数 Excel 生成数据 + +**sequence function excel** 可以在不使用 VBA 的情况下创建动态数字数组。我们将在单元格 `A1` 中放置它,并让 Excel 自动展开。 + +```csharp +// Step 2: Generate a 5‑row, 1‑column array from a SEQUENCE +sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; // 1..3 padded with blanks +``` + +*为什么重要:* `SEQUENCE(3)` 会产生 `[1,2,3]`。将其与 `EXPAND` 包裹后,会强制结果扩展为 5 行范围,额外的行会填充为空白。这一次性演示了 **sequence function excel** 和 **expand array excel**。 + +### 步骤 3 – 使用 LAMBDA 函数 Excel 聚合数字 + +现在展示 **lambda function excel** 的能力。我们将使用全新的 `REDUCE` 函数对 1‑5 的数字求和,`REDUCE` 在内部依赖 lambda 表达式。 + +```csharp +// Step 3: Aggregate a sequence (sum 1..5) using REDUCE/LAMBDA +sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; // result = 15 +``` + +*为什么重要:* `REDUCE` 会遍历 `SEQUENCE(5)` 产生的数组,将每个元素 (`b`) 与累加器 (`a`) 传入 lambda,lambda `a+b` 将它们相加,最终在 `B1` 中得到 `15`。这是一种纯公式、无需在 C# 中循环的简洁归约方式。 + +### 步骤 4 – 在单元格中直接使用三角函数 + +Excel 内置的数学函数非常适合快速计算。我们将在相邻的单元格中放置余切和双曲余切。 + +```csharp +// Step 4: Trigonometric functions directly in Excel cells +sheet["C1"].Formula = "COT(PI()/4)"; // evaluates to 1 +sheet["D1"].Formula = "COTH(1)"; // hyperbolic cotangent of 1 +``` + +*为什么重要:* 演示了可以将经典数学函数与新式动态数组公式混合使用。除非有特定的性能需求,否则无需在 C# 中预先计算这些值。 + +### 步骤 5 – 计算所有公式 + +当你设置公式后,Aspose.Cells 并不会自动求值。必须显式调用计算。 + +```csharp +// Step 5: Force calculation so that cells store the results +workbook.CalculateFormula(); +``` + +*为什么重要:* 调用此方法后,每个单元格的 `Value` 属性将包含已求值的结果,准备好保存或再次读取。 + +### 步骤 6 – 将工作簿保存为 Xlsx + +最后,使用 **save workbook as xlsx** 的模式将工作簿持久化到磁盘。 + +```csharp +// Step 6: Save the workbook to an Excel file (XLSX format) +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + +workbook.Save(outputPath); +Console.WriteLine($"Workbook saved to: {outputPath}"); +``` + +*为什么重要:* `Save` 方法会自动识别文件扩展名。使用 “.xlsx” 可确保文件兼容现代 Excel 版本。路径指向桌面,便于在测试期间快速访问。 + +### 完整可运行示例 + +下面是可以粘贴到新控制台项目中的完整程序。它包含上述所有步骤,并附带一个小的验证块,将计算结果打印到控制台。 + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialize workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + + // SEQUENCE + EXPAND + sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; + + // REDUCE with LAMBDA + sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; + + // Trig functions + sheet["C1"].Formula = "COT(PI()/4)"; + sheet["D1"].Formula = "COTH(1)"; + + // Calculate formulas + workbook.CalculateFormula(); + + // Verify results (optional) + Console.WriteLine("A1‑A5 (expanded SEQUENCE):"); + for (int i = 0; i < 5; i++) + { + Console.WriteLine($" Row {i + 1}: {sheet.Cells[i, 0].Value ?? "blank"}"); + } + Console.WriteLine($"B1 (sum 1‑5): {sheet["B1"].Value}"); + Console.WriteLine($"C1 (cot(π/4)): {sheet["C1"].Value}"); + Console.WriteLine($"D1 (coth(1)): {sheet["D1"].Value}"); + + // Save workbook + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + workbook.Save(outputPath); + Console.WriteLine($"Workbook saved to: {outputPath}"); + } +} +``` + +**控制台预期输出** + +``` +A1‑A5 (expanded SEQUENCE): + Row 1: 1 + Row 2: 2 + Row 3: 3 + Row 4: blank + Row 5: blank +B1 (sum 1‑5): 15 +C1 (cot(π/4)): 1 +D1 (coth(1)): 1.31303528549933 +Workbook saved to: C:\Users\YourName\Desktop\NewFunctions.xlsx +``` + +打开 *NewFunctions.xlsx* 时,你会看到相同的数字排列在前四列。 + +![创建 Excel 工作簿 c# 的结果电子表格截图](/images/create-excel-workbook-csharp.png) + +## 边缘情况、技巧与常见问题 + +- **如果需要多个工作表怎么办?** + 只需调用 `workbook.Worksheets.Add()`,并在每个新 `Worksheet` 对象上重复公式赋值。 + +- **能兼容旧版 Excel 吗?** + 动态数组函数(`SEQUENCE`、`EXPAND`、`REDUCE`)需要 Excel 365 或 Excel 2021 及以上版本。如果目标是旧版,请使用传统公式或在 C# 中先计算好数值再写入。 + +- **性能方面的顾虑?** + 对于成千上万行的数据,在一个范围内设置公式后再调用 `CalculateFormula`,通常比逐个循环赋值更快。 + +- **想将文件保存到流而不是磁盘?** + `work + +{{< /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/chinese/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md b/cells/chinese/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md new file mode 100644 index 0000000000..ba725164a6 --- /dev/null +++ b/cells/chinese/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md @@ -0,0 +1,190 @@ +--- +category: general +date: 2026-03-30 +description: 学习如何在 C# 中使用 WRAPCOLS 创建 Excel 工作簿、向 Excel 添加数据,并强制公式计算,同时使用 WRAPROWS。 +draft: false +keywords: +- how to use wrapcols +- create excel workbook c# +- add data to excel +- force formula calculation +- how to use wraprows +language: zh +og_description: 了解如何在 C# 中使用 WRAPCOLS 构建 Excel 工作簿、添加数据、强制公式计算,并利用 WRAPROWS 实现数组公式。 +og_title: 如何在 C# 中使用 WRAPCOLS – 完整指南 +tags: +- Aspose.Cells +- C# +- Excel Automation +title: 如何在 C# 中使用 WRAPCOLS – 使用换行函数创建 Excel 工作簿 +url: /zh/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何在 C# 中使用 WRAPCOLS – 使用包装函数创建 Excel 工作簿 + +是否曾经想过在使用 C# 自动化 Excel 时 **如何使用 WRAPCOLS**?你并不孤单——许多开发者在需要将水平范围转换为垂直数组而不想编写大量代码时会遇到瓶颈。好消息是 Aspose.Cells 让这变得轻而易举。 + +在本教程中,我们将逐步演示一个完整且可运行的示例,展示 **如何使用 WRAPCOLS**、如何 **以 C# 方式创建 Excel 工作簿**、如何 **向 Excel 添加数据**,甚至如何 **强制公式计算** 以便结果立即显示。我们还会顺带介绍 **如何使用 WRAPROWS** 进行相反的转换。完成后,你将拥有一个可直接运行的程序,并清晰了解每一步的意义。 + +![How to use WRAPCOLS in C# example](alt="Screenshot showing Excel workbook after using WRAPCOLS in C#") + +## 本指南涵盖内容 + +* 使用 Aspose.Cells 设置全新的工作簿。 +* 以编程方式填充单元格(**add data to Excel**)。 +* 应用 `WRAPCOLS` 函数将行转换为列。 +* 使用 `WRAPROWS` 将列翻转回行(**how to use wraprows**)。 +* 强制引擎立即评估公式(**force formula calculation**)。 +* 保存文件并检查输出。 + +无需外部文档——所有你需要的内容都在这里。 + +## 如何在 C# 中使用 WRAPCOLS – 步骤实现 + +下面是完整的源文件。请随意将其复制粘贴到新的控制台项目中,添加 Aspose.Cells NuGet 包,然后按 **F5** 运行。 + +```csharp +// ------------------------------------------------------------ +// How to Use WRAPCOLS in C# – Complete Example +// ------------------------------------------------------------ +using System; +using Aspose.Cells; + +namespace WrapFunctionsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a fresh workbook (this is how we **create excel workbook c#** style) + Workbook workbook = new Workbook(); + + // 2️⃣ Grab the first worksheet – it's created by default + Worksheet sheet = workbook.Worksheets[0]; + + // 3️⃣ **Add data to Excel**: place two numbers side‑by‑side + sheet.Cells["A1"].PutValue(1); // first value + sheet.Cells["B1"].PutValue(2); // second value + + // 4️⃣ **How to use WRAPCOLS** – turn the horizontal range A1:B1 into a vertical array + // The second argument (1) tells WRAPCOLS to create 1 column per element. + sheet["C1"].Formula = "WRAPCOLS(A1:B1, 1)"; + + // 5️⃣ **How to use WRAPROWS** – the opposite; turn the same range into a horizontal array + // Here we ask for 2 rows per element, which produces a single row with both values. + sheet["C2"].Formula = "WRAPROWS(A1:B1, 2)"; + + // 6️⃣ **Force formula calculation** so the workbook reflects the results immediately + workbook.CalculateFormula(); + + // 7️⃣ Save the workbook to disk – change the path to a folder you own + string outputPath = @"WrapFunctions.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + Console.WriteLine("Check cells C1 and C2 for the WRAPCOLS / WRAPROWS results."); + } + } +} +``` + +### 每行代码的意义 + +| 步骤 | 说明 | +|------|-------------| +| **1️⃣ 创建全新的工作簿** | 这是基础。Aspose.Cells 将 `Workbook` 对象视为整个 Excel 文件,因此你实际上是在 **以 C# 方式创建 Excel 工作簿**。 | +| **2️⃣ 获取第一个工作表** | 新工作簿始终至少包含一个工作表(`Worksheets[0]`)。提前访问可避免空引用异常。 | +| **3️⃣ 向 Excel 添加数据** | 通过使用 `PutValue`,我们 **add data to Excel** 而无需担心单元格格式。数字 `1` 和 `2` 是我们用于包装函数的测试数据。 | +| **4️⃣ 如何使用 WRAPCOLS** | `WRAPCOLS(A1:B1, 1)` 告诉 Excel 将范围 `A1:B1` 的值垂直展开,每行一个。结果放在 `C1` 并向下展开(`C1`、`C2`、…)。 | +| **5️⃣ 如何使用 WRAPROWS** | `WRAPROWS(A1:B1, 2)` 则相反:它创建水平展开,将两个值放入从 `C2` 开始的单行中。 | +| **6️⃣ 强制公式计算** | 默认情况下,Aspose.Cells 可能会延迟计算,直到在 Excel 中打开文件。调用 `CalculateFormula()` **forces formula calculation**,因此你可以在保存后立即读取结果。 | +| **7️⃣ 保存工作簿** | 最后一步将所有内容写入磁盘。打开生成的 `WrapFunctions.xlsx` 查看结果。 | + +## 创建 Excel 工作簿 C# – 环境设置 + +在运行代码之前,请确保你拥有正确的工具: + +1. **.NET 6.0+** – 最新的 LTS 版本效果最佳。 +2. **Visual Studio 2022**(或带 C# 扩展的 VS Code)。 +3. **Aspose.Cells for .NET** – 通过 NuGet 安装: + ```bash + dotnet add package Aspose.Cells + ``` +4. 用于输出文件的可写文件夹。 + +这些前置条件很少;不需要 COM 互操作或 Office 安装,这也是 Aspose.Cells 成为服务器端 Excel 生成的热门选择的原因。 + +## 向 Excel 添加数据 – 最佳实践 + +在以编程方式 **add data to Excel** 时,请考虑以下提示: + +* **使用 `PutValue`** 来写入原始数字或字符串;它会自动检测数据类型。 +* **避免在大型项目中硬编码单元格地址**——使用循环或命名范围以实现可扩展性。 +* **谨慎设置单元格样式**;每次样式更改都会产生开销。如果需要格式化,请创建单个样式对象并将其应用于多个单元格。 + +在我们的简短示例中仅插入了两个数字,但相同的模式可以扩展到数千行。 + +## 如何使用 WRAPROWS – 水平数组示例 + +如果你需要 `WRAPCOLS` 的相反操作,`WRAPROWS` 是你的首选。语法如下: + +``` +WRAPROWS(source_range, [rows_per_item]) +``` + +* `source_range` – 你想要转换的范围。 +* `rows_per_item` – 可选;告诉 Excel 每个元素占用多少行。在我们的演示中使用 `2` 将两个值强制放在同一行上。 + +你可以通过更改第二个参数进行实验: + +```csharp +// Example: split each value into its own column, three rows per item +sheet["D1"].Formula = "WRAPROWS(A1:B1, 3)"; +``` + +打开工作簿,你会看到值跨越三列展开,每列包含原始数字,按需重复。 + +## 强制公式计算 – 何时以及为何 + +你可能会想,‘我真的需要调用 `CalculateFormula()` 吗?’答案是 **是**,如果: + +* 你计划在保存后 **programmatically** 读取计算后的值。 +* 你希望确保文件在 Excel 中打开时已显示正确的结果。 +* 你在 **headless environment**(例如 Web API)中运行,且没有用户手动触发重新计算。 + +跳过此步骤不会破坏工作簿,但单元格会显示公式文本(`=WRAPCOLS(...)`),而不是计算值,直到 Excel 重新计算。 + +## 预期输出 – 查看结果 + +运行程序并打开 `WrapFunctions.xlsx` 后: + +| 单元格 | 公式 | 显示值 | +|------|---------|-----------------| +| **C1** | `=WRAPCOLS(A1:B1, 1)` | `1`(在 C1)和 `2`(在 C2)– 垂直列表 | +| **C2** | `=WRAPROWS(A1:B1, 2)` | `1` 在 C2,`2` 在 D2 – 水平列表 | + +因此你会看到从 **C1** 开始的一列值,以及从 **C2** 开始的一行值。这确认了两个 wrap 函数均按预期工作。 + +## 边缘情况与变体 + +| 场景 | 有什么变化? | 建议的调整 | +|----------|---------------|-----------------| +| **大范围 (A1:Z1)** | 更多值需要垂直展开 | 如果希望每组有多列,可增加 `WRAPCOLS` 的第二个参数。 | +| **非数值数据** | 字符串以相同方式处理 | 无需代码更改;`PutValue` 接受任何对象。 | +| **动态范围** | 编译时不知道大小 | 使用 `sheet.Cells.MaxDataColumn` 和 `MaxDataRow` 构建地址字符串。 | +| **多个工作表** | 需要在不同工作表上应用 wrap 函数 | 引用正确的工作表(`workbook.Worksheets["Sheet2"]`)。 | + +## 实战技巧 + +* **Pro tip:** 如果你的目标是 .NET Core 3.1+,请在 `using` 块中包装工作簿创建,以确保及时释放所有资源。 +* **Watch out for:** 在大范围内设置相同公式而不调用 `CalculateFormula()` 可能导致性能瓶颈。尽可能批量处理公式。 +* **Tip:** 如果需要在代码中读取计算后的值,请调用 ` + +{{< /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/chinese/net/tables-and-lists/_index.md b/cells/chinese/net/tables-and-lists/_index.md index 2386bd9e6a..d17b87ed27 100644 --- a/cells/chinese/net/tables-and-lists/_index.md +++ b/cells/chinese/net/tables-and-lists/_index.md @@ -51,6 +51,8 @@ Aspose.Cells for .NET 最强大的功能之一就是能够轻松读取和写入 解锁 Aspose.Cells for .NET 的强大功能。通过本指南,学习如何使用查询数据源读取和写入表格。 ### [在 Excel 中设置表格或列表的注释](./setting-comment-of-table-or-list/) 通过我们简单的分步指南了解如何使用 Aspose.Cells for .NET 为 Excel 中的表格设置注释。 +### [使用 Aspose.Cells 在 C# 中从范围创建表格 – 完整教程](./create-table-from-range-in-c-complete-aspose-cells-tutorial/) +通过本完整指南,学习如何使用 Aspose.Cells for .NET 在 C# 中将现有范围转换为表格,实现高效数据管理。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/chinese/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md b/cells/chinese/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md new file mode 100644 index 0000000000..ab25c223d9 --- /dev/null +++ b/cells/chinese/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md @@ -0,0 +1,229 @@ +--- +category: general +date: 2026-03-30 +description: 使用 Aspose.Cells 在 C# 中从范围创建表格——向单元格添加数据,将范围转换为 ListObject 并保存不带筛选的 Excel。 +draft: false +keywords: +- create table from range +- create excel workbook c# +- add data to cells +- convert range to listobject +- save excel without filter +language: zh +og_description: 使用 Aspose.Cells 在 C# 中从范围创建表格。学习如何向单元格添加数据、将范围转换为 ListObject,并在不使用筛选的情况下保存 + Excel。 +og_title: 在 C# 中从范围创建表 – 完整的 Aspose.Cells 教程 +tags: +- Aspose.Cells +- C# +- Excel Automation +title: 在 C# 中从范围创建表格 – 完整的 Aspose.Cells 教程 +url: /zh/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 在 C# 中从范围创建表格 – 完整 Aspose.Cells 教程 + +是否曾经需要在 C# 中 **create table from range**,但不确定如何将普通的数据块转换为功能完整的 Excel 表格?你并不是唯一遇到这个问题的人。无论是自动化报表、生成记分卡,还是仅仅为后续分析清理数据,掌握这个小技巧都能为你省下大量手动工作。 + +在本指南中,我们将完整演示整个过程:**create excel workbook c#**、**add data to cells**、**convert range to ListObject**,以及最后的 **save excel without filter**。完成后,你将拥有一段可直接在引用 Aspose.Cells 的 .NET 项目中运行的代码片段。 + +--- + +## 前置条件 + +- 已安装 .NET 6+(或 .NET Framework 4.7.2+) +- Aspose.Cells for .NET(NuGet 包 `Aspose.Cells`)——撰写本文时的最新版本(23.10)运行良好。 +- 具备基本的 C# 语法了解——不需要深入的 Excel 互操作知识。 + +如果你满足以上条件,下面开始吧。 + +--- + +## 第一步:在 C# 中创建 Excel 工作簿 + +首先我们需要一个全新的工作簿对象。可以把它想象成最终将保存我们表格的空 Excel 文件。 + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is equivalent to opening a blank .xlsx file. +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (default) worksheet. +``` + +> **小技巧:** `Workbook()` 不带参数时会创建一个包含默认工作表的工作簿,非常适合快速演示。如果需要多个工作表,可以随后使用 `workbook.Worksheets.Add()` 添加。 + +--- + +## 第二步:向单元格写入数据 + +接下来我们将在工作表中填充一小段数据——两列(Name、Score)和三行值。这展示了 **add data to cells** 的简洁写法。 + +```csharp +// Header row +worksheet.Cells["A1"].PutValue("Name"); +worksheet.Cells["B1"].PutValue("Score"); + +// Data rows +worksheet.Cells["A2"].PutValue("Alice"); +worksheet.Cells["B2"].PutValue(85); +worksheet.Cells["A3"].PutValue("Bob"); +worksheet.Cells["B3"].PutValue(92); +``` + +为什么使用 `PutValue`?它会自动检测数据类型(字符串或数值),并相应地设置单元格格式,省去在简单场景下手动处理 `Style` 对象的麻烦。 + +> **预期输出:** 完成此步骤后,打开 Excel,你会看到一个两列的网格,标题为 “Name” 与 “Score”,随后是两行数据。 + +--- + +## 第三步:将范围转换为 ListObject(表格) + +魔法就在这里:把普通范围转换为 Excel 表格(在 Aspose.Cells API 中称为 **ListObject**)。这不仅增加了视觉样式,还启用了排序、过滤和结构化引用等内置功能。 + +```csharp +// Define the range boundaries. +// startRow and startColumn are zero‑based indexes. +// rowCount includes the header row. +int startRow = 0; // Row 1 in Excel +int startColumn = 0; // Column A +int rowCount = 3; // Header + 2 data rows +int columnCount = 2; // Two columns: Name & Score + +// Add a ListObject to the worksheet and retrieve the object. +int listIndex = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); +ListObject table = worksheet.ListObjects[listIndex]; + +// Turn on the UI filter dropdowns so users can interact with the table. +table.ShowAutoFilter = true; +``` + +> **为什么使用 ListObject?** +> - **结构化引用**:公式可以通过列名引用。 +> - **自动筛选 UI**:用户获得下拉箭头进行快速过滤。 +> - **样式**:稍后只需一行代码即可应用内置表格样式。 + +--- + +## 第四步:移除自动筛选 UI(保存 Excel 时不带过滤) + +有时你需要一张没有筛选箭头的干净工作表——例如,工作簿是最终报告时。Aspose.Cells 23.10 引入了一种直接去除筛选 UI 的方法。 + +```csharp +// Remove the filter UI completely. +table.AutoFilter = null; // Clears the underlying filter object. +table.ShowAutoFilter = false; // Hides the dropdown arrows. +``` + +请注意,我们并没有删除数据,只是关闭了可视的筛选控件。这满足了 **save excel without filter** 的需求。 + +--- + +## 第五步:保存工作簿 + +最后,将工作簿写入磁盘。文件中仍包含表格,但没有任何筛选 UI。 + +```csharp +// Choose a folder you have write access to. +string outputPath = @"C:\Temp\NoAutoFilter.xlsx"; +workbook.Save(outputPath); +``` + +打开 `NoAutoFilter.xlsx`,你会看到表格使用默认格式进行样式化,但没有筛选箭头。数据完整,文件即可分发。 + +--- + +![展示使用 Aspose.Cells 在 Excel 中从范围创建表格的截图](image.png "创建表格截图") + +*图片说明:* **展示使用 Aspose.Cells 在 Excel 中从范围创建表格的截图** – 直观证明表格已存在且没有筛选下拉箭头。 + +--- + +## 完整、可运行的示例 + +下面是可以直接复制到控制台应用程序中的完整程序。它包含上述所有步骤,并附加了一些额外注释以便于理解。 + +```csharp +using System; +using Aspose.Cells; + +namespace AsposeTableDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add data to cells – this is the “add data to cells” part. + worksheet.Cells["A1"].PutValue("Name"); + worksheet.Cells["B1"].PutValue("Score"); + worksheet.Cells["A2"].PutValue("Alice"); + worksheet.Cells["B2"].PutValue(85); + worksheet.Cells["A3"].PutValue("Bob"); + worksheet.Cells["B3"].PutValue(92); + + // 3️⃣ Convert the range into a ListObject (i.e., create table from range). + int startRow = 0, startColumn = 0, rowCount = 3, columnCount = 2; + int listIdx = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); + ListObject table = worksheet.ListObjects[listIdx]; + table.ShowAutoFilter = true; // optional UI filter + + // 4️⃣ Remove the AutoFilter UI – “save excel without filter”. + table.AutoFilter = null; + table.ShowAutoFilter = false; + + // 5️⃣ Save the workbook. + string filePath = @"C:\Temp\NoAutoFilter.xlsx"; + workbook.Save(filePath); + + Console.WriteLine($"Workbook saved to {filePath}"); + } + } +} +``` + +运行程序后,打开 `C:\Temp\NoAutoFilter.xlsx`。你会看到一个格式良好的表格,没有筛选箭头,且数据已正确写入。这就是 **create excel workbook c#** 工作流的全部实现,代码行数不足 60 行。 + +--- + +## 常见问题与边缘情况 + +**问:如果我的数据范围不是连续的怎么办?** +答:`ListObjects.Add` 需要矩形范围。如果数据不连续,请先构建一个临时范围(例如,将各片段复制到新工作表),再进行转换。 + +**问:我可以应用自定义表格样式吗?** +答:当然可以。创建 `ListObject` 后,设置 `table.TableStyleType = TableStyleType.TableStyleMedium9;`(或任意 65 种内置样式之一)。这是一种让表格匹配企业品牌的好方法。 + +**问:如何保留筛选功能但隐藏箭头?** +答:筛选逻辑位于 `table.AutoFilter`。将 `ShowAutoFilter = false` 只会隐藏 UI,底层筛选仍然存在。因此后续仍可通过代码对行进行筛选。 + +**问:大数据集(10k+ 行)怎么办?** +答:同样的 API 仍然适用,但建议在批量插入前关闭自动计算(`workbook.CalcEngine = false`),插入完成后再启用,以提升性能。 + +--- + +## 小结 + +我们已经一步步演示了如何在 C# 中使用 Aspose.Cells **create table from range**——从 **create excel workbook c#**、**add data to cells**、**convert range to ListObject**,到 **save excel without filter**。代码完整、可直接运行,已准备好投入生产使用。 + +接下来,你可以探索: + +- 为高分添加条件格式。 +- 使用 `workbook.Save("Report.pdf", SaveFormat.Pdf);` 将工作簿导出为 PDF。 +- 使用 `table.Columns["Score"].DataBodyRange.Sort` 对表格进行程序化排序。 + +欢迎尝试不同的数据集、表格样式,甚至多工作表。该 API 足够灵活,能够处理从小型记分板到大型财务账本的各种场景。 + +有疑问或遇到问题?在下方留言或在 GitHub 上私信我。祝编码愉快,玩转原始范围到精美 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/czech/net/conversion-to-pdf/_index.md b/cells/czech/net/conversion-to-pdf/_index.md index 326897a0d0..5437024631 100644 --- a/cells/czech/net/conversion-to-pdf/_index.md +++ b/cells/czech/net/conversion-to-pdf/_index.md @@ -34,6 +34,8 @@ Ale počkejte, je toho víc! Co když chcete převést grafy z excelových list Převádějte excelovské tabulky do PDF snadno s Aspose.Cells pro .NET! Postupujte podle našeho podrobného návodu pro bezproblémový zážitek. ### [Převod grafu do PDF v .NET](./convert-chart-to-pdf/) Naučte se, jak převést grafy z Excelu do PDF v .NET pomocí Aspose.Cells s tímto podrobným návodem! Ideální pro programátory všech úrovní. +### [Uložení sešitu jako PDF pomocí Aspose.Cells – Kompletní průvodce krok za krokem](./save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/) +Naučte se, jak pomocí Aspose.Cells uložit Excel sešit do PDF pomocí podrobného krok za krokem návodu. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/czech/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md b/cells/czech/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md new file mode 100644 index 0000000000..b3f3a8591f --- /dev/null +++ b/cells/czech/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md @@ -0,0 +1,244 @@ +--- +category: general +date: 2026-03-30 +description: Naučte se, jak uložit sešit jako PDF pomocí Aspose.Cells. Tento tutoriál + také pokrývá export listu do PDF, jak exportovat Excel do PDF a vytvořit PDF z listu. +draft: false +keywords: +- save workbook as pdf +- export worksheet to pdf +- how to export excel to pdf +- save excel as pdf +- create pdf from worksheet +language: cs +og_description: Uložte sešit jako PDF snadno. Tento průvodce ukazuje, jak exportovat + list do PDF, jak exportovat Excel do PDF a jak vytvořit PDF z listu pomocí C#. +og_title: Uložte sešit jako PDF pomocí Aspose.Cells – Kompletní průvodce +tags: +- Aspose.Cells +- C# +- PDF generation +title: Uložte sešit jako PDF pomocí Aspose.Cells – Kompletní průvodce krok za krokem +url: /cs/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Uložení sešitu jako pdf – Kompletní krok‑za‑krokem průvodce + +Už jste někdy potřebovali **save workbook as pdf**, ale nebyli jste si jisti, která knihovna zachová vaše čísla beze změny? Nejste sami. V mnoha projektech musíme převést data z Excelu do upraveného PDF a udělat to správně šetří hodiny ladění. + +V tomto tutoriálu projdeme přesný kód, který potřebujete k **save workbook as pdf** s Aspose.Cells, a zároveň vám ukážeme, jak **export worksheet to pdf**, odpovíme na otázky *how to export excel to pdf* a předvedeme čistý způsob, jak **create pdf from worksheet** s vlastními nastaveními přesnosti. + +Na konci průvodce budete mít připravenou spustitelnou C# konzolovou aplikaci, která vytvoří PDF obsahující pouze významné číslice, na které vám záleží. Žádné zbytečné doplňky, jen solidní, připravené řešení pro produkci. + +--- + +## Co se naučíte + +- Jak nastavit nový `Workbook` a zaměřit se na jeho první list. +- Přesná metoda k **save workbook as pdf** při zachování číselné přesnosti. +- Proč vlastnost `SignificantDigits` má význam, když **export worksheet to pdf**. +- Běžné úskalí při pokusu o **how to export excel to pdf** a jak se jim vyhnout. +- Rychlé způsoby, jak **save excel as pdf** s různými možnostmi stránky, a jak programově **create pdf from worksheet**. + +### Požadavky + +- .NET 6.0 nebo novější (kód funguje také s .NET Framework 4.5+). +- Platná licence Aspose.Cells (nebo bezplatná dočasná licence pro testování). +- Visual Studio 2022 nebo jakékoli C#‑kompatibilní IDE. + +Pokud máte tyto základy pokryté, pojďme na to. + +--- + +## Krok 1 – Instalace Aspose.Cells a inicializace sešitu + +Nejprve: potřebujete balíček Aspose.Cells NuGet. Otevřete terminál ve složce projektu a spusťte: + +```bash +dotnet add package Aspose.Cells +``` + +Po instalaci balíčku vytvořte nový objekt `Workbook`. Tento objekt nakonec **save workbook as pdf**. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialise a fresh workbook – think of it as a blank Excel file. + Workbook workbook = new Workbook(); + + // Grab the first worksheet (index 0). This is where we’ll put our data. + Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Proč tento krok?* +Vytvoření sešitu vám poskytne čisté plátno a výběr prvního listu zajistí, že pracujete s známou lokací. Přeskočení tohoto kroku může vést k chybám *null reference*, když později zkusíte **export worksheet to pdf**. + +--- + +## Krok 2 – Vložení vysoce přesných dat + +Nyní vložíme číslo, které má více desetinných míst, než chceme v PDF zobrazit. To ukazuje, jak nastavení `SignificantDigits` ořezává výstup. + +```csharp + // Place a high‑precision number in cell A1. + worksheet.Cells["A1"].PutValue(1234.56789); +``` + +Pokud nyní spustíte program a jednoduše zavoláte `workbook.Save("output.pdf")`, PDF zobrazí celé `1234.56789`. To je v některých případech v pořádku, ale často potřebujete zaokrouhlit na konkrétní počet významných číslic – zejména pro finanční zprávy. + +--- + +## Krok 3 – Konfigurace možností uložení PDF + +Aspose.Cells vám poskytuje detailní kontrolu pomocí `PdfSaveOptions`. Vlastnost, na které nám záleží, je `SignificantDigits`. Nastavení na `4` říká enginu, aby při **save workbook as pdf** ponechal jen čtyři významné číslice. + +```csharp + // Configure PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 // This trims the number to 1235 in the PDF. + }; +``` + +*Proč použít `SignificantDigits`?* +Když **create pdf from worksheet**, často musíte dodržovat regulační pravidla zaokrouhlování. Tato možnost provede zaokrouhlení za vás, takže nemusíte ručně formátovat každou buňku. + +--- + +## Krok 4 – Export listu do PDF s nastavenými možnostmi + +Tady je okamžik pravdy: skutečně **save workbook as pdf** pomocí právě definovaných možností. + +```csharp + // Save the workbook as a PDF using the configured options. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + } +} +``` + +Spuštěním programu se vygeneruje soubor `SignificantDigits.pdf` ve výstupní složce projektu. Otevřete jej a uvidíte `1235` v buňce A1 – číslo bylo zaokrouhleno na čtyři významné číslice. + +*Klíčový bod:* Metoda `Save` přijímá jak cestu k souboru, tak `PdfSaveOptions`. Pokud vynecháte možnosti, vrátíte se k výchozímu chování, které nemusí splňovat vaše požadavky na přesnost. + +--- + +## Krok 5 – Ověření výstupu a řešení běžných problémů + +### Očekávaný výsledek + +- Jednostránkové PDF pojmenované `SignificantDigits.pdf`. +- Buňka A1 zobrazuje `1235` (čtyři významné číslice). +- Neobjeví se žádné další listy ani skrytý obsah. + +### Často kladené otázky + +| Question | Answer | +|----------|--------| +| **Co když potřebuji více než jeden list?** | Projděte `workbook.Worksheets` a použijte stejné `PdfSaveOptions` při ukládání každého listu samostatně, nebo v možnostech nastavte `OnePagePerSheet = true`. | +| **Mohu zachovat původní formát čísla?** | Ano – nastavte `PdfSaveOptions.AllColumnsInOnePage = true` a nechte formátovací pravidla Excelu, aby to řešila, ale pamatujte, že `SignificantDigits` i tak přepíše číselnou přesnost. | +| **Funguje to s .xlsx soubory, které již existují?** | Rozhodně. Nahraďte `new Workbook()` za `new Workbook("input.xlsx")` a zbytek kódu zůstane stejný. | +| **Co když je PDF prázdné?** | Ověřte, že sešit skutečně obsahuje data a že ukládáte do zapisovatelného adresáře. Také se ujistěte, že licence Aspose.Cells je správně aplikována; nelicencovaná zkušební verze může omezovat výstup. | + +### Pro tip + +Pokud potřebujete **save excel as pdf** s konkrétní orientací stránky, nastavte `pdfSaveOptions.PageSetup.Orientation = PageOrientation.Landscape;` před voláním `Save`. Tento malý úprava vám často ušetří ruční úpravu PDF později. + +--- + +## Varianty: Export více listů nebo vlastní nastavení stránky + +### Export všech listů jedním voláním + +```csharp +PdfSaveOptions allSheetsOptions = new PdfSaveOptions +{ + SignificantDigits = 4, + OnePagePerSheet = true // Each worksheet gets its own page. +}; + +workbook.Save("AllSheets.pdf", allSheetsOptions); +``` + +### Export jednoho listu jako PDF + +Pokud chcete **export worksheet to pdf** pouze pro konkrétní list, použijte metodu `ToPdf` objektu `Worksheet`: + +```csharp +Worksheet sheet = workbook.Worksheets["Sheet2"]; +sheet.ToPdf("Sheet2.pdf", pdfSaveOptions); +``` + +### Úprava okrajů stránky + +```csharp +pdfSaveOptions.PageSetup.TopMargin = 20; +pdfSaveOptions.PageSetup.BottomMargin = 20; +``` + +Tyto úpravy vám umožní jemně doladit finální dokument bez následného zpracování. + +--- + +## Kompletní funkční příklad + +Níže je kompletní, připravený program ke kopírování a vložení, který zahrnuje vše, o čem jsme mluvili. Uložte jej jako `Program.cs` a spusťte `dotnet run`. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and select the first worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Insert a high‑precision number. + worksheet.Cells["A1"].PutValue(1234.56789); + + // 3️⃣ Set PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 + }; + + // 4️⃣ Save the workbook as PDF. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + + // Optional: Export another sheet with custom settings. + // Worksheet sheet2 = workbook.Worksheets.Add("Report"); + // sheet2.Cells["B2"].PutValue(9876.54321); + // sheet2.ToPdf("Report.pdf", pdfSaveOptions); + } +} +``` + +**Výsledek:** Otevřete `SignificantDigits.pdf` – uvidíte zaokrouhlenou hodnotu `1235`. Velikost souboru je skromná a rozvržení odpovídá původnímu listu v Excelu. + +--- + +## Závěr + +Právě jsme vám ukázali, jak **save workbook as pdf** pomocí Aspose.Cells, pokrývající vše od základního nastavení po pokročilé možnosti jako **export worksheet to pdf**, **how to export excel to pdf** a **create pdf from worksheet** s přesnou číselnou kontrolou. + +Přístup je jednoduchý, vyžaduje jen několik řádků C# a funguje napříč verzemi .NET. Dále můžete zkoumat přidávání hlaviček/patiček, vkládání obrázků nebo generování PDF ze šablon – vše staví na základě, který nyní máte. + +Máte nápad, který byste chtěli vyzkoušet? Možná potřebujete PDF chránit heslem nebo sloučit několik PDF dohromady. To jsou přirozené rozšíření a API Aspose.Cells vám to umožní. Ponořte se, experimentujte a nechte knihovnu udělat těžkou práci. + +*Šťastné programování! Pokud narazíte na problémy, zanechte komentář níže a společně je vyřešíme.* + +![save workbook as pdf screenshot](/images/save-workbook-as-pdf.png){alt="ukázka uložení sešitu jako pdf zobrazující vygenerovaný PDF soubor"} + +{{< /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/czech/net/converting-excel-files-to-other-formats/_index.md b/cells/czech/net/converting-excel-files-to-other-formats/_index.md index de61c4ec61..1f0fdd7932 100644 --- a/cells/czech/net/converting-excel-files-to-other-formats/_index.md +++ b/cells/czech/net/converting-excel-files-to-other-formats/_index.md @@ -56,6 +56,8 @@ Naučte se, jak převést soubory Excelu do formátu PDF/A-1a pro archivní úč Naučte se, jak programově převést JSON do CSV v .NET pomocí Aspose.Cells. Postupujte podle našeho podrobného návodu, abyste zajistili bezproblémovou transformaci dat. ### [Programový převod souboru Excel do formátu PPTX v .NET](./converting-excel-file-to-pptx/) Naučte se, jak programově převést soubor aplikace Excel do prezentace v PowerPointu (PPTX) pomocí Aspose.Cells pro .NET v tomto podrobném návodu. +### [Vytvoření PowerPointu z Excelu – krok‑za‑krokem průvodce v C#](./create-powerpoint-from-excel-step-by-step-c-guide/) +Naučte se, jak pomocí Aspose.Cells v .NET převést data z Excelu do prezentace PowerPoint (PPTX) pomocí C#. ### [Programové zadávání HTML CrossType ve výstupním HTML v .NET](./specifying-html-crosstype-in-output-html/) Naučte se, jak v Aspose.Cells pro .NET zadat HTML CrossType. Postupujte podle našeho podrobného návodu a převeďte soubory Excelu do HTML s přesností. ### [Programové čtení čísel v tabulce v .NET](./reading-numbers-spreadsheet/) diff --git a/cells/czech/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md b/cells/czech/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md new file mode 100644 index 0000000000..229b28f59e --- /dev/null +++ b/cells/czech/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-03-30 +description: Vytvořte PowerPoint z Excelu rychle pomocí Aspose.Cells a Aspose.Slides. + Naučte se, jak exportovat list jako obrázek a uložit prezentaci jako PPTX v C#. +draft: false +keywords: +- create powerpoint from excel +- convert excel to powerpoint +- export worksheet as image +- save presentation as pptx +- export excel chart as picture +language: cs +og_description: Vytvořte PowerPoint z Excelu v C# pomocí Aspose. Exportujte list jako + obrázek, zachovejte editovatelnost tvarů a uložte výsledek jako PPTX. +og_title: Vytvořte PowerPoint z Excelu – kompletní C# tutoriál +tags: +- Aspose +- C# +- Office Automation +title: Vytvořte PowerPoint z Excelu – krok za krokem průvodce C# +url: /cs/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Vytvoření PowerPointu z Excelu – Kompletní C# tutoriál + +Už jste někdy potřebovali **vytvořit PowerPoint z Excelu**, ale nebyli jste si jisti, která knihovna umožní zachovat editovatelnost vašich grafů? Nejste v tom sami. V mnoha scénářích reportování budete chtít převést tabulku na sadu snímků, aniž byste ztratili možnost později upravit textová pole. Tento průvodce vám ukáže přesně, jak **převést Excel do PowerPointu** pomocí Aspose.Cells a Aspose.Slides, a zároveň jak **exportovat list jako obrázek** a nakonec **uložit prezentaci jako PPTX**. + +Projdeme každý řádek kódu, vysvětlíme *proč* má každé nastavení význam, a dokonce se podíváme, co dělat, pokud váš sešit obsahuje složité grafy, které raději exportujete jako obrázek. Na konci budete mít připravenou spustitelnou C# konzolovou aplikaci, která vezme `ShapesDemo.xlsx` a vytvoří `Result.pptx` – vše s editovatelnými textovými poli a ostrými obrázky. + +## Co budete potřebovat + +- .NET 6.0 nebo novější (API funguje také s .NET Framework, ale .NET 6 je optimální). +- **Aspose.Cells** a **Aspose.Slides** NuGet balíčky (licence zdarma pro zkušební verzi fungují pro testování). +- Základní znalost syntaxe C# – pokud umíte napsat `Console.WriteLine`, jste připraveni. + +Žádná další COM interop, žádný Office nainstalovaný na serveru a žádné ruční kopírování obrázků. Vše je zpracováno programově. + +--- + +## Vytvoření PowerPointu z Excelu – Načtení sešitu a nastavení exportních možností + +Prvním krokem je otevřít soubor Excel a říct Aspose.Cells, jak má být list vykreslen. Objekt `ImageOrPrintOptions` je místem, kde se děje kouzlo: povolíme `ExportShapes` a `ExportEditableTextBoxes`, aby se všechny tvary (včetně grafů) staly součástí snímku **a** zůstaly po konverzi editovatelné. + +```csharp +using Aspose.Cells; +using Aspose.Slides; + +// 1️⃣ Load the Excel workbook +string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; +Workbook workbook = new Workbook(excelPath); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first sheet + +// 2️⃣ Configure image export – keep shapes editable +ImageOrPrintOptions imageOptions = new ImageOrPrintOptions +{ + OnePagePerSheet = true, // Export the whole sheet as one slide + ExportShapes = true, // Include shapes (charts, drawings) + ExportEditableTextBoxes = true // Make text boxes editable in PPTX +}; +``` + +**Proč tyto příznaky?** +- `OnePagePerSheet` zabraňuje rozdělení listu na více snímků – získáte jeden, plně velký obrázek. +- `ExportShapes` říká Aspose.Cells, aby rasterizoval grafy *a* vektorové tvary, zachovávajíc jejich vzhled. +- `ExportEditableTextBoxes` je tajná ingredience, která vám umožní dvojklikem na textové pole v PowerPointu upravit text, aniž byste znovu otevírali Excel. + +> **Tip:** Pokud potřebujete jen statický obrázek grafu, nastavte `ExportShapes = false` a později použijte metodu `ExportExcelChartAsPicture` (viz závěrečná část). + +--- + +## Převod Excelu do PowerPointu – Vytvoření obrázku z listu + +S připravenými možnostmi nyní převedeme list na `System.Drawing.Image`. `WorksheetToImageConverter` provádí těžkou práci a aplikuje nastavení, která jsme právě definovali. + +```csharp +// 3️⃣ Convert the worksheet to an image using the options above +WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); +System.Drawing.Image sheetImage = converter.ConvertToImage(0, imageOptions); +``` + +Argument `0` označuje první stránku (máme jen jednu kvůli `OnePagePerSheet`). Výsledný `sheetImage` zachovává původní DPI, takže váš snímek nebude pixelovaný ani na displejích s vysokým rozlišením. + +--- + +## Uložení prezentace jako PPTX – Vložení obrázku do snímku + +Nyní vytvoříme nový soubor PowerPoint, přidáme snímek a vložíme na něj bitmapu. Aspose.Slides zachází s obrázkem jako s tvarem *picture frame*, který můžete později měnit velikost nebo přesouvat stejně jako jakýkoli nativní objekt PowerPointu. + +```csharp +// 4️⃣ Create a new PowerPoint presentation +Presentation presentation = new Presentation(); +ISlide slide = presentation.Slides[0]; // The default blank slide + +// Add the Excel‑derived image as a picture frame +slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, // Simple rectangle container + 0, 0, // Top‑left corner (0,0) + sheetImage.Width, // Width of the picture + sheetImage.Height, // Height of the picture + sheetImage); // The bitmap we generated +``` + +> **Co když je obrázek větší než velikost snímku?** +> PowerPoint automaticky ořízne vše, co přesahuje rozměry snímku. Rychlé řešení je před vložením obrázek změnit měřítko: + +```csharp +float scale = Math.Min(presentation.SlideSize.Size.Width / (float)sheetImage.Width, + presentation.SlideSize.Size.Height / (float)sheetImage.Height); +int newWidth = (int)(sheetImage.Width * scale); +int newHeight = (int)(sheetImage.Height * scale); +``` + +Poté můžete předat `newWidth` a `newHeight` metodě `AddPictureFrame`. + +--- + +## Export listu jako obrázek – Uložení souboru PPTX + +Nakonec uložíme prezentaci na disk. Příznak `SaveFormat.Pptx` zajišťuje moderní formát OpenXML, který funguje ve všech recentních verzích PowerPointu. + +```csharp +// 5️⃣ Save the presentation as a PPTX file +string pptxPath = "YOUR_DIRECTORY/Result.pptx"; +presentation.Save(pptxPath, SaveFormat.Pptx); +``` + +Když otevřete `Result.pptx`, uvidíte jeden snímek, který vypadá přesně jako váš list v Excelu, ale stále můžete kliknout na jakékoli textové pole a upravit jeho obsah přímo v PowerPointu. + +--- + +## Export grafu z Excelu jako obrázek – Když jsou preferovány rastrové obrázky + +Někdy nepotřebujete editovatelné tvary; stačí vysoce kvalitní PNG grafu. Aspose.Cells může exportovat konkrétní graf jako obrázek, aniž by převáděl celý list: + +```csharp +// Example: Export the first chart on the sheet as a PNG +int chartIndex = 0; // Adjust if you have multiple charts +Chart chart = worksheet.Charts[chartIndex]; +ImageOrPrintOptions chartOptions = new ImageOrPrintOptions +{ + ImageFormat = ImageFormat.Png, + OnePagePerSheet = false +}; +chart.ToImage("chart.png", chartOptions); +``` + +Poté můžete vložit `chart.png` do snímku stejným způsobem, jakým jsme přidali `sheetImage`. Tento přístup snižuje velikost souboru PPTX a je užitečný, když okolní data na snímku nejsou potřeba. + +--- + +## Časté problémy a jak se jim vyhnout + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **Text vypadá rozmazaně** | Exportováno při nízkém DPI (výchozí 96). | Nastavte `imageOptions.Dpi = 300;` před konverzí. | +| **Tvary zmizí** | `ExportShapes` bylo nastaveno na `false`. | Ujistěte se, že `ExportShapes = true`, když potřebujete editovatelné grafiky. | +| **Neshoda velikosti snímku** | Obrázek je větší než rozměry snímku. | Změňte velikost obrázku (viz úryvek kódu) nebo změňte velikost snímku pomocí `presentation.SlideSize`. | +| **Výjimka licence** | Použití zkušební verze bez řádné aktivace. | Zavolejte `License license = new License(); license.SetLicense("Aspose.Total.lic");` na začátku metody `Main`. | + +--- + +## Kompletní funkční příklad (připravený ke kopírování a vložení) + +Níže je celý program, připravený vložit do nového konzolového projektu. Nahraďte `YOUR_DIRECTORY` složkou, která obsahuje váš soubor Excel. + +```csharp +using System; +using Aspose.Cells; +using Aspose.Slides; +using System.Drawing; + +namespace ExcelToPowerPointDemo +{ + class Program + { + static void Main(string[] args) + { + // ----------------------------------------------------------------- + // 1️⃣ Load the Excel workbook + // ----------------------------------------------------------------- + string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; + Workbook workbook = new Workbook(excelPath); + Worksheet worksheet = workbook.Worksheets[0]; + + // ----------------------------------------------------------------- + // 2️⃣ Set up export options – keep shapes editable + // ----------------------------------------------------------------- + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + OnePagePerSheet = true, + ExportShapes = true, + ExportEditableTextBoxes = true, + Dpi = 300 // High‑resolution output + }; + + // ----------------------------------------------------------------- + // 3️⃣ Convert worksheet to an image + // ----------------------------------------------------------------- + WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); + Image sheetImage = converter.ConvertToImage(0, imageOptions); + + // ----------------------------------------------------------------- + // 4️⃣ Create PowerPoint and add the image as a slide + // ----------------------------------------------------------------- + Presentation presentation = new Presentation(); + ISlide slide = presentation.Slides[0]; + slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, + 0, 0, + sheetImage.Width, + sheetImage.Height, + sheetImage); + + // ----------------------------------------------------------------- + // 5️⃣ Save the PPTX file + // ----------------------------------------------------------------- + string pptxPath = "YOUR_DIRECTORY/Result.pptx"; + presentation.Save(pptxPath, SaveFormat.Pptx); + + Console.WriteLine("✅ PowerPoint created successfully at: " + pptxPath); + } + } +} +``` + +**Očekávaný výstup:** +Spuštěním programu se vypíše `✅ PowerPoint created successfully at: YOUR_DIRECTORY/Result.pptx`. Otevřením PPTX uvidíte jeden snímek odrážející původní list v Excelu, s editovatelnými textovými poli. + +--- + +## Shrnutí a další kroky + +Nyní víte, jak **vytvořit PowerPoint z Excelu** pomocí výkonných API od Aspose, jak **exportovat list jako obrázek** a jak **uložit prezentaci jako PPTX** při zachování editovatelnosti. Stejný vzor funguje i pro sešity s více listy – stačí projít `workbook.Worksheets` a pro každý přidat nový snímek. + +**Co dál zkoušet?** + +- **Hromadná konverze:** Procházet složku s Excel soubory a pro každý vytvořit sadu snímků. +- **Dynamické rozvržení:** Použít `slide.LayoutSlide` k aplikaci předpřipravených šablon PowerPointu. +- **Export pouze grafu:** Kombinovat úryvek “Export Excel chart as picture” s placeholdery snímků pro úspornější prezentaci. +- **Pokročilé stylování:** Aplikovat vlastní pozadí snímků, přechody nebo animace pomocí Aspose.Slides. + +Neváhejte experimentovat – změňte DPI, zaměňte `ShapeType.Ellipse` za kruhový rámeček obrázku, nebo dokonce vložte více obrázků na jeden snímek. Možnosti jsou neomezené, když máte programatickou kontrolu nad + +{{< /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/czech/net/document-properties/_index.md b/cells/czech/net/document-properties/_index.md index 56efe6c0e3..a0aecd1f91 100644 --- a/cells/czech/net/document-properties/_index.md +++ b/cells/czech/net/document-properties/_index.md @@ -35,6 +35,8 @@ Naučte se, jak přistupovat k vlastnostem dokumentu v Excelu pomocí Aspose.Cel Naučte se, jak přistupovat k vlastnostem dokumentu v Excelu pomocí Aspose.Cells pro .NET s naším podrobným návodem. Spravujte své tabulky efektivně. ### [Přidávání vlastností dokumentu v .NET](./adding-document-properties/) Naučte se, jak přidat vlastnosti dokumentu v Excelu pomocí Aspose.Cells pro .NET s tímto podrobným návodem krok za krokem. +### [Jak uložit XLSB s vlastními vlastnostmi v C# – krok za krokem](./how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/) +Naučte se, jak v C# pomocí Aspose.Cells uložit soubor XLSB s vlastními vlastnostmi. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/czech/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md b/cells/czech/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md new file mode 100644 index 0000000000..1b6959fa7d --- /dev/null +++ b/cells/czech/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md @@ -0,0 +1,232 @@ +--- +category: general +date: 2026-03-30 +description: Naučte se, jak v C# uložit soubor XLSB při přidávání vlastní vlastnosti, + přečíst ji zpět a ovládnout ukládání sešitu jako XLSB pomocí Aspose.Cells. Kompletní + kód je zahrnut. +draft: false +keywords: +- how to save xlsb +- add custom property +- how to add property +- how to read property +- save workbook as xlsb +language: cs +og_description: Jak uložit XLSB v C#? Tento tutoriál vám ukáže, jak přidat vlastní + vlastnost, přečíst ji zpět a uložit sešit jako XLSB pomocí Aspose.Cells. +og_title: Jak uložit XLSB s vlastními vlastnostmi v C# – Kompletní průvodce +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Jak uložit XLSB s vlastními vlastnostmi v C# – krok za krokem +url: /cs/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak uložit XLSB s vlastními vlastnostmi v C# – krok za krokem průvodce + +Už jste se někdy zamýšleli **jak uložit XLSB** a zároveň zachovat další metadata připojená k listu? Nejste v tom jediní. V mnoha podnikovém scénářích potřebujete binární soubor Excel, který stále nese vaše vlastní páry klíč/hodnota – například ID smlouvy, příznak zpracování nebo verzi. + +Dobrou zprávou je, že Aspose.Cells to dělá hračkou. V tomto průvodci uvidíte přesně, jak přidat vlastní vlastnost, uložit ji a poté ji načíst zpět, a to vše při **ukládání sešitu jako XLSB**. Žádné nejasné odkazy, jen kompletní, spustitelný příklad, který můžete dnes vložit do svého projektu. + +## Co získáte + +- Čerstvý soubor `.xlsb` vytvořený od nuly. +- Schopnost **přidat vlastní vlastnost** do listu. +- Kód, který ukazuje **jak načíst vlastnost** po načtení souboru. +- Tipy na úskalí, na která můžete narazit při **ukládání sešitu jako XLSB**. + +> **Požadavky:** .NET 6+ (nebo .NET Framework 4.6+), Visual Studio (nebo jakékoli C# IDE) a knihovna Aspose.Cells pro .NET nainstalovaná přes NuGet. Nic víc. + +--- + +## Krok 1: Nastavení projektu a vytvoření nového sešitu + +Nejprve – pojďme získat čistý objekt sešitu. + +```csharp +using Aspose.Cells; +using System; + +// Initialize a new workbook; this will be an in‑memory Excel file. +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0) – it’s created automatically. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Proč je to důležité:* `Workbook` je vstupní bod pro každou operaci v Aspose.Cells. Začátkem s novou instancí se vyhnete jakémukoli skrytému stavu, který by mohl později poškozovat vaše vlastní metadata. + +--- + +## Krok 2: **Přidat vlastní vlastnost** do listu + +Nyní připojíme pár klíč/hodnota, který existuje jen v tomto listu. + +```csharp +// Add a user‑defined property called "MyProperty" with the value "CustomValue". +worksheet.CustomProperties.Add("MyProperty", "CustomValue"); +``` + +> **Tip:** Názvy vlastností rozlišují velká a malá písmena. Pokud později zkusíte získat `"myproperty"`, dostanete `KeyNotFoundException`. Držte se pojmenovací konvence—camelCase nebo PascalCase—od samého začátku. + +--- + +## Krok 3: **Uložit sešit jako XLSB** – Uložení vlastnosti + +Kouzlo nastane, když zapíšete sešit do binárního formátu XLSB. + +```csharp +// Define the output path. Adjust the folder to something writable on your machine. +string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + +// Save the workbook; the custom property travels with the file. +workbook.Save(outputPath, SaveFormat.Xlsb); +``` + +*Co ve skutečnosti děláte:* Výčtový typ `SaveFormat.Xlsb` říká Aspose.Cells, aby vytvořil binární soubor Excel (rychlejší otevření, menší na disku). Všechny vlastní vlastnosti na úrovni listu jsou automaticky serializovány – není potřeba žádné další kroky. + +--- + +## Krok 4: Načíst soubor znovu a **jak načíst vlastnost** + +Pojďme dokázat, že vlastnost přežila celý proces. + +```csharp +// Load the just‑saved XLSB file back into memory. +Workbook reloadedWorkbook = new Workbook(outputPath); + +// Access the same worksheet (index 0) and fetch the property value. +string customValue = reloadedWorkbook.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); +``` + +Pokud vše proběhlo hladce, `customValue` nyní obsahuje `"CustomValue"`. + +--- + +## Krok 5: Ověřit výsledek – rychlý výstup do konzole + +Malá kontrola rozumu pomáhá během vývoje. + +```csharp +Console.WriteLine($"Custom property value: {customValue}"); +``` + +Running the program should print: + +``` +Custom property value: CustomValue +``` + +Zobrazení tohoto řádku znamená, že jste úspěšně zvládli **jak uložit XLSB**, **přidat vlastní vlastnost** a **jak načíst vlastnost** – vše v jednom přehledném postupu. + +--- + +## Kompletní funkční příklad (připravený ke zkopírování) + +Níže je celý program. Vložte jej do nové konzolové aplikace, stiskněte **F5** a sledujte, jak konzole potvrdí hodnotu vlastnosti. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // 1️⃣ Create a new workbook and get its first sheet + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // 2️⃣ Add a custom property (key/value) to the sheet + // ------------------------------------------------- + worksheet.CustomProperties.Add("MyProperty", "CustomValue"); + + // ------------------------------------------------- + // 3️⃣ Save the workbook as XLSB – the property is kept + // ------------------------------------------------- + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(outputPath, SaveFormat.Xlsb); + + // ------------------------------------------------- + // 4️⃣ Reload the saved file to demonstrate persistence + // ------------------------------------------------- + Workbook reloaded = new Workbook(outputPath); + + // ------------------------------------------------- + // 5️⃣ Retrieve the custom property's value + // ------------------------------------------------- + string customValue = reloaded.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); + + // ------------------------------------------------- + // 6️⃣ Display the retrieved value (optional) + // ------------------------------------------------- + Console.WriteLine($"Custom property value: {customValue}"); + } +} +``` + +> **Pamatujte:** Změňte `outputPath` na složku, do které máte právo zapisovat. Pokud používáte Linux/macOS, použijte cestu jako `"/tmp/WithCustomProp.xlsb"`. + +--- + +## Časté otázky a okrajové případy + +### Co když vlastnost již existuje? +Volání `Add` s již existujícím klíčem vyvolá `ArgumentException`. Použijte `ContainsKey` nebo obalte volání do `try/catch`, pokud si nejste jisti. + +```csharp +if (!worksheet.CustomProperties.ContainsKey("MyProperty")) +{ + worksheet.CustomProperties.Add("MyProperty", "AnotherValue"); +} +``` + +### Mohu uložit hodnoty, které nejsou řetězcem? +Určitě. Vlastnost `Value` přijímá libovolný `object`. Pro čísla, datumy nebo booleany stačí předat odpovídající typ – Aspose.Cells provede konverzi při načtení zpět. + +### Přetrvá vlastnost při konverzi na XLSX? +Ano. Vlastní vlastnosti jsou součástí XML reprezentace listu, takže přetrvávají napříč formáty XLSX, XLS i XLSB. + +### Jak **přidat vlastnost** do více listů? +Projděte kolekci `Worksheets` a aplikujte stejný volání `CustomProperties.Add` na každý list, který potřebujete. + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + ws.CustomProperties.Add("ExportedBy", "MyApp"); +} +``` + +### Tip na výkon při **ukládání sešitu jako XLSB** ve velkém množství +Pokud generujete stovky souborů, znovu použijte stejnou instanci `Workbook` a po každém uložení zavolejte `Clear`, aby se uvolnila paměť. Také nastavte `Workbook.Settings.CalculateFormulaOnOpen = false`, pokud nepotřebujete, aby se vzorce vyhodnocovaly při načtení. + +--- + +## Závěr + +Nyní víte **jak uložit XLSB** v C# a zároveň vložit a později načíst vlastní vlastnost pomocí Aspose.Cells. Kompletní řešení – vytvoření sešitu, přidání vlastnosti, uložení pomocí **save workbook as XLSB**, načtení a čtení hodnoty – se vejde do méně než 50 řádků kódu. + +From here you might explore: + +- Přidání více vlastních vlastností na list. +- Ukládání složitých objektů pomocí JSON řetězců. +- Šifrování souboru XLSB pro extra zabezpečení. + +Vyzkoušejte tyto nápady a rychle se stanete hlavní osobou pro automatizaci Excelu ve vašem týmu. Máte otázky nebo složitý scénář? Zanechte komentář níže a šťastné programování! + +![Jak uložit XLSB s vlastní vlastností](/images/how-to-save-xlsb.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/czech/net/excel-copy-worksheet/_index.md b/cells/czech/net/excel-copy-worksheet/_index.md index 6ee4b28cd8..980131915a 100644 --- a/cells/czech/net/excel-copy-worksheet/_index.md +++ b/cells/czech/net/excel-copy-worksheet/_index.md @@ -42,6 +42,7 @@ Aspose.Cells pro .NET nabízí výkonné funkce pro manipulaci s Excelovými sou | [Kopírovací list v Excelu](./excel-copy-worksheet/) | Naučte se, jak kopírovat list aplikace Excel pomocí Aspose.Cells pro .NET s tímto snadno srozumitelným podrobným návodem. Ideální pro vývojáře .NET, kteří chtějí automatizovat úlohy v Excelu. | | [Kopírování listů mezi sešity v Excelu](./excel-copy-worksheets-between-workbooks/) | Naučte se, jak kopírovat listy mezi sešity aplikace Excel pomocí Aspose.Cells pro .NET. Podrobný návod s příklady kódu pro zefektivnění správy tabulek. | | [Pracovní list Excelu pro přesun](./excel-move-worksheet/) | Naučte se v našem podrobném návodu přesouvat pracovní listy v Excelu pomocí Aspose.Cells pro .NET. Zvládněte umění programování v Excelu. | +| [Jak kopírovat list v C# pomocí Aspose.Cells – Kompletní průvodce](./how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/) | Kompletní návod, jak v C# kopírovat listy v Excelu pomocí Aspose.Cells, včetně ukázek kódu a tipů. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/czech/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md b/cells/czech/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md new file mode 100644 index 0000000000..cfcb67597f --- /dev/null +++ b/cells/czech/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md @@ -0,0 +1,288 @@ +--- +category: general +date: 2026-03-30 +description: Jak zkopírovat list v C# pomocí Aspose.Cells – podrobný návod krok za + krokem zahrnující kopírování rozsahu buněk, kopírování sloupců mezi listy, kopírování + kontingenční tabulky listu a přidání kódu pro vytvoření nového listu. +draft: false +keywords: +- how to copy worksheet +- copy cell range +- copy columns between sheets +- copy worksheet pivot table +- add new worksheet code +language: cs +og_description: Naučte se, jak kopírovat list v C# s Aspose.Cells. Tento průvodce + ukazuje kopírování rozsahu buněk, zachování kontingenčních tabulek, kopírování sloupců + mezi listy a přidání kódu pro nový list. +og_title: Jak zkopírovat list v C# – Kompletní tutoriál Aspose.Cells +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Jak zkopírovat list v C# pomocí Aspose.Cells – kompletní průvodce +url: /cs/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak zkopírovat list v C# s Aspose.Cells – Kompletní průvodce + +Už jste se někdy zamýšleli **jak zkopírovat list** v C# bez ztráty jediného kontingenčního tabulky nebo vzorce? Nejste sami – mnoho vývojářů narazí na problém, když potřebují duplikovat list a zachovat všechny výhody. V tomto tutoriálu vás provedeme praktickým, end‑to‑end řešením, které nejen kopíruje data, ale také zachovává **copy worksheet pivot table**, zpracovává **copy cell range** a ukazuje **add new worksheet code**, který budete potřebovat. + +Probereme vše od načtení zdrojového sešitu až po uložení cílového souboru, takže můžete **copy columns between sheets**, zachovat objekty a mít čistý kód. Žádné nejasné odkazy, jen kompletní, spustitelný příklad, který můžete dnes vložit do svého projektu. + +## Co tento tutoriál pokrývá + +- Načtení existujícího souboru Excel pomocí Aspose.Cells +- Použití **add new worksheet code** k vytvoření cílového listu +- Definování **copy cell range**, který zahrnuje kontingenční tabulku +- Nastavení **CopyOptions** pro zachování grafů, vzorců a kontingenčních tabulek +- Provádění **copy columns between sheets** s řádkovou přesností +- Uložení výsledku a ověření, že list byl správně zkopírován + +Na konci tohoto průvodce budete schopni sebejistě odpovědět na otázku „how to copy worksheet“, ať už automatizujete reporty nebo vytváříte UI řízené tabulkami. + +--- + +## Jak zkopírovat list – Přehled + +Než se ponoříme do kódu, načrtneme vysokou úroveň postupu. Považujte to za recept: + +1. **Load** zdrojový sešit (`Source.xlsx`). +2. **Add** nový list pro uložení kopie (`add new worksheet code`). +3. **Define** oblast, kterou chcete duplikovat (`copy cell range`). +4. **Configure** možnosti kopírování, aby kontingenční tabulka přežila (`copy worksheet pivot table`). +5. **Copy** řádky a sloupce (`copy columns between sheets`). +6. **Save** nový sešit (`Destination.xlsx`). + +A to je vše – šest kroků, žádná magie. Každý krok je vysvětlen níže s ukázkami kódu a odůvodněním. + +--- + +## Krok 1 – Načtení zdrojového sešitu + +Nejprve: potřebujete instanci `Workbook`, která ukazuje na soubor, který chcete duplikovat. Tento krok je zásadní, protože Aspose.Cells pracuje přímo se souborovým systémem, ne s UI Office. + +```csharp +using Aspose.Cells; + +// Path to the original file +string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; +string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + +// Load the workbook – this is the starting point for how to copy worksheet +Workbook workbook = new Workbook(sourcePath); +``` + +*Proč je to důležité:* Načtení souboru vytvoří v‑paměti reprezentaci každého listu, buňky a objektu. Bez toho není co kopírovat a jakýkoli pokus o `add new worksheet code` později selže, protože zdrojová data nejsou přítomna. + +--- + +## Krok 2 – Přidání nového listu (add new worksheet code) + +Nyní potřebujeme místo, kam vložit zkopírovaná data. Zde se uplatní **add new worksheet code**. List můžete pojmenovat libovolně; zde jej nazýváme `"Copy"`. + +```csharp +// Grab the first worksheet (the one we want to copy) +Worksheet sourceSheet = workbook.Worksheets[0]; + +// Add a fresh worksheet to receive the copy +Worksheet copySheet = workbook.Worksheets.Add("Copy"); +``` + +*Tip:* Pokud plánujete kopírovat více listů, volejte `Worksheets.Add` uvnitř smyčky a každému listu dejte jedinečný název. Tím předejdete kolizím názvů a udržíte sešit přehledný. + +--- + +## Krok 3 – Definování oblasti pro kopírování buněk + +**copy cell range** říká Aspose.Cells přesně, které řádky a sloupce duplikovat. V mnoha reálných scénářích oblast zahrnuje kontingenční tabulku, takže musíme být přesní. + +```csharp +// Define the area that contains the pivot table (A1:G20) +CellArea sourceRange = new CellArea +{ + StartRow = 0, // Row 1 (zero‑based) + StartColumn = 0, // Column A + EndRow = 19, // Row 20 + EndColumn = 6 // Column G +}; + +// Destination range – we start at the same top‑left corner +CellArea destinationRange = new CellArea +{ + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 +}; +``` + +*Proč to potřebujeme:* Explicitním určením oblasti se vyhnete kopírování celého listu (což může být zbytečné) a zajistíte, že kontingenční tabulka bude uvnitř kopírované oblasti. To je podstata **how to copy worksheet**, když potřebujete jen část listu. + +--- + +## Krok 4 – Nastavení možností kopírování (preserve copy worksheet pivot table) + +Aspose.Cells poskytuje objekt `CopyOptions`, který řídí, co se vloží. Pro zachování kontingenční tabulky, grafů a vzorců nastavíme `PasteType.All` a povolíme `PasteSpecial`. + +```csharp +CopyOptions copyOptions = new CopyOptions +{ + PasteType = PasteType.All, // Copy everything: values, formats, objects + PasteSpecial = true // Enable special paste to retain pivot tables +}; +``` + +*Vysvětlení:* `PasteType.All` je nejobsáhlejší volba, zatímco `PasteSpecial` říká enginu, aby správně zacházel s komplexními objekty – jako jsou kontingenční tabulky. Přeskočení tohoto kroku je častá chyba; zkopírovaný list by ztratil své interaktivní funkce. + +--- + +## Krok 5 – Kopírování řádků a sloupců (copy columns between sheets) + +Nyní přichází těžká část: skutečný přesun dat. Použijeme `CopyRows` a `CopyColumns` k řešení **copy columns between sheets**. Použití obojího zajišťuje zachování sloučených buněk a šířek sloupců. + +```csharp +// Copy rows from the source to the destination sheet +sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + +// Copy columns from the source to the destination sheet +sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); +``` + +*Co se děje:* `CopyRows` přesouvá data řádek po řádku, zatímco `CopyColumns` dělá totéž sloupec po sloupci. Spuštění obojího zaručuje, že celý obdélníkový blok je duplikován, což je nezbytné, když potřebujete **copy columns between sheets**, které mají různé šířky sloupců nebo skryté sloupce. + +--- + +## Krok 6 – Uložení sešitu + +Nakonec zapíšete změny zpět na disk. Tento krok dokončuje proces **how to copy worksheet**. + +```csharp +// Save the workbook with the newly copied sheet +workbook.Save(destinationPath); +``` + +*Tip pro ověření:* Otevřete `Destination.xlsx` a zkontrolujte, že list `"Copy"` vypadá identicky jako originál, kontingenční tabulky fungují a šířky sloupců odpovídají. Pokud něco vypadá špatně, vraťte se k nastavení `CopyOptions`. + +--- + +## Okrajové případy a běžné varianty + +### Kopírování více listů + +Pokud potřebujete duplikovat několik listů, zabalte výše uvedenou logiku do smyčky `foreach`: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + Worksheet newWs = workbook.Worksheets.Add(ws.Name + "_Copy"); + // Re‑use sourceRange/destinationRange or calculate per sheet + // Then call CopyRows/CopyColumns as shown earlier +} +``` + +### Zachování vzorců mezi různými sešity + +Když mají zdrojový a cílový sešit různé pojmenované oblasti, nastavte `copyOptions` na `PasteType.Formulas` kromě `All`: + +```csharp +copyOptions.PasteType = PasteType.All | PasteType.Formulas; +``` + +### Velké oblasti a výkon + +Pro masivní datové sady (stovky tisíc řádků) zvažte použití pouze `CopyRows` a vynechání `CopyColumns`, pokud šířky sloupců nejsou kritické. To může ušetřit několik sekund. + +--- + +## Kompletní funkční příklad + +Níže je kompletní, připravený k spuštění program, který zahrnuje vše, o čem jsme mluvili. Vložte jej do konzolové aplikace, upravte cesty k souborům a stiskněte **F5**. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // ---------- Step 1: Load the source workbook ---------- + string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; + string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + Workbook workbook = new Workbook(sourcePath); + + // ---------- Step 2: Add a new worksheet (add new worksheet code) ---------- + Worksheet sourceSheet = workbook.Worksheets[0]; + Worksheet copySheet = workbook.Worksheets.Add("Copy"); + + // ---------- Step 3: Define the copy cell range ---------- + CellArea sourceRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + CellArea destinationRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + + // ---------- Step 4: Set copy options (preserve copy worksheet pivot table) ---------- + CopyOptions copyOptions = new CopyOptions + { + PasteType = PasteType.All, + PasteSpecial = true + }; + + // ---------- Step 5: Copy rows and columns (copy columns between sheets) ---------- + sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + + sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); + + // ---------- Step 6: Save the workbook ---------- + workbook.Save(destinationPath); + } +} +``` + +**Očekávaný výsledek:** Otevřením `Destination.xlsx` se zobrazí list pojmenovaný **Copy**, který zrcadlí první list `Source.xlsx` – včetně všech kontingenčních tabulek, formátování a šířek sloupců. Originální soubor zůstane nedotčen. + +--- + +## Často kladené otázky + +**Q: Funguje to s .xlsx soubory vytvořenými v Excelu 2019?** +A: Naprosto. Aspose.Cells podporuje všechny moderní formáty Excelu, takže stejný kód funguje pro `.xlsx`, `.xlsm` a dokonce i starší soubory `.xls`. + +{{< /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/czech/net/excel-custom-number-date-formatting/_index.md b/cells/czech/net/excel-custom-number-date-formatting/_index.md index dc65fecfc1..9d763eeda5 100644 --- a/cells/czech/net/excel-custom-number-date-formatting/_index.md +++ b/cells/czech/net/excel-custom-number-date-formatting/_index.md @@ -36,6 +36,10 @@ Tento tutoriál vás vybaví dovednostmi pro import datových sad a zároveň za Naučte se, jak porovnat hodnoty buněk v Excelu s vlastními číselnými formáty pomocí Aspose.Cells pro .NET v tomto podrobném tutoriálu. ### [Zadání polí vzorců při importu dat do excelového listu](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) V tomto podrobném návodu se naučíte, jak importovat data do excelových listů se zadanými poli vzorců pomocí Aspose.Cells pro .NET. +### [Formátování čísel s oddělovačem v C# – Kompletní průvodce Aspose.Cells](./format-number-with-separator-in-c-complete-aspose-cells-guid/) +Naučte se, jak pomocí Aspose.Cells v C# formátovat čísla s oddělovačem pro lepší čitelnost a prezentaci dat. +### [Formátování data ISO z Excelu – Kompletní průvodce C#](./format-date-iso-from-excel-complete-c-guide/) +Naučte se, jak pomocí Aspose.Cells v C# převést data z Excelu do formátu ISO a zajistit správné zobrazení datumů. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/czech/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md b/cells/czech/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..83f82f6e17 --- /dev/null +++ b/cells/czech/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md @@ -0,0 +1,202 @@ +--- +category: general +date: 2026-03-30 +description: Naučte se formátovat datum ve formátu ISO při čtení hodnot data a času + v Excelu a extrahovat data a čas z Excelu pomocí Aspose.Cells v C#. +draft: false +keywords: +- format date iso +- read excel datetime +- extract datetime excel +- Aspose.Cells date parsing +- Japanese era dates +language: cs +og_description: formátovat datum ISO z dat Excel pomocí Aspose.Cells. Tento průvodce + ukazuje, jak číst datum a čas v Excelu, extrahovat hodnoty data a času z Excelu + a výstupní ISO data. +og_title: Formát ISO data z Excelu – krok po kroku C# tutoriál +tags: +- C# +- Excel +- DateTime +- Aspose.Cells +title: Formát ISO data z Excelu – Kompletní C# průvodce +url: /cs/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# formátování data iso z Excelu – Kompletní průvodce C# + +Už jste někdy potřebovali **format date iso** při získávání dat z listu Excel? Možná pracujete s japonskými daty er, nebo jen chcete čistý řetězec `yyyy‑MM‑dd` pro API payload. V tomto tutoriálu uvidíte přesně, jak **read Excel datetime** buňky, **extract datetime Excel** hodnoty, a převést je do formátu ISO‑8601 – bez hádání. + +Provedeme vás reálným příkladem, který používá Aspose.Cells, vysvětlí, proč je každý řádek důležitý, a ukáže vám konečný výstup, který můžete zkopírovat a vložit do svého projektu. Na konci budete schopni zpracovat podivné řetězce er, jako je “令和3年5月1日”, a vytvořit standardní ISO datum, připravené pro databáze, JSON nebo kamkoli jej potřebujete. + +## Požadavky + +- .NET 6.0 nebo novější (kód funguje i s .NET Framework) +- Aspose.Cells pro .NET (bezplatná zkušební verze nebo licencovaná verze) +- Základní znalost C# a konceptů Excelu +- Visual Studio nebo jakýkoli C# editor, který máte rádi + +Kromě Aspose.Cells nejsou vyžadovány žádné další NuGet balíčky, takže nastavení je poměrně jednoduché. + +--- + +## Krok 1: Vytvořte Workbook a zaměřte se na první list + +Prvním krokem je vytvořit nový objekt `Workbook`. Ten vám poskytne v‑paměti reprezentaci souboru Excel, kterou můžete následně upravovat nebo číst. + +```csharp +using Aspose.Cells; +using System.Globalization; + +// Step 1: Initialize a new workbook and grab the first worksheet +Workbook workbook = new Workbook(); // creates an empty .xlsx +Worksheet worksheet = workbook.Worksheets[0]; // the default sheet is "Sheet1" +``` + +*Proč je to důležité:* +Vytvoření workbooku programově vám umožní vyhnout se práci s fyzickými soubory během testování. Také zajišťuje, že odkaz na list je vždy platný – žádná neočekávaná null‑reference později, když se pokusíte **read Excel datetime** hodnoty. + +## Krok 2: Zapište řetězec japonského data er do buňky + +Naším cílem je ukázat parsování ne‑gregoriánského data. Řetězec er vložíme přímo do buňky **A1**. + +```csharp +// Step 2: Insert a Japanese era date string into cell A1 +worksheet.Cells["A1"].PutValue("令和3年5月1日"); +``` + +*Tip:* Pokud získáváte data z existujícího workbooku, přeskočíte volání `PutValue` a jen odkážete na buňku, která již datum obsahuje. Klíčové je, že buňka obsahuje **string**, který představuje datum v japonském lunisolárním kalendáři. + +## Krok 3: Nastavte kulturu, která rozumí japonskému lunisolárnímu kalendáři + +Třída .NET `CultureInfo` vám umožňuje určit, jak mají být data interpretována. Výměnou výchozího gregoriánského kalendáře za `JapaneseLunisolarCalendar` poskytnete parseru potřebný kontext. + +```csharp +// Step 3: Set up a culture using the Japanese lunisolar calendar +CultureInfo japaneseCulture = new CultureInfo("ja-JP"); +japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); +``` + +*Proč to děláme:* +Pokud byste se pokusili parsovat “令和3年5月1日” s výchozí kulturou, .NET by vyhodil `FormatException`. Výměna za lunisolární kalendář řekne runtime přesně, jak mapovat “令和3年” (3. rok éry Reiwa) na gregoriánský rok 2021. + +## Krok 4: Parsujte hodnotu buňky jako `DateTime` pomocí nastavené kultury + +Nyní přichází jádro operace – převod řetězce er na správný objekt `DateTime`. Aspose.Cells poskytuje pohodlný přetížený `GetDateTime`, který přijímá `CultureInfo`. + +```csharp +// Step 4: Retrieve the cell value as a DateTime, respecting the Japanese culture +DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); +``` + +*Co se děje pod kapotou:* +`GetDateTime` načte surový řetězec, použije pravidla kalendáře poskytnuté kulturou a vrátí `DateTime`, který představuje stejný okamžik v gregoriánském kalendáři. To je okamžik, kdy **extract datetime Excel** data ve formě, se kterou můžete v .NET pracovat. + +## Krok 5: Vypište parsované datum ve formátu ISO 8601 + +Nakonec formátujeme `DateTime` jako ISO řetězec – `yyyy‑MM‑dd` – který je univerzálně akceptován API, databázemi a front‑end frameworky. + +```csharp +// Step 5: Print the date in ISO format (e.g., 2021-05-01) +Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // Output: 2021-05-01 +``` + +*Proč ISO?* +ISO 8601 odstraňuje nejednoznačnost. “05/01/2021” může být 1. května nebo 5. ledna v závislosti na locale. `2021-05-01` je naprosto jasné, proto **format date iso** používáme téměř ve všech integračních scénářích. + +## Kompletní funkční příklad + +Níže je kompletní, připravený k spuštění program. Zkopírujte jej do projektu konzolové aplikace, přidejte odkaz na Aspose.Cells a stiskněte **F5**. + +```csharp +using Aspose.Cells; +using System; +using System.Globalization; + +class Program +{ + static void Main() + { + // 1️⃣ Create workbook and select the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("令和3年5月1日"); + + // 3️⃣ Set up Japanese lunisolar culture + CultureInfo japaneseCulture = new CultureInfo("ja-JP"); + japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); + + // 4️⃣ Parse the cell value as DateTime using the culture + DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); + + // 5️⃣ Output the date in ISO format + Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // 2021-05-01 + } +} +``` + +**Očekávaný výstup** + +``` +2021-05-01 +``` + +Spusťte jej jednou a uvidíte ISO‑formátované datum vytištěné do konzole. To je celý proces od **read Excel datetime** po **format date iso**. + +## Řešení běžných okrajových případů + +### 1. Buňky obsahující skutečná Excel data jako čísla + +Někdy Excel ukládá data jako sériová čísla (např. `44204`). V takovém případě nepotřebujete kulturu; stačí zavolat `GetDateTime()` bez parametrů: + +```csharp +DateTime serialDate = worksheet.Cells["B2"].GetDateTime(); // B2 holds a numeric date +Console.WriteLine(serialDate.ToString("yyyy-MM-dd")); +``` + +### 2. Prázdné nebo neplatné buňky + +Pokud je buňka prázdná nebo obsahuje neparsovatelný řetězec, `GetDateTime` vyhodí výjimku. Zabalte volání do `try/catch` nebo nejprve zkontrolujte `IsDateTime`: + +```csharp +if (worksheet.Cells["C3"].Type == CellValueType.IsDateTime) +{ + DateTime safeDate = worksheet.Cells["C3"].GetDateTime(); + Console.WriteLine(safeDate.ToString("yyyy-MM-dd")); +} +else +{ + Console.WriteLine("Cell C3 does not contain a valid date."); +} +``` + +### 3. Různé formáty era + +Další japonské éry (Heisei, Showa) následují stejný vzor. Stejný `JapaneseLunisolarCalendar` je automaticky zvládne, takže nepotřebujete další logiku – stačí předat řetězec. + +## Pro tipy a úskalí + +- **Performance:** Při zpracování velkých tabulek znovu použijte jedinou instanci `CultureInfo` místo vytváření nové uvnitř smyčky. +- **Thread Safety:** Objekt `CultureInfo` je po nastavení kalendáře jen pro čtení, takže je bezpečné jej sdílet mezi vlákny. +- **Aspose.Cells Licensing:** Pokud používáte bezplatnou zkušební verzi, pamatujte, že některé funkce mohou být omezené po vypršení zkušebního období. Parsování data zde funguje jak ve zkušební, tak licencované verzi. +- **Time Zones:** `DateTime`, který získáte, je **unspecified** (žádná časová zóna). Pokud potřebujete UTC, zavolejte `DateTime.SpecifyKind(parsedDate, DateTimeKind.Utc)` nebo převést pomocí `TimeZoneInfo`. + +## Závěr + +Probrali jsme vše, co potřebujete k **format date iso** z Excelového sešitu pomocí C#. Začínáme s čistým japonským řetězcem er, **read Excel datetime**, nastavíme správnou kulturu, **extract datetime excel** data a nakonec vypíšeme čistý ISO‑8601 řetězec. Přístup funguje pro jakoukoli reprezentaci data, kterou Excel může nabídnout, ať už jde o sériové číslo, locale‑specifický řetězec nebo tradiční formát er. + +Další kroky? Zkuste projít celou sloupec dat, zapsat ISO výsledky zpět do nového listu, nebo je přímo vložit do JSON payloadu pro webovou službu. Pokud vás zajímají jiné kalendářní systémy (hebrejský, islámský), Aspose.Cells a .NET `CultureInfo` usnadní i tyto experimenty. + +Máte otázky nebo obtížný formát data, který se vám nedaří rozluštit? Zanechte komentář níže a šťastné programování! + +{{< /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/czech/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md b/cells/czech/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md new file mode 100644 index 0000000000..14efcb25a5 --- /dev/null +++ b/cells/czech/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md @@ -0,0 +1,251 @@ +--- +category: general +date: 2026-03-30 +description: Naučte se, jak formátovat číslo s oddělovačem pomocí Aspose.Cells v C#. + Zahrnuje nastavení vlastního formátu čísla, přidání oddělovače tisíců, formátování + desetinných míst a jak formátovat buňku. +draft: false +keywords: +- format number with separator +- set custom number format +- add thousands separator +- format decimal places +- how to format cell +language: cs +og_description: Formátování čísla s oddělovačem v C#. Tento průvodce ukazuje, jak + nastavit vlastní formát čísla, přidat oddělovač tisíců, formátovat desetinná místa + a jak formátovat buňku pomocí Aspose.Cells. +og_title: Formátování čísla s oddělovačem v C# – tutoriál Aspose.Cells +tags: +- C# +- Aspose.Cells +- Number Formatting +title: Formátování čísel s oddělovačem v C# – Kompletní průvodce Aspose.Cells +url: /cs/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Formátování čísel s oddělovačem v C# – Kompletní průvodce Aspose.Cells + +Už jste někdy potřebovali **formátovat číslo s oddělovačem** v tabulce, ale nebyli jste si jisti, kterou API metodu použít? Nejste v tom sami – vývojáři neustále bojují s tisícovými oddělovači, desetinnými místy a vlastními vzory při exportu dat. + +Dobrá zpráva: Aspose.Cells to dělá hračkou. V tomto tutoriálu projdeme reálný příklad, který **nastavuje vlastní formát čísla**, **přidává tisícový oddělovač**, **formátuje desetinná místa** a ukazuje **jak formátovat buňku** pro výstup jako řetězec. Na konci budete mít připravený úryvek kódu, který můžete vložit do libovolného .NET projektu. + +## Co tento průvodce zahrnuje + +* Přesný NuGet balíček, který potřebujete, a jak jej nainstalovat. +* Krok‑za‑krokem kód, který vytvoří sešit, zapíše číselnou hodnotu a použije vlastní formát. +* Proč je `ExportTableOptions.ExportAsString` preferovaným způsobem, jak získat formátovanou hodnotu. +* Časté úskalí – například zapomenutí povolit `ExportAsString` nebo použití nesprávné masky formátu. +* Jak upravit masku formátu, pokud potřebujete jiný počet desetinných míst nebo jiný styl oddělovače. + +Žádné externí odkazy na dokumentaci nejsou potřeba; vše, co potřebujete, je zde. Pojďme na to. + +--- + +## Prerequisites + +| Požadavek | Důvod | +|-------------|--------| +| .NET 6.0 nebo novější | Aspose.Cells 23.10+ cílí na .NET Standard 2.0+, takže .NET 6 je bezpečný a aktuální. | +| Visual Studio 2022 (nebo jakékoli C# IDE) | Usnadňuje ladění a správu balíčků. | +| Aspose.Cells for .NET NuGet package | Poskytuje třídy `Workbook`, `Worksheet` a `ExportTableOptions`, které použijeme. | + +Balíček můžete nainstalovat pomocí Package Manager Console: + +```powershell +Install-Package Aspose.Cells +``` + +A to je vše – žádné další DLL, žádná COM interop, jen jediná reference na NuGet. + +--- + +## Krok 1: Inicializace nového Workbooku (Jak formátovat buňku) + +První, co uděláme, je vytvořit novou instanci `Workbook`. Představte si ji jako prázdný soubor Excel připravený přijmout data. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Create a new workbook – this is where we’ll format the cell. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Proč je to důležité:** `Workbook` je vstupní bod pro každou operaci v Aspose.Cells. Získáním první listu (`Worksheets[0]`) získáme čisté plátno, aniž bychom museli pojmenovávat list. + +--- + +## Krok 2: Zapsání číselné hodnoty do cílové buňky + +Dále vložíme surové číslo do buňky **A1**. Hodnota zatím není formátovaná – je to jen `double`. + +```csharp + // Step 2: Insert a raw numeric value. + worksheet.Cells["A1"].PutValue(12345.6789); +``` + +> **Tip:** Použijte `PutValue` místo `PutString`, pokud chcete později aplikovat číselné formátování. Tím zachováte podkladový datový typ, což umožní výpočty kompatibilní s Excelem. + +--- + +## Krok 3: Nastavení vlastního formátu čísla (Přidání tisícového oddělovače a formátování desetinných míst) + +Nyní přichází jádro tutoriálu: definování masky formátu, která říká Aspose.Cells, jak číslo zobrazit. Maska `#,##0.00` dělá tři věci: + +1. **`#,##0`** – přidá tisícový oddělovač (čárka ve výchozím nastavení). +2. **`.00`** – vynutí přesně dvě desetinná místa. + +Pokud potřebujete jiný počet desetinných míst, stačí změnit počet `0` za desetinnou čárkou. + +```csharp + // Step 3: Configure the custom number format. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, // Return the value as a formatted string. + NumberFormat = "#,##0.00" // Add thousands separator and fix to 2 decimals. + }; +``` + +> **Proč používáme `ExportAsString`**: Ve výchozím nastavení `ExportString` vrací surovou hodnotu. Nastavením `ExportAsString = true` přinutíme API aplikovat masku `NumberFormat` před konverzí na text. To je nezbytné, když potřebujete přesnou řetězcovou reprezentaci pro reporty, JSON payloady nebo UI zobrazení. + +--- + +## Krok 4: Export formátovaného textu (Jak formátovat buňku) + +S připravenými možnostmi zavoláme `ExportString` na stejné buňce. Metoda respektuje masku, kterou jsme právě definovali, a vrátí pěkně formátovaný řetězec. + +```csharp + // Step 4: Export the formatted value. + string formattedCellText = worksheet.Cells["A1"].ExportString(exportOptions); + + // Step 5: Show the result. + Console.WriteLine(formattedCellText); // Expected output: 12,345.68 + } +} +``` + +Spuštěním programu se na konzoli vypíše **`12,345.68`** – přesně ve formátu, který jsme požadovali. + +> **Hraniční případ:** Pokud má vstupní číslo více než dvě desetinná místa, maska jej zaokrouhlí. Pokud potřebujete místo zaokrouhlení oříznutí, musíte hodnotu před voláním `PutValue` předzpracovat pomocí `Math.Truncate`. + +--- + +## Krok 5: Úprava formátu – běžné varianty + +### 5.1 Změna přesnosti desetinných míst + +Chcete tři desetinná místa? Stačí nahradit masku: + +```csharp +NumberFormat = "#,##0.000" // → 12,345.679 +``` + +### 5.2 Použití jiného tisícového oddělovače + +Některé lokály preferují mezeru nebo tečku. Můžete znak vložit přímo: + +```csharp +NumberFormat = "# ##0.00" // Uses a non‑breaking space as separator. +``` + +Nebo se spolehnout na nastavení kultury sešitu: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("de-DE"); +NumberFormat = "#.##0,00"; // German style: 12.345,68 +``` + +### 5.3 Předpona nebo přípona (Měna, Procenta) + +Přidejte dolarový znak nebo znak procenta přímo do masky: + +```csharp +NumberFormat = "$#,##0.00"; // → $12,345.68 +NumberFormat = "0.00%"; // → 1,234,568.00% +``` + +> **Poznámka:** Maska rozlišuje velká a malá písmena. `$` a `%` jsou doslovné symboly; nemění podkladovou číselnou hodnotu. + +--- + +## Krok 6: Kompletní funkční příklad (Ready‑to‑Copy) + +Níže je celý program, který můžete zkopírovat do nové konzolové aplikace. Obsahuje všechny kroky, komentáře a ověření výstupu. + +```csharp +using System; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write raw numeric value to A1. + worksheet.Cells["A1"].PutValue(12345.6789); + + // 3️⃣ Define custom format: thousands separator + two decimals. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + NumberFormat = "#,##0.00" + }; + + // 4️⃣ Export the formatted string. + string result = worksheet.Cells["A1"].ExportString(exportOptions); + + // 5️⃣ Display the outcome. + Console.WriteLine(result); // Output: 12,345.68 + + // Optional: keep console open. + Console.WriteLine("Press any key to exit..."); + Console.ReadKey(); + } +} +``` + +Program spusťte (`dotnet run` v terminálu nebo stiskněte F5 ve Visual Studiu) a uvidíte formátované číslo vytištěné přesně tak, jak je uvedeno. + +--- + +## Často kladené otázky (FAQ) + +**Q: Funguje to i se staršími verzemi Excelu?** +A: Ano. Maska formátu používá nativní syntaxi Excelu, takže jakákoli verze, která rozumí `#,##0.00`, zobrazí stejný řetězec. + +**Q: Co když potřebuji formátovat rozsah buněk?** +A: Projděte požadovaný rozsah a aplikujte stejný `ExportTableOptions` na každou buňku, nebo nastavte vlastnost `Style.Custom` na rozsah a pak zavolejte `ExportString` na jedné buňce. + +**Q: Můžu exportovat přímo do CSV s těmito formáty?** +A: Rozhodně. Použijte `Workbook.Save("output.csv", SaveFormat.CSV);` po nastavení formátu na každé buňce. Aspose.Cells respektuje styl buňky při generování CSV. + +--- + +## Závěr + +Ukázali jsme, jak **formátovat číslo s oddělovačem** v C# pomocí Aspose.Cells, od **nastavení vlastního formátu čísla** přes **přidání tisícového oddělovače**, **formátování desetinných míst** až po nezbytné **jak formátovat buňku** pro export jako řetězec. Kód je zcela samostatný, funguje s .NET 6+ a lze jej přizpůsobit libovolnému locale nebo požadavku na přesnost. + +Dále můžete zkusit: + +* Použít stejnou techniku pro datum a čas (`NumberFormat = "dd‑MMM‑yyyy"`). +* Automatizovat hromadné exporty, kde každá sloupec potřebuje jinou masku. +* Integrovat formátované řetězce do PDF reportů pomocí Aspose.Words. + +Vyzkoušejte to a rychle se stanete osobou, na kterou se tým obrací ohledně formátování tabulek. Šťastné kódování! (Image: ![Screenshot showing formatted number with separator in Aspose.Cells](image-placeholder.png){alt="Formátované číslo s oddělovačem zobrazené v Aspose.Cells výstupu"} ) + +{{< /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/czech/net/excel-data-import-export/_index.md b/cells/czech/net/excel-data-import-export/_index.md index c8369fa27d..36116e7dbd 100644 --- a/cells/czech/net/excel-data-import-export/_index.md +++ b/cells/czech/net/excel-data-import-export/_index.md @@ -32,6 +32,10 @@ Dalším častým problémem je vkládání řádků DataTable do Excelu bez po V tomto snadno srozumitelném tutoriálu se naučte, jak importovat data do Excelu s vlastním formátováním čísel databáze pomocí Aspose.Cells pro .NET. ### [Posunout první řádek dolů při vkládání řádků DataTable v Excelu](./shift-first-row-down-when-inserting-cells-datatable-rows-in-excel/) Naučte se vkládat řádky DataTable v Excelu bez posunutí prvního řádku dolů pomocí Aspose.Cells pro .NET. Podrobný návod pro snadnou automatizaci. +### [Vytvořit Excel sešit C# – Vložit JSON a uložit jako XLSX](./create-excel-workbook-c-insert-json-and-save-as-xlsx/) +Naučte se pomocí Aspose.Cells vytvořit sešit, vložit data z JSON a uložit jej jako soubor XLSX v jazyce C#. +### [Vytvořit Excel sešit C# – Použít formát měny a importovat DataTable](./create-excel-workbook-c-apply-currency-format-and-import-dat/) +Naučte se pomocí Aspose.Cells vytvořit Excel sešit v C#, aplikovat formát měny a importovat data z DataTable. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/czech/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md b/cells/czech/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md new file mode 100644 index 0000000000..0131a0ba2f --- /dev/null +++ b/cells/czech/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md @@ -0,0 +1,285 @@ +--- +category: general +date: 2026-03-30 +description: Vytvořte Excel sešit v C# s formátováním měny. Naučte se, jak importovat + DataTable, přidat číselný formát v Excelu a během několika minut použít formát měny + na sloupec. +draft: false +keywords: +- create excel workbook c# +- format cells currency +- import datatable to excel +- add number format excel +- apply currency format column +language: cs +og_description: Vytvořte Excel sešit v C# a okamžitě formátujte buňky jako měnu. Tento + krok‑za‑krokem návod ukazuje, jak importovat DataTable do Excelu a přidat číselný + formát pro sloupec. +og_title: Vytvoření Excel sešitu v C# – Průvodce formátováním měny +tags: +- Aspose.Cells +- C# +- Excel automation +title: Vytvořit Excel sešit v C# – použít formát měny a importovat DataTable +url: /cs/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Vytvoření Excel sešitu C# – Použití formátu měny a import DataTable + +Už jste někdy potřebovali **vytvořit Excel sešit C#**, který už vypadá jako profesionální zpráva? Možná taháte prodejní čísla z databáze a chcete, aby sloupec s cenou zobrazoval dolary, aniž byste museli ručně upravovat Excel. Zní to povědomě? Nejste v tom sami – většina vývojářů narazí na tento problém, když poprvé automatizují export do Excelu. + +V tomto průvodci projdeme kompletním, připraveným řešením, které **vytvoří Excel sešit C#**, importuje `DataTable` a **naformátuje sloupec Price jako měnu**. Na konci budete mít soubor nazvaný `StyledTable.xlsx`, který můžete otevřít a uvidíte hezky naformátovaná čísla. Žádné další zpracování není potřeba. + +> **Co se naučíte** +> - Jak nastavit Aspose.Cells v .NET projektu +> - Jak **importovat datatable do excelu** pomocí pole stylů +> - Jak **přidat číselný formát excel** pro konkrétní sloupec +> - Tipy pro práci s více sloupci nebo různými locale + +> **Požadavky** +> - .NET 6+ (nebo .NET Framework 4.6+) nainstalovaný +> - NuGet balíček Aspose.Cells pro .NET (`Install-Package Aspose.Cells`) +> - Základní znalost C# a DataTables + +--- + +## Krok 1: Připravte DataTable (import datatable to excel) + +Nejprve potřebujeme nějaká ukázková data. Ve skutečné aplikaci byste pravděpodobně tuto tabulku naplnili dotazem do databáze, ale pevně zakódovaný příklad udržuje věci jednoduché. + +```csharp +using System.Data; + +// Create a DataTable with two columns: Product (string) and Price (double) +DataTable dataTable = new DataTable(); +dataTable.Columns.Add("Product", typeof(string)); +dataTable.Columns.Add("Price", typeof(double)); + +// Add a few rows – you can add as many as you like +dataTable.Rows.Add("Apple", 1.23); +dataTable.Rows.Add("Banana", 0.78); +dataTable.Rows.Add("Cherry", 2.50); +``` + +*Proč je to důležité*: `DataTable` je most mezi vašimi obchodními daty a souborem Excel. Aspose.Cells jej může importovat přímo a zachovat názvy sloupců i datové typy. + +--- + +## Krok 2: Vytvořte nový sešit (create excel workbook c#) + +Nyní vytvoříme samotný objekt Excel souboru. Představte si ho jako prázdné plátno, na které budete malovat. + +```csharp +using Aspose.Cells; + +// Instantiate a fresh workbook – this is the core of create excel workbook c# +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0). You could also add more sheets later. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Pro tip:** Pokud potřebujete více listů, zavolejte `workbook.Worksheets.Add()` a každému dejte smysluplný název. + +--- + +## Krok 3: Definujte styl měny (format cells currency) + +Aspose.Cells vám umožní vytvořit objekt `Style`, který popisuje, jak mají buňky vypadat. Pro měnu použijeme vestavěný číselný formát ID 164 (`"$#,##0.00"`). + +```csharp +// Create a new style object for the price column +Style priceStyle = workbook.CreateStyle(); +priceStyle.Number = 164; // Built‑in currency format "$#,##0.00" +``` + +*Proč ne nastavit jen řetězec formátu?* Použití vestavěného ID zajišťuje kompatibilitu napříč verzemi Excelu a vyhýbá se locale‑specifickým potížím. + +--- + +## Krok 4: Sestavte pole stylů (apply currency format column) + +Při importu `DataTable` můžete předat pole objektů `Style` – jeden pro každý sloupec. `null` znamená „použít výchozí styl“. Zde aplikujeme `priceStyle` pouze na druhý sloupec. + +```csharp +// Column 0 (Product) gets the default style, Column 1 (Price) gets the currency style +Style[] columnStyles = { null, priceStyle }; +``` + +Pokud později přidáte další sloupce, stačí pole rozšířit. Délka `columnStyles` musí odpovídat počtu sloupců, které importujete, jinak Aspose vyhodí výjimku. + +--- + +## Krok 5: Importujte DataTable se styly (import datatable to excel) + +Teď se stane kouzlo – náš `DataTable` se objeví v listu a sloupec s cenou okamžitě zobrazí měnu. + +```csharp +// Parameters: +// - dataTable: source data +// - true: include column headers +// - startRow: 0 (top of sheet) +// - startColumn: 0 (first column) +// - columnStyles: style array defined above +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +*Co když máte více než dva sloupce?* Stačí rozšířit `columnStyles`, aby každý sloupec dostal odpovídající styl (nebo `null` pro výchozí). Toto je nejčistší způsob, jak **přidat číselný formát excel** selektivně. + +--- + +## Krok 6: Uložte sešit (create excel workbook c#) + +Nakonec zapíšeme soubor na disk. Vyberte libovolnou složku, do které máte právo zapisovat. + +```csharp +// Save the workbook as an XLSX file +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +Otevřete `StyledTable.xlsx` v Excelu a měli byste vidět: + +| Product | Price | +|---------|-------| +| Apple | $1.23 | +| Banana | $0.78 | +| Cherry | $2.50 | + +Sloupec **Price** je již naformátován jako měna – žádné další kroky nejsou potřeba. + +--- + +## Okrajové případy a varianty + +### Více sloupců, různé formáty + +Pokud potřebujete **formátovat buňky měnou** pro několik sloupců (např. Cost, Tax, Total), vytvořte pro každý samostatný `Style` a naplňte `columnStyles` odpovídajícím způsobem: + +```csharp +Style costStyle = workbook.CreateStyle(); +costStyle.Number = 164; // currency + +Style taxStyle = workbook.CreateStyle(); +taxStyle.Number = 164; + +// Assuming columns: Product, Cost, Tax, Total +Style[] styles = { null, costStyle, taxStyle, priceStyle }; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, styles); +``` + +### Měna specifická pro locale + +Pro euro nebo britskou libru použijte jiné vestavěné ID (např. 165 pro `€#,##0.00`). Alternativně nastavte vlastní řetězec formátu: + +```csharp +priceStyle.Custom = "€#,##0.00"; +``` + +### Velké datové sady + +Aspose.Cells zvládne miliony řádků, ale spotřeba paměti roste s počtem objektů stylů. Pro všechny sloupce s měnou použijte jedinou instanci `Style`, abyste udrželi paměťovou stopu nízkou. + +### Chybějící styly + +Pokud je `columnStyles` kratší než počet sloupců, Aspose použije výchozí styl pro zbývající sloupce. To je užitečné, když vás zajímají jen některé sloupce. + +--- + +## Kompletní funkční příklad (všechny kroky dohromady) + +Níže je kompletní program, který můžete zkopírovat a vložit do konzolové aplikace. Obsahuje všechny části, o kterých jsme mluvili, a několik užitečných komentářů. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // Step 1: Build sample DataTable (import datatable to excel) + // ------------------------------------------------- + DataTable dataTable = new DataTable(); + dataTable.Columns.Add("Product", typeof(string)); + dataTable.Columns.Add("Price", typeof(double)); + dataTable.Rows.Add("Apple", 1.23); + dataTable.Rows.Add("Banana", 0.78); + dataTable.Rows.Add("Cherry", 2.50); + // You can add as many rows as you like here. + + // ------------------------------------------------- + // Step 2: Create a new workbook (create excel workbook c#) + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // Step 3: Define a currency style (format cells currency) + // ------------------------------------------------- + Style priceStyle = workbook.CreateStyle(); + priceStyle.Number = 164; // "$#,##0.00" – built‑in currency format + + // ------------------------------------------------- + // Step 4: Build the style array (apply currency format column) + // ------------------------------------------------- + // First column gets default style (null), second column uses priceStyle. + Style[] columnStyles = { null, priceStyle }; + + // ------------------------------------------------- + // Step 5: Import the DataTable with the style array + // ------------------------------------------------- + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // ------------------------------------------------- + // Step 6: Save the workbook to disk + // ------------------------------------------------- + string outputPath = @"YOUR_DIRECTORY\StyledTable.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } +} +``` + +**Očekávaný výsledek:** Po otevření `StyledTable.xlsx` uvidíte sloupec `Price` s dolarovým znakem a dvěma desetinnými místy, přesně tak, jak požadoval návod **format cells currency**. + +--- + +## Často kladené otázky + +**Q: Funguje to s .NET Core?** +A: Naprosto. Aspose.Cells je kompatibilní s .NET standard, takže můžete cílit na .NET 5, .NET 6 nebo novější verze bez změn. + +**Q: Co když má můj DataTable 10 sloupců, ale chci formátovat jen sloupec 5?** +A: Vytvořte `Style[]` o délce 10, vyplňte pozice 0‑4 a 6‑9 hodnotou `null` a na index 4 (nulová báze) vložte svůj vlastní styl. Aspose respektuje každou položku. + +**Q: Můžu skrýt řádek s hlavičkou?** +A: Po importu nastavte `worksheet.Cells.Rows[0].Hidden = true;` nebo jednoduše předávejte `false` pro parametr `includeColumnNames` v metodě `ImportDataTable`. + +--- + +## Závěr + +Právě jsme **vytvořili Excel sešit C#**, importovali `DataTable` a **aplikovali formát měny** pomocí Aspose.Cells. Hlavní kroky – příprava dat, definice stylu, sestavení pole stylů, import pomocí `ImportDataTable` a uložení – pokrývají jádro většiny úloh automatizace Excelu. + +Odtud můžete dál zkoumat: + +- **přidat číselný formát excel** pro data nebo procenta +- Export více listů v jednom souboru +- Použití **format cells currency** s locale‑specifickými symboly +- Automatizaci tvorby grafů na základě stejných dat + +Vyzkoušejte to a rychle se stanete osobou, na kterou se tým obrací s Excel reporty. Máte vlastní tip nebo trik? Napište komentář níže – šťastné kódování! + +![create excel workbook c# screenshot](image.png "create excel workbook c#") + +{{< /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/czech/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md b/cells/czech/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md new file mode 100644 index 0000000000..c2075a9206 --- /dev/null +++ b/cells/czech/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md @@ -0,0 +1,248 @@ +--- +category: general +date: 2026-03-30 +description: Rychle vytvořte Excel sešit v C# vložením JSON dat a uložte jej jako + XLSX. Naučte se, jak generovat Excel z JSON, zapisovat JSON do Excelu a vkládat + JSON do Excelu. +draft: false +keywords: +- create excel workbook c# +- save workbook as xlsx +- generate excel from json +- write json to excel +- insert json into excel +language: cs +og_description: Rychle vytvořte Excel sešit v C# vložením JSON dat a uložením sešitu + jako XLSX. Postupujte podle tohoto průvodce krok po kroku a vytvořte Excel z JSON. +og_title: Vytvořte Excel sešit v C# – Vložte JSON a uložte jako XLSX +tags: +- Aspose.Cells +- C# +- Excel automation +title: Vytvořit Excel sešit v C# – vložit JSON a uložit jako XLSX +url: /cs/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Vytvořte Excel sešit C# – Vložte JSON a uložte jako XLSX + +Už jste někdy potřebovali **create Excel workbook C#** a přímo vložit nějaký JSON do buňky? Nejste jediní — vývojáři často čelí stejnému problému, když mají API payloady nebo konfigurační soubory, které musí skončit v tabulce pro reportování nebo sdílení. + +Dobrou zprávou je, že s Aspose.Cells to můžete udělat během několika řádků, **save workbook as XLSX**, a zachovat celý proces typově bezpečný. V tomto tutoriálu **generate Excel from JSON**, **write JSON to Excel**, a ukážeme vám přesné kroky k **insert JSON into Excel** bez zdlouhavých řetězcových konkatenací. + +## Co tento průvodce pokrývá + +Projdeme si: + +1. Nastavení nového sešitu. +2. Přidání Smart Markeru, který očekává JSON. +3. Předání JSON pole markeru. +4. Úprava `SmartMarkerOptions`, aby JSON zůstal v jedné buňce. +5. Uložení souboru jako XLSX sešitu. + +Na konci budete mít připravený soubor `JsonSingleCell.xlsx` a robustní vzor, který můžete znovu použít pro jakýkoli scénář JSON‑to‑Excel. Žádné externí služby, jen čistý C# a knihovna Aspose.Cells. + +## Požadavky + +- .NET 6+ (nebo .NET Framework 4.6+). +- Visual Studio 2022 nebo jakékoli C#‑kompatibilní IDE. +- NuGet balíček `Aspose.Cells` (bezplatná zkušební verze nebo licencovaná verze). + +Pokud je máte, pojďme na to — žádné další nastavení není potřeba. + +--- + +## Krok 1: Vytvořte nový sešit v C# + +Prvním, co potřebujete, je prázdný objekt sešitu. Považujte ho za čerstvý Excel soubor čekající na data. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is your empty Excel file +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; +``` + +**Proč je to důležité:** +`Workbook` je vstupní bod pro všechny operace s Excelem. Vytvořením nejprve zajistíte, že následné volání **save workbook as xlsx** bude mít konkrétní objekt k serializaci. + +> **Tip:** Pokud plánujete pracovat s více listy, můžete je nyní přidat pomocí `workbook.Worksheets.Add()`. + +--- + +## Krok 2: Umístěte Smart Marker, který očekává JSON + +Smart Markery jsou zástupné znaky, které Aspose.Cells nahrazuje za běhu. Zde mu říkáme, aby hledal JSON řetězec s názvem `data`. + +```csharp +// Put a Smart Marker in cell A1 – {{data:json}} tells Aspose to expect JSON +worksheet.Cells["A1"].PutValue("{{data:json}}"); +``` + +**Proč je to důležité:** +Přípona `:json` říká enginu, že příchozí hodnota je JSON, ne prostý text. To je klíč k **write json to excel** bez ručního parsování. + +--- + +## Krok 3: Definujte JSON pole + +Nyní vytvoříme JSON, který chceme vložit. Pro demonstraci použijeme jednoduchý seznam osob. + +```csharp +// Sample JSON array – could come from an API, file, or DB +string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; +``` + +**Hraniční případ:** +Pokud váš JSON obsahuje dvojité uvozovky, ujistěte se, že jsou escapovány (jak je ukázáno) nebo použijte doslovný řetězec (`@"..."`), aby nedošlo k chybám při kompilaci. + +--- + +## Krok 4: Nakonfigurujte Smart Marker Options — Udržte pole v jedné buňce + +Ve výchozím nastavení by Aspose se pokusil rozšířit pole přes řádky. My chceme, aby celý JSON řetězec zůstal uvnitř jedné buňky, což je ideální pro scénáře **insert json into excel**, kde jej později spotřebitel rozparsuje. + +```csharp +SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions +{ + // Treat the whole array as a single cell value + ArrayAsSingle = true +}; +``` + +**Proč je to důležité:** +`ArrayAsSingle = true` zabraňuje rozšíření řádků, poskytuje čistý JSON blob v jedné buňce. To je nezbytné, když je tabulka spíše transportním formátem než reportem. + +--- + +## Krok 5: Zpracujte Smart Marker s JSON daty + +Nyní svážeme JSON s markerem a necháme Aspose udělat těžkou práci. + +```csharp +// Process the marker – the anonymous object maps "data" to our JSON string +worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); +``` + +**Co se děje pod kapotou:** +Aspose vyhodnotí zástupný znak `{{data:json}}`, serializuje řetězec `jsonData` a zapíše jej do buňky A1 s ohledem na nastavené možnosti. + +--- + +## Krok 6: Uložte sešit jako soubor XLSX + +Nakonec zapíšeme sešit na disk. Zde vstupuje do hry **save workbook as xlsx**. + +```csharp +// Save the workbook – the extension determines the format (XLSX here) +workbook.Save("JsonSingleCell.xlsx"); +``` + +**Výsledek:** +Otevřete `JsonSingleCell.xlsx` v Excelu a uvidíte JSON pole přesně tak, jak jsme jej definovali, úhledně umístěné v buňce A1. + +--- + +## Kompletní, spustitelný příklad + +Níže je kompletní program, který můžete zkopírovat a vložit do konzolové aplikace. Obsahuje všechny výše uvedené kroky a funguje hned po vybalení (za předpokladu, že je nainstalován NuGet balíček Aspose.Cells). + +```csharp +using System; +using Aspose.Cells; + +namespace JsonToExcelDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add a Smart Marker that expects JSON + worksheet.Cells["A1"].PutValue("{{data:json}}"); + + // 3️⃣ Define the JSON array + string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; + + // 4️⃣ Configure options – keep array as a single cell value + SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions + { + ArrayAsSingle = true + }; + + // 5️⃣ Process the marker with the JSON payload + worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); + + // 6️⃣ Save the workbook as XLSX + workbook.Save("JsonSingleCell.xlsx"); + + Console.WriteLine("Excel file created successfully! Check JsonSingleCell.xlsx."); + } + } +} +``` + +**Očekávaný výstup v Excelu** + +| A | +|---| +| `[{"Name":"John","Age":30},{"Name":"Jane","Age":28}]` | + +Tato jediná buňka nyní obsahuje naprosto platné JSON pole připravené pro další zpracování. + +--- + +## Časté otázky a hraniční případy + +### Co když potřebuji JSON rozložit přes řádky? + +Nastavte `ArrayAsSingle = false` (výchozí). Aspose vytvoří řádek pro každý prvek pole a namapuje vlastnosti objektu do sloupců. To je užitečné, když chcete tabulkový pohled místo surového JSON řetězce. + +### Můžu použít JSON soubor místo pevně zakódovaného řetězce? + +Určitě. Přečtěte soubor do řetězce: + +```csharp +string jsonData = File.ReadAllText("people.json"); +``` + +Poté předáte `jsonData` stejnému volání `Process`. Zbytek pipeline zůstane beze změny. + +### Funguje to s velkými JSON payloady? + +Ano, ale sledujte využití paměti. U obrovských polí zvažte streamování dat nebo přímé zápisy do řádků (`ArrayAsSingle = false`), abyste se vyhnuli jedné obrovské buňce, se kterou může Excel mít problémy. + +### Je vygenerovaný XLSX kompatibilní se staršími verzemi Excelu? + +Formát `.xlsx` je založen na Office Open XML a funguje v Excel 2007 a novějších verzích. Pokud potřebujete starý formát `.xls`, změňte volání uložení: + +```csharp +workbook.Save("JsonSingleCell.xls", SaveFormat.Excel97To2003); +``` + +## Pro tipy pro práci s JSON a Excelem + +- **Validate JSON first** — použijte `System.Text.Json.JsonDocument.Parse(jsonData)`, abyste včas zachytili špatně formovaný vstup. +- **Escape special characters** — pokud váš JSON obsahuje zalomení řádků, objeví se jako doslovné `\n` v buňce; můžete je před zpracováním nahradit `Environment.NewLine`. +- **Reuse Smart Markers** — můžete umístit více markerů na stejný list, každý ukazující na jinou JSON vlastnost. +- **Combine with formulas** — jakmile je JSON v buňce, můžete použít Excelovu funkci `FILTERXML` (v novějších verzích) k okamžitému parsování. + +## Závěr + +Nyní víte, jak **create excel workbook c#**, vložit JSON payload a **save workbook as xlsx** pomocí Aspose.Cells. Tento vzor vám umožní **generate excel from json**, **write json to excel** a **insert json into excel** pomocí jen několika řádků kódu, což usnadňuje výměnu dat mezi službami a analytiky. + +Jste připraveni na další krok? Zkuste převést JSON pole na správnou tabulku (nastavte `ArrayAsSingle = false`) nebo prozkoumejte stylování listu po vložení. Stejný přístup funguje pro CSV, XML nebo i vlastní objekty — stačí upravit typ Smart Markeru. + +Šťastné kódování a nebojte se experimentovat! Pokud narazíte na problémy, zanechte komentář níže nebo si prohlédněte oficiální dokumentaci Aspose pro podrobnější informace o Smart Markerech. + +{{< /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/czech/net/excel-workbook/_index.md b/cells/czech/net/excel-workbook/_index.md index e2720be448..0ce0745996 100644 --- a/cells/czech/net/excel-workbook/_index.md +++ b/cells/czech/net/excel-workbook/_index.md @@ -86,6 +86,7 @@ Tak proč nevyužít této příležitosti a nezlepšit si své dovednosti v Exc | [Náhled tisku sešitu](./workbook-print-preview/) | Naučte se, jak vytvářet náhledy tisku pro soubory aplikace Excel pomocí nástroje Aspose.Cells pro .NET. Naučte se kroky kódování v podrobném a snadno srozumitelném tutoriálu. | | [Práce s vlastnostmi typu obsahu](./working-with-content-type-properties/) | Naučte se, jak používat Aspose.Cells pro .NET k práci s vlastnostmi typu obsahu pro vylepšenou správu metadat v Excelu. Postupujte podle tohoto jednoduchého podrobného návodu. | | [Podpora podpisů Xades](./xades-signature-support/) | Naučte se, jak přidat podpisy Xades do souborů Excelu pomocí Aspose.Cells pro .NET s tímto podrobným návodem. Zabezpečte své dokumenty. | +| [Vytvořit hlavní list v C# – kompletní průvodce Aspose.Cells](./create-master-sheet-in-c-complete-aspose-cells-guide/) | Naučte se, jak vytvořit hlavní list v Excelu pomocí C# a Aspose.Cells s podrobným krok za krokem návodem. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/czech/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md b/cells/czech/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md new file mode 100644 index 0000000000..fd9b65afcd --- /dev/null +++ b/cells/czech/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-03-30 +description: Vytvořte hlavní list pomocí Aspose.Cells v C#. Naučte se, jak vytvořit + Excel sešit v C#, povolit duplicitní názvy listů a uložit sešit jako XLSX během + několika kroků. +draft: false +keywords: +- create master sheet +- create excel workbook c# +- save workbook as xlsx +- allow duplicate sheet names +language: cs +og_description: Vytvořte hlavní list pomocí Aspose.Cells v C#. Tento návod ukazuje, + jak vytvořit Excel sešit v C#, povolit duplicitní názvy listů a uložit sešit jako + XLSX. +og_title: Vytvořte hlavní list v C# – Kompletní průvodce Aspose.Cells +tags: +- Aspose.Cells +- C# +- Excel automation +title: Vytvořte hlavní list v C# – Kompletní průvodce Aspose.Cells +url: /cs/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Vytvoření hlavního listu v C# – Kompletní průvodce Aspose.Cells + +Už jste někdy potřebovali **vytvořit hlavní list** v souboru Excel, ale nebyli jste si jisti, jak zacházet s řadou detailních listů, které mají stejný základní název? Nejste v tom sami. V mnoha scénářích reportování končíte s desítkami detailních záložek a výchozí chování většiny knihoven je vyvolat výjimku, když by dva listy měly stejný název. + +Naštěstí je s Aspose.Cells naprosto jednoduché **vytvořit hlavní list**, nakonfigurovat engine tak, aby **povolil duplicitní názvy listů**, a poté **uložit sešit jako XLSX** – vše z čistého C# kódu. V tomto tutoriálu projdeme plně spustitelný příklad, vysvětlíme, proč je každý řádek důležitý, a dáme vám několik tipů, které můžete rovnou zkopírovat do svých projektů. + +> **Co si odnesete** +> * Jak **vytvořit Excel sešit v C#** stylu pomocí Aspose.Cells. +> * Jak vložit smart‑marker, který vytvoří detailní list pro každý řádek dat. +> * Jak nastavit `DetailSheetNewName = DuplicateAllowed`, aby knihovna automaticky přidávala číselný přípon. +> * Jak **uložit sešit jako XLSX** na disk bez dalších kroků. + +Žádná externí dokumentace není potřeba – vše, co potřebujete, je zde. + +--- + +## Požadavky + +Než se pustíme dál, ujistěte se, že máte: + +| Požadavek | Proč je důležitý | +|-------------|----------------| +| .NET 6.0 nebo novější (nebo .NET Framework 4.7+) | Aspose.Cells 23.x+ cílí na tyto runtime. | +| Visual Studio 2022 (nebo jakékoli C# IDE) | Pro snadné vytvoření projektu a ladění. | +| Aspose.Cells for .NET NuGet balíček (`Install-Package Aspose.Cells`) | Knihovna, která pohání veškerou smart‑marker magii. | +| Základní znalost C# | Porozumíte syntaxi bez nutnosti crash‑kurzu. | + +Pokud vám něco chybí, přidejte to hned – nemá smysl pokračovat v polovičně připraveném prostředí. + +--- + +## Krok 1: Vytvoření hlavního listu s Aspose.Cells + +První, co uděláme, je **vytvořit Excel sešit v C#** stylu vytvořením instance objektu `Workbook`. Tento objekt již obsahuje výchozí list, který přejmenujeme na „Master“ a použijeme jako šablonu pro všechny detailní stránky. + +```csharp +using Aspose.Cells; + +// Step 1: Initialise a new workbook – this automatically gives us one sheet +Workbook workbook = new Workbook(); + +// Grab the first (and only) worksheet that comes with a fresh workbook +Worksheet masterSheet = workbook.Worksheets[0]; + +// Give it a meaningful name – this will be our master sheet +masterSheet.Name = "Master"; +``` + +*Proč přejmenovat list?* +Výchozí název jako „Sheet1“ nevyjadřuje záměr, a později, když budete soubor procházet, chcete, aby hlavní záložka byla okamžitě rozpoznatelná. Pojmenování také zabraňuje nechtěným kolizím při pozdějším přidávání dalších listů. + +--- + +## Krok 2: Připravte smart‑marker, který vytvoří detailní listy + +Smart‑markery jsou zástupné symboly, které Aspose.Cells nahradí daty za běhu. Umístěním `{{#detail:DataSheetName}}` do buňky **A1** říkáme engine: „Pro každý záznam v datovém zdroji vytvoř nový list, jehož název pochází z pole `DataSheetName`.“ + +```csharp +// Step 2: Insert a smart‑marker into cell A1. +// The marker #detail tells Aspose.Cells to generate a new sheet per data row. +masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); +``` + +Přemýšlejte o markeru jako o malé kartičce s instrukcemi připevněné na listu. Když procesor běží, přečte kartičku, získá odpovídající hodnotu z datového zdroje a poté klonuje hlavní list do nové záložky. + +--- + +## Krok 3: Vytvořte datový zdroj – duplicitní názvy listů úmyslně + +V reálném životě byste to možná tahali z databáze, ale pro ukázku použijeme pole anonymních objektů v paměti. Všimněte si, že oba položky používají stejný základní název `"Detail"`; to je scénář, kde se **povolení duplicitních názvů listů** stává klíčovým. + +```csharp +// Step 3: Create a data source with two items that share the same base sheet name. +var dataSource = new[] +{ + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } +}; +``` + +Kdybyste to zkusili bez speciálních možností, Aspose.Cells by při druhé iteraci vyvolalo výjimku, protože list s názvem „Detail“ už existuje. Proto je další krok důležitý. + +--- + +## Krok 4: Povolení duplicitních názvů listů + +Aspose.Cells exponuje `SmartMarkerOptions.DetailSheetNewName`. Nastavením na `DetailSheetNewName.DuplicateAllowed` říkáte engine, aby automaticky přidal číselnou příponu (např. „Detail_1“), kdykoli dojde ke kolizi názvů. + +```csharp +// Step 4: Configure SmartMarker options to permit duplicate sheet names. +var smartMarkerOptions = new SmartMarkerOptions +{ + // This makes the library rename clashes to "Detail_1", "Detail_2", etc. + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed +}; +``` + +*Proč nedávat každému řádku unikátní název ručně?* +Protože často zdrojová data nezaručují jedinečnost, zejména když uživatelé zadávají volný text. Nechat knihovnu, aby se postarala o příponu, odstraňuje celou třídu chyb. + +--- + +## Krok 5: Zpracování smart‑markerů a generování detailních listů + +Nyní zavoláme `SmartMarkers.Process`, předáme jak datový zdroj, tak možnosti, které jsme právě nakonfigurovali. Metoda projde každou položku, klonuje hlavní list a přejmenuje klon podle pole `DataSheetName` (plus případná přípona). + +```csharp +// Step 5: Run the smart‑marker processor – this creates the detail sheets. +masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); +``` + +Po provedení tohoto řádku budete mít v sešitu tři záložky: + +1. **Master** – původní šablona. +2. **Detail** – první vygenerovaný list (přípona není potřeba). +3. **Detail_1** – druhý vygenerovaný list (přípona přidána automaticky). + +Můžete to ověřit otevřením souboru v Excelu; uvidíte dva detailní listy vedle sebe. + +--- + +## Krok 6: Uložení sešitu jako soubor XLSX + +Nakonec soubor uložíme na disk. Metoda `Save` automaticky zvolí formát XLSX, když jí předáte příponu `.xlsx`. + +```csharp +// Step 6: Persist the workbook – this is the moment we finally “save workbook as XLSX”. +string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; +workbook.Save(outputPath); +``` + +**Pro tip:** Pokud potřebujete streamovat soubor přímo do webové odpovědi (např. ASP.NET Core), použijte `workbook.Save(stream, SaveFormat.Xlsx)` místo cesty k souboru. + +--- + +## Kompletní funkční příklad + +Níže je kompletní, připravený program. Zkopírujte jej do konzolové aplikace, stiskněte F5 a otevřete vygenerovaný soubor, abyste viděli výsledek. + +```csharp +using System; +using Aspose.Cells; + +namespace MasterSheetDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook and rename the default sheet to "Master" + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert a smart‑marker that will generate a detail sheet per data row + masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); + + // 3️⃣ Prepare a data source where two rows share the same sheet name + var dataSource = new[] + { + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } + }; + + // 4️⃣ Allow duplicate sheet names – the library will add "_1", "_2", … + var smartMarkerOptions = new SmartMarkerOptions + { + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed + }; + + // 5️⃣ Process the smart‑markers; this creates the detail sheets + masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); + + // 6️⃣ Save the workbook as an XLSX file + string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Očekávaný výsledek:** Otevřete `DuplicateDetailSheets.xlsx` a uvidíte tři listy – `Master`, `Detail` a `Detail_1`. Každý detailní list je přesnou kopií hlavního, připravený později naplnit řádkově specifickými daty. + +--- + +## Často kladené otázky a okrajové případy + +### Co když potřebuji více než dva duplicitní listy? + +Žádný problém. Stejné nastavení `DuplicateAllowed` bude nadále přidávat inkrementální čísla (`Detail_2`, `Detail_3`, …), dokud každý řádek nebude mít vlastní záložku. + +### Můžu si přizpůsobit formát přípony? + +Ve výchozím nastavení Aspose.Cells používá podtržítko následované číselným indexem. Pokud potřebujete jiný vzor (např. „Detail‑A“, „Detail‑B“), budete muset po spuštění `Process` provést post‑processing sešitu, projít `workbook.Worksheets` a přejmenovat podle libosti. + +### Funguje tento přístup s velkými datovými sadami (stovky řádků)? + +Ano, ale sledujte využití paměti. Každý vygenerovaný list je plná kopie hlavního, takže velké množství řádků může rychle zvětšit velikost souboru. Pokud potřebujete jen několik řádků na list, zvažte použití `SmartMarkerOptions.RemoveEmptyRows = true`, aby se odstranily nadbytečné buňky. + +### Je vygenerovaný soubor skutečně soubor XLSX? + +Rozhodně. Metoda `Save` zapisuje Open XML balíček, který Excel očekává. Soubor můžete otevřít i v LibreOffice nebo Google Sheets bez jakékoli konverze. + +--- + +## Tipy pro produkční kód + +| Tip | Proč je důležitý | +|-----|-------------------| +| **Dispose `Workbook** | + +{{< /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/czech/net/formulas-functions/_index.md b/cells/czech/net/formulas-functions/_index.md index 6b32ad8deb..779c29e8c4 100644 --- a/cells/czech/net/formulas-functions/_index.md +++ b/cells/czech/net/formulas-functions/_index.md @@ -102,9 +102,12 @@ Naučte se, jak pomocí Aspose.Cells .NET zadat jazyk souborů aplikace Excel. V ### [Aktualizace vzorců Power Query v Excelu pomocí Aspose.Cells .NET](./update-power-query-formulas-aspose-cells-net) Naučte se, jak programově aktualizovat vzorce Power Query v sešitech Excelu pomocí Aspose.Cells pro .NET. Správa hlavních zdrojů dat pro dynamické reporty. -## Pochopení typů vzorců v Excelu +### [Jak použít WRAPCOLS v C# – Vytvořit Excel sešit s funkcemi Wrap](./how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/) + +### [Vytvoření Excel sešitu v C# – průvodce Lambda, SEQUENCE a EXPAND](./create-excel-workbook-c-lambda-sequence-expand-guide/) +Naučte se, jak pomocí Aspose.Cells v C# vytvořit sešit Excel s funkcemi Lambda, SEQUENCE a EXPAND pro dynamické výpočty. -Vzorce v Excelu se dodávají v různých formách, z nichž každá má jedinečné vlastnosti, které Aspose.Cells dokáže spravovat: +## Pochopení typů vzorců v Excelu ### Standardní buněčné vzorce diff --git a/cells/czech/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md b/cells/czech/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md new file mode 100644 index 0000000000..144b5b4276 --- /dev/null +++ b/cells/czech/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-30 +description: Vytvořte Excel sešit v C# pomocí Aspose.Cells. Naučte se použít lambda + funkci v Excelu, funkci sekvence v Excelu, rozšířit pole v Excelu a uložit sešit + jako xlsx. +draft: false +keywords: +- create excel workbook c# +- lambda function excel +- save workbook as xlsx +- sequence function excel +- expand array excel +language: cs +og_description: Rychle vytvořte sešit Excelu v C#. Tento průvodce ukazuje, jak použít + lambda funkci v Excelu, funkci sekvence v Excelu, rozšířit pole v Excelu a uložit + sešit jako xlsx. +og_title: Vytvoření Excel sešitu v C# – Průvodce Lambda, SEQUENCE a EXPAND +tags: +- Aspose.Cells +- C# +- Excel automation +title: Vytvoření Excel sešitu v C# – Průvodce Lambda, SEQUENCE a EXPAND +url: /cs/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Vytvoření Excel sešitu C# – Lambda, SEQUENCE a EXPAND průvodce + +Už jste někdy potřebovali **vytvořit Excel sešit C#** pro automatizovanou zprávu, ale nebyli jste si jisti, které API volání použít? Nejste v tom sami — mnoho vývojářů narazí na stejnou překážku, když poprvé vstoupí do programového generování Excelu. V tomto průvodci uvidíte kompletní, spustitelný příklad, který pokrývá vše od nové **SEQUENCE funkce Excel** po výkonnou **LAMBDA funkci Excel**, a dokonce i to, jak **expandovat pole Excel** výsledky. + +Ukážeme vám také přesné kroky k **uložení sešitu jako xlsx**, abyste mohli soubor předat komukoli, kdo používá Excel. Na konci tohoto tutoriálu budete mít solidní, produkčně připravený úryvek kódu, který můžete vložit do libovolného .NET projektu. Žádné vágní odkazy typu „viz dokumentace“ — jen kód, který funguje dnes. + +## Co budete potřebovat + +- **.NET 6.0 nebo novější** — příklad cílí na .NET 6, ale funguje na jakékoli nedávné verzi. +- **Aspose.Cells pro .NET** — nainstalujte přes NuGet (`Install-Package Aspose.Cells`). +- Základní porozumění syntaxi C# (proměnné, objekty a lambda výrazy). +- IDE, ve kterém se cítíte pohodlně (Visual Studio, Rider nebo VS Code). + +To je vše. Žádné extra COM interop, žádný Office nainstalovaný na serveru — Aspose.Cells vše zvládne v paměti. + +## Vytvoření Excel sešitu C# – krok za krokem implementace + +Níže rozdělujeme proces na malé kroky. Každý krok má jasný nadpis, krátký úryvek kódu a vysvětlení **proč** to děláme. Klidně zkopírujte celý blok na konci a spusťte jej jako konzolovou aplikaci. + +### Krok 1 – Inicializace nového sešitu + +Nejprve potřebujeme prázdný objekt sešitu, který představuje Excel soubor v paměti. + +```csharp +using Aspose.Cells; + +// Step 1: Create a new workbook and get the first worksheet +Workbook workbook = new Workbook(); // empty workbook +Worksheet sheet = workbook.Worksheets[0]; // default first sheet +``` + +*Proč je to důležité:* `Workbook` je vstupní bod pro všechny operace Aspose.Cells. Tím, že získáme první `Worksheet`, máme plátno, kam můžeme zapisovat vzorce, hodnoty nebo formátování. + +> **Tip:** Pokud potřebujete více listů, stačí zavolat `workbook.Worksheets.Add()` a uchovat si odkaz na každý z nich. + +### Krok 2 – Použití funkce SEQUENCE v Excelu k vygenerování dat + +**sequence function excel** vytváří dynamické pole čísel bez jakéhokoli VBA. Umístíme ji do buňky `A1` a necháme Excel automaticky rozšířit výsledek. + +```csharp +// Step 2: Generate a 5‑row, 1‑column array from a SEQUENCE +sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; // 1..3 padded with blanks +``` + +*Proč je to důležité:* `SEQUENCE(3)` vrací `[1,2,3]`. Zabalíme ji do `EXPAND`, čímž vynutíme výsledek do 5‑řádkového rozsahu, přičemž další řádky budou prázdné. Tím demonstrujeme jak **sequence function excel**, tak **expand array excel** najednou. + +### Krok 3 – Agregace čísel pomocí funkce LAMBDA v Excelu + +Nyní představíme schopnost **lambda function excel**. Sečteme čísla 1‑5 pomocí nové funkce `REDUCE`, která interně používá lambda výraz. + +```csharp +// Step 3: Aggregate a sequence (sum 1..5) using REDUCE/LAMBDA +sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; // result = 15 +``` + +*Proč je to důležité:* `REDUCE` iteruje přes pole vytvořené `SEQUENCE(5)`, předává každý prvek (`b`) do lambda výrazu spolu s akumulátorem (`a`). Lambda `a+b` je sčítá a výsledek `15` zůstane v `B1`. Jedná se o čistý, jen‑vzorcový způsob provádění redukcí bez cyklů v C#. + +### Krok 4 – Použití trigonometrických funkcí přímo v buňkách + +Vestavěné matematické funkce Excelu jsou užitečné pro rychlé výpočty. Umístíme kotangens a hyperbolický kotangens do sousedních buněk. + +```csharp +// Step 4: Trigonometric functions directly in Excel cells +sheet["C1"].Formula = "COT(PI()/4)"; // evaluates to 1 +sheet["D1"].Formula = "COTH(1)"; // hyperbolic cotangent of 1 +``` + +*Proč je to důležité:* Ukazuje, že můžete kombinovat klasické matematické funkce s novějšími dynamickými poli. Není nutné tyto hodnoty počítat v C#, pokud nemáte konkrétní důvod pro výkon. + +### Krok 5 – Vypočítání všech vzorců + +Aspose.Cells automaticky nevyhodnocuje vzorce, když je nastavíte. Musíte jej požádat o výpočet. + +```csharp +// Step 5: Force calculation so that cells store the results +workbook.CalculateFormula(); +``` + +*Proč je to důležité:* Po tomto volání obsahuje vlastnost `Value` každé buňky vyhodnocený výsledek, připravený k uložení nebo zpětnému čtení. + +### Krok 6 – Uložení sešitu jako Xlsx + +Nakonec uložíme sešit na disk pomocí vzoru **save workbook as xlsx**. + +```csharp +// Step 6: Save the workbook to an Excel file (XLSX format) +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + +workbook.Save(outputPath); +Console.WriteLine($"Workbook saved to: {outputPath}"); +``` + +*Proč je to důležité:* Metoda `Save` automaticky rozpozná příponu souboru. Použitím „.xlsx“ zajistíme kompatibilitu souboru s moderními verzemi Excelu. Cesta ukazuje na plochu pro snadný přístup během testování. + +### Úplný funkční příklad + +Níže je kompletní program, který můžete vložit do nového konzolového projektu. Obsahuje všechny výše uvedené kroky a malý ověřovací blok, který vypíše vypočítané hodnoty do konzole. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialize workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + + // SEQUENCE + EXPAND + sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; + + // REDUCE with LAMBDA + sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; + + // Trig functions + sheet["C1"].Formula = "COT(PI()/4)"; + sheet["D1"].Formula = "COTH(1)"; + + // Calculate formulas + workbook.CalculateFormula(); + + // Verify results (optional) + Console.WriteLine("A1‑A5 (expanded SEQUENCE):"); + for (int i = 0; i < 5; i++) + { + Console.WriteLine($" Row {i + 1}: {sheet.Cells[i, 0].Value ?? "blank"}"); + } + Console.WriteLine($"B1 (sum 1‑5): {sheet["B1"].Value}"); + Console.WriteLine($"C1 (cot(π/4)): {sheet["C1"].Value}"); + Console.WriteLine($"D1 (coth(1)): {sheet["D1"].Value}"); + + // Save workbook + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + workbook.Save(outputPath); + Console.WriteLine($"Workbook saved to: {outputPath}"); + } +} +``` + +**Očekávaný výstup v konzoli** + +``` +A1‑A5 (expanded SEQUENCE): + Row 1: 1 + Row 2: 2 + Row 3: 3 + Row 4: blank + Row 5: blank +B1 (sum 1‑5): 15 +C1 (cot(π/4)): 1 +D1 (coth(1)): 1.31303528549933 +Workbook saved to: C:\Users\YourName\Desktop\NewFunctions.xlsx +``` + +A když otevřete *NewFunctions.xlsx*, uvidíte stejné čísla uspořádané v prvních čtyřech sloupcích. + +![snímek obrazovky vytvoření excel sešitu c# výsledného tabulky](/images/create-excel-workbook-csharp.png) + +## Okrajové případy, tipy a časté otázky + +- **Co když potřebuji více než jeden list?** + Stačí zavolat `workbook.Worksheets.Add()` a opakovat přiřazování vzorců na každém novém objektu `Worksheet`. + +- **Mohu použít starší verze Excelu?** + Dynamické pole funkce (`SEQUENCE`, `EXPAND`, `REDUCE`) vyžadují Excel 365 nebo Excel 2021+. Pokud cílíte na starší verze, držte se klasických vzorců nebo vypočítejte hodnoty v C# před jejich zápisem. + +- **Obavy o výkon?** + Pro tisíce řádků je nastavení vzorců na rozsah a následné volání `CalculateFormula` obvykle rychlejší než cyklické přiřazování hodnot po jedné. + +- **Ukládání do proudu místo souboru?** + `work + +{{< /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/czech/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md b/cells/czech/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md new file mode 100644 index 0000000000..248b164085 --- /dev/null +++ b/cells/czech/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md @@ -0,0 +1,210 @@ +--- +category: general +date: 2026-03-30 +description: Naučte se, jak v C# použít WRAPCOLS k vytvoření sešitu Excel, přidání + dat do Excelu a vynucení výpočtu vzorců, a zároveň použít WRAPROWS. +draft: false +keywords: +- how to use wrapcols +- create excel workbook c# +- add data to excel +- force formula calculation +- how to use wraprows +language: cs +og_description: Objevte, jak použít WRAPCOLS v C# k vytvoření sešitu Excel, přidání + dat, vynucení výpočtu vzorců a využití WRAPROWS pro maticové vzorce. +og_title: Jak používat WRAPCOLS v C# – kompletní průvodce +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Jak použít WRAPCOLS v C# – Vytvořte Excel sešit s funkcemi pro zalamování +url: /cs/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak používat WRAPCOLS v C# – Vytvořit Excel sešit s funkcemi Wrap + +Už jste se někdy zamysleli **jak používat WRAPCOLS**, když automatizujete Excel pomocí C#? Nejste sami – mnoho vývojářů narazí na problém, když potřebují převést vodorovný rozsah na vertikální pole, aniž by museli psát spoustu kódu. Dobrou zprávou je, že Aspose.Cells to dělá hračkou. + +V tomto tutoriálu projdeme kompletním, spustitelným příkladem, který ukazuje **jak používat WRAPCOLS**, jak **vytvořit Excel sešit v C# stylu**, jak **přidat data do Excelu** a dokonce jak **vynutit výpočet vzorců**, aby se výsledky objevily okamžitě. Také přidáme **jak používat WRAPROWS** pro opačnou transformaci. Na konci budete mít připravený program k spuštění a jasné pochopení, proč je každý krok důležitý. + +--- + +![Jak používat WRAPCOLS v C# příklad](alt="Screenshot showing Excel workbook after using WRAPCOLS in C#") + +## Co tento průvodce pokrývá + +* Nastavení nového sešitu pomocí Aspose.Cells. +* Programové naplnění buněk (**add data to Excel**). +* Použití funkce `WRAPCOLS` k převodu řádku na sloupec. +* Použití `WRAPROWS` k převodu sloupce zpět na řádek (**how to use wraprows**). +* Vynucení výpočtu vzorců okamžitě (**force formula calculation**). +* Uložení souboru a kontrola výstupu. + +Není potřeba žádná externí dokumentace – vše, co potřebujete, je zde. + +--- + +## Jak používat WRAPCOLS v C# – Krok za krokem implementace + +Níže je celý zdrojový soubor. Klidně jej zkopírujte a vložte do nového konzolového projektu, přidejte NuGet balíček Aspose.Cells a stiskněte **F5**. + +```csharp +// ------------------------------------------------------------ +// How to Use WRAPCOLS in C# – Complete Example +// ------------------------------------------------------------ +using System; +using Aspose.Cells; + +namespace WrapFunctionsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a fresh workbook (this is how we **create excel workbook c#** style) + Workbook workbook = new Workbook(); + + // 2️⃣ Grab the first worksheet – it's created by default + Worksheet sheet = workbook.Worksheets[0]; + + // 3️⃣ **Add data to Excel**: place two numbers side‑by‑side + sheet.Cells["A1"].PutValue(1); // first value + sheet.Cells["B1"].PutValue(2); // second value + + // 4️⃣ **How to use WRAPCOLS** – turn the horizontal range A1:B1 into a vertical array + // The second argument (1) tells WRAPCOLS to create 1 column per element. + sheet["C1"].Formula = "WRAPCOLS(A1:B1, 1)"; + + // 5️⃣ **How to use WRAPROWS** – the opposite; turn the same range into a horizontal array + // Here we ask for 2 rows per element, which produces a single row with both values. + sheet["C2"].Formula = "WRAPROWS(A1:B1, 2)"; + + // 6️⃣ **Force formula calculation** so the workbook reflects the results immediately + workbook.CalculateFormula(); + + // 7️⃣ Save the workbook to disk – change the path to a folder you own + string outputPath = @"WrapFunctions.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + Console.WriteLine("Check cells C1 and C2 for the WRAPCOLS / WRAPROWS results."); + } + } +} +``` + +### Proč je každý řádek důležitý + +| Krok | Vysvětlení | +|------|------------| +| **1️⃣ Vytvořit nový sešit** | Toto je základ. Aspose.Cells zachází s objektem `Workbook` jako s celým Excel souborem, takže v podstatě **vytváříte Excel sešit v C# stylu**. | +| **2️⃣ Získat první list** | Nový sešit vždy obsahuje alespoň jeden list (`Worksheets[0]`). Přístup k němu brzy zabraňuje překvapením s null‑referencí. | +| **3️⃣ Přidat data do Excelu** | Pomocí `PutValue` **přidáváme data do Excelu** bez starostí o formátování buněk. Čísla `1` a `2` jsou naše testovací data pro wrap funkce. | +| **4️⃣ Jak používat WRAPCOLS** | `WRAPCOLS(A1:B1, 1)` říká Excelu, aby vzal rozsah `A1:B1` a rozlil jeho hodnoty vertikálně, po jedné na řádek. Výsledek končí v `C1` a rozlije se dolů (`C1`, `C2`, …). | +| **5️⃣ Jak používat WRAPROWS** | `WRAPROWS(A1:B1, 2)` dělá opak: vytvoří horizontální rozlití, umístí dvě hodnoty do jednoho řádku začínajícího v `C2`. | +| **6️⃣ Vynutit výpočet vzorce** | Ve výchozím nastavení může Aspose.Cells odložit výpočet až do otevření souboru v Excelu. Volání `CalculateFormula()` **vynutí výpočet vzorce**, takže můžete okamžitě po uložení přečíst výsledky. | +| **7️⃣ Uložit sešit** | Poslední krok zapíše vše na disk. Otevřete vzniklý soubor `WrapFunctions.xlsx` a podívejte se na výsledek. | + +--- + +## Vytvořit Excel sešit v C# – Nastavení prostředí + +Než spustíte kód, ujistěte se, že máte správné nástroje: + +1. **.NET 6.0+** – Nejnovější LTS verze funguje nejlépe. +2. **Visual Studio 2022** (nebo VS Code s rozšířením C#). +3. **Aspose.Cells for .NET** – Instalace přes NuGet: + ```bash + dotnet add package Aspose.Cells + ``` +4. Zapisovatelná složka pro výstupní soubor. + +Tyto předpoklady jsou minimální; není vyžadována žádná COM interop nebo instalace Office, což je důvod, proč je Aspose.Cells oblíbenou volbou pro server‑side generování Excelu. + +--- + +## Přidat data do Excelu – Nejlepší postupy + +Když **přidáváte data do Excelu** programově, zvažte následující tipy: + +* **Použijte `PutValue`** pro surová čísla nebo řetězce; automaticky detekuje datový typ. +* **Vyhněte se pevně zakódovaným adresám buněk** ve velkých projektech – používejte smyčky nebo pojmenované oblasti pro škálovatelnost. +* **Nastavujte styly buněk střídmě**; každá změna stylu přináší režii. Pokud potřebujete formátování, vytvořte jeden objekt stylu a aplikujte jej na více buněk. + +V našem malém příkladu vkládáme jen dvě čísla, ale stejný vzor se dá rozšířit na tisíce řádků. + +--- + +## Jak používat WRAPROWS – Příklad horizontálního pole + +Pokud potřebujete opak `WRAPCOLS`, `WRAPROWS` je vaše volba. Syntaxe je: + +``` +WRAPROWS(source_range, [rows_per_item]) +``` + +* `source_range` – rozsah, který chcete transformovat. +* `rows_per_item` – volitelný; určuje, kolik řádků každá položka zabírá. V našem demu jsme použili `2`, aby se obě hodnoty umístily do jednoho řádku. + +Můžete experimentovat změnou druhého argumentu: + +```csharp +// Example: split each value into its own column, three rows per item +sheet["D1"].Formula = "WRAPROWS(A1:B1, 3)"; +``` + +Otevřete sešit a uvidíte, že hodnoty se rozlévají přes tři sloupce, přičemž každý sloupec obsahuje původní čísla opakovaná podle potřeby. + +--- + +## Vynutit výpočet vzorce – Kdy a proč + +Můžete se ptát, „Opravdu potřebuji volat `CalculateFormula()`?“ Odpověď je **ano**, pokud: + +* Plánujete číst vypočtené hodnoty **programově** po uložení. +* Chcete zajistit, aby se soubor v Excelu otevřel se správnými výsledky již zobrazenými. +* Běžíte v **headless prostředí** (např. webové API), kde žádný uživatel manuálně nevyvolá přepočet. + +Přeskočení tohoto kroku nepoškodí sešit, ale buňky budou zobrazovat text vzorce (`=WRAPCOLS(...)`) místo vypočtených hodnot, dokud Excel neprovedete přepočet. + +--- + +## Očekávaný výstup – Co hledat + +Po spuštění programu a otevření `WrapFunctions.xlsx`: + +| Cell | Formula | Displayed Value | +|------|---------|-----------------| +| **C1** | `=WRAPCOLS(A1:B1, 1)` | `1` (v C1) a `2` (v C2) – vertikální seznam | +| **C2** | `=WRAPROWS(A1:B1, 2)` | `1` v C2 a `2` v D2 – horizontální seznam | + +Tak uvidíte sloupec hodnot začínající v **C1** a řádek hodnot začínající v **C2**. To potvrzuje, že obě wrap funkce fungovaly podle očekávání. + +--- + +## Okrajové případy a varianty + +| Scénář | Co se mění? | Navrhovaná úprava | +|--------|-------------|-------------------| +| **Velký rozsah (A1:Z1)** | Více hodnot k rozlití vertikálně | Zvyšte druhý argument `WRAPCOLS`, pokud chcete více sloupců na skupinu. | +| **Není‑číselná data** | Řetězce jsou zpracovány stejným způsobem | Žádná změna kódu; `PutValue` přijímá libovolný objekt. | +| **Dynamický rozsah** | Velikost neznáte při kompilaci | Použijte `sheet.Cells.MaxDataColumn` a `MaxDataRow` k vytvoření řetězce adresy. | +| **Více listů** | Potřeba použít wrap funkce na různých listech | Odkazujte na správný list (`workbook.Worksheets["Sheet2"]`). | + +--- + +## Profesionální tipy z praxe + +* **Pro tip:** Zabalte vytvoření sešitu do `using` bloku, pokud cílíte na .NET Core 3.1+, aby byly všechny prostředky uvolněny okamžitě. +* **Watch out for:** Nastavení stejného vzorce v rozsáhlém rozsahu bez volání `CalculateFormula()` může způsobit úzká místa ve výkonu. Kde je to možné, zpracovávejte vzorce po dávkách. +* **Tip:** Pokud potřebujete načíst vypočtené hodnoty zpět v kódu, zavolejte ` + +{{< /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/czech/net/tables-and-lists/_index.md b/cells/czech/net/tables-and-lists/_index.md index 6e9c6db4e6..38ba2050f1 100644 --- a/cells/czech/net/tables-and-lists/_index.md +++ b/cells/czech/net/tables-and-lists/_index.md @@ -51,6 +51,8 @@ Snadno převádějte tabulky na oblasti v Excelu pomocí Aspose.Cells pro .NET s Odemkněte sílu Aspose.Cells pro .NET. Naučte se číst a zapisovat tabulky s dotazy na zdroje dat v tomto podrobném průvodci krok za krokem. ### [Nastavení komentáře k tabulce nebo seznamu v Excelu](./setting-comment-of-table-or-list/) Naučte se, jak nastavit komentáře k tabulkám v Excelu pomocí Aspose.Cells pro .NET s naším jednoduchým podrobným návodem. +### [Vytvoření tabulky z oblasti v C# – kompletní tutoriál Aspose.Cells](./create-table-from-range-in-c-complete-aspose-cells-tutorial/) +Naučte se, jak převést oblast na tabulku v Excelu pomocí Aspose.Cells v C# s podrobným krok za krokem návodem. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/czech/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md b/cells/czech/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md new file mode 100644 index 0000000000..fb32dcac57 --- /dev/null +++ b/cells/czech/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md @@ -0,0 +1,230 @@ +--- +category: general +date: 2026-03-30 +description: Vytvořte tabulku z rozsahu v C# pomocí Aspose.Cells – přidejte data do + buněk, převeďte rozsah na ListObject a uložte Excel bez filtru. +draft: false +keywords: +- create table from range +- create excel workbook c# +- add data to cells +- convert range to listobject +- save excel without filter +language: cs +og_description: Vytvořte tabulku z oblasti v C# pomocí Aspose.Cells. Naučte se, jak + přidávat data do buněk, převést oblast na ListObject a uložit Excel bez filtru. +og_title: Vytvoření tabulky z rozsahu v C# – Kompletní tutoriál Aspose.Cells +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Vytvořit tabulku z rozsahu v C# – kompletní tutoriál Aspose.Cells +url: /cs/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Vytvoření tabulky z rozsahu v C# – Kompletní tutoriál Aspose.Cells + +Už jste někdy potřebovali **create table from range** v C#, ale nebyli jste si jisti, jak převést obyčejný blok dat na plně vybavenou Excel tabulku? Nejste v tom jediní. Ať už automatizujete reporty, vytváříte skórovací karty nebo jen čistíte data pro následnou analýzu, zvládnutí tohoto malého triku vám může ušetřit spoustu ruční práce. + +V tomto průvodci projdeme celý proces: **create excel workbook c#**, **add data to cells**, **convert range to ListObject** a nakonec **save excel without filter**. Na konci budete mít připravený úryvek kódu, který můžete vložit do jakéhokoli .NET projektu odkazujícího na Aspose.Cells. + +--- + +## Požadavky + +- .NET 6+ (nebo .NET Framework 4.7.2+) nainstalováno +- Aspose.Cells pro .NET (NuGet balíček `Aspose.Cells`) – nejnovější verze v době psaní (23.10) funguje perfektně. +- Základní pochopení syntaxe C# – není vyžadována hluboká znalost Excel interop. + +Pokud to máte, pojďme začít. + +--- + +## Krok 1: Vytvoření Excel sešitu v C# + +Nejprve potřebujeme čerstvý objekt sešitu. Považujte ho za prázdný Excel soubor, který nakonec bude obsahovat naši tabulku. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is equivalent to opening a blank .xlsx file. +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (default) worksheet. +``` + +> **Pro tip:** `Workbook()` bez argumentů vytvoří sešit s jedním výchozím listem, což je ideální pro rychlé ukázky. Pokud potřebujete více listů, můžete je později přidat pomocí `workbook.Worksheets.Add()`. + +--- + +## Krok 2: Přidání dat do buněk + +Nyní naplníme list malým datovým souborem – dvěma sloupci (Name, Score) a třemi řádky hodnot. Toto demonstruje **add data to cells** čistým a čitelným způsobem. + +```csharp +// Header row +worksheet.Cells["A1"].PutValue("Name"); +worksheet.Cells["B1"].PutValue("Score"); + +// Data rows +worksheet.Cells["A2"].PutValue("Alice"); +worksheet.Cells["B2"].PutValue(85); +worksheet.Cells["A3"].PutValue("Bob"); +worksheet.Cells["B3"].PutValue(92); +``` + +Proč použít `PutValue`? Automaticky detekuje datový typ (string vs. numeric) a podle toho formátuje buňku, což vám ušetří manipulaci s objekty `Style` v jednoduchých scénářích. + +> **Expected output:** Po tomto kroku, pokud otevřete sešit v Excelu, uvidíte dvou‑sloupcovou mřížku s hlavičkami „Name“ a „Score“, následovanou dvěma řádky dat. + +--- + +## Krok 3: Převod rozsahu na ListObject (Tabulka) + +Zde se děje kouzlo: převod obyčejného rozsahu na Excel tabulku (nazývanou **ListObject** v API Aspose.Cells). To nejen přidá vizuální styl, ale také umožní vestavěné funkce jako řazení, filtrování a strukturované odkazy. + +```csharp +// Define the range boundaries. +// startRow and startColumn are zero‑based indexes. +// rowCount includes the header row. +int startRow = 0; // Row 1 in Excel +int startColumn = 0; // Column A +int rowCount = 3; // Header + 2 data rows +int columnCount = 2; // Two columns: Name & Score + +// Add a ListObject to the worksheet and retrieve the object. +int listIndex = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); +ListObject table = worksheet.ListObjects[listIndex]; + +// Turn on the UI filter dropdowns so users can interact with the table. +table.ShowAutoFilter = true; +``` + +> **Proč použít ListObject?** +> - **Structured references**: Vzorce mohou odkazovat na sloupce podle názvu. +> - **Auto‑filter UI**: Uživatelé získají rozbalovací šipky pro rychlé filtrování. +> - **Styling**: Později můžete aplikovat vestavěné styly tabulky jedním řádkem. + +--- + +## Krok 4: Odstranění UI AutoFiltru (Uložení Excelu bez filtru) + +Někdy potřebujete čistý list bez šipek filtru – například když je sešit finální zprávou. Aspose.Cells 23.10 zavedl jednoduchý způsob, jak úplně odstranit UI filtru. + +```csharp +// Remove the filter UI completely. +table.AutoFilter = null; // Clears the underlying filter object. +table.ShowAutoFilter = false; // Hides the dropdown arrows. +``` + +Všimněte si, že data neodstraňujeme; pouze vypínáme vizuální ovládací prvky filtru. To splňuje požadavek **save excel without filter**. + +--- + +## Krok 5: Uložení sešitu + +Nakonec zapíšeme sešit na disk. Soubor bude obsahovat tabulku, ale bez jakéhokoli UI filtru. + +```csharp +// Choose a folder you have write access to. +string outputPath = @"C:\Temp\NoAutoFilter.xlsx"; +workbook.Save(outputPath); +``` + +Otevřete `NoAutoFilter.xlsx` v Excelu – uvidíte tabulku stylizovanou výchozím formátováním, ale bez šipek filtru. Data jsou zachována a soubor je připraven k distribuci. + +--- + +![Snímek obrazovky ukazující vytvoření tabulky z rozsahu v Excelu pomocí Aspose.Cells](image.png "Snímek obrazovky vytvoření tabulky z rozsahu") + +*Image alt text:* **Snímek obrazovky ukazující vytvoření tabulky z rozsahu v Excelu pomocí Aspose.Cells** – vizuální důkaz, že tabulka existuje bez rozbalovacích filtrů. + +--- + +## Úplný, spustitelný příklad + +Níže je kompletní program, který můžete zkopírovat a vložit do konzolové aplikace. Obsahuje všechny výše uvedené kroky plus několik dalších komentářů pro přehlednost. + +```csharp +using System; +using Aspose.Cells; + +namespace AsposeTableDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add data to cells – this is the “add data to cells” part. + worksheet.Cells["A1"].PutValue("Name"); + worksheet.Cells["B1"].PutValue("Score"); + worksheet.Cells["A2"].PutValue("Alice"); + worksheet.Cells["B2"].PutValue(85); + worksheet.Cells["A3"].PutValue("Bob"); + worksheet.Cells["B3"].PutValue(92); + + // 3️⃣ Convert the range into a ListObject (i.e., create table from range). + int startRow = 0, startColumn = 0, rowCount = 3, columnCount = 2; + int listIdx = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); + ListObject table = worksheet.ListObjects[listIdx]; + table.ShowAutoFilter = true; // optional UI filter + + // 4️⃣ Remove the AutoFilter UI – “save excel without filter”. + table.AutoFilter = null; + table.ShowAutoFilter = false; + + // 5️⃣ Save the workbook. + string filePath = @"C:\Temp\NoAutoFilter.xlsx"; + workbook.Save(filePath); + + Console.WriteLine($"Workbook saved to {filePath}"); + } + } +} +``` + +Spusťte program a poté otevřete `C:\Temp\NoAutoFilter.xlsx`. Uvidíte pěkně formátovanou tabulku, žádné šipky filtru a data, která jsme zadali. To je celý workflow **create excel workbook c#** v méně než 60 řádcích kódu. + +--- + +## Často kladené otázky a okrajové případy + +**Q: Co když můj datový rozsah není souvislý?** +A: Aspose.Cells vyžaduje obdélníkový rozsah pro `ListObjects.Add`. Pokud máte nesouvislá data, nejprve vytvořte dočasný rozsah (např. zkopírujte části do nového listu) a poté tento rozsah převěďte. + +**Q: Mohu použít vlastní styl tabulky?** +A: Rozhodně. Po vytvoření `ListObject` nastavte `table.TableStyleType = TableStyleType.TableStyleMedium9;` (nebo kterýkoli z 65 vestavěných stylů). To je pěkný způsob, jak přizpůsobit tabulku firemnímu brandingu. + +**Q: Jak zachovat filtr, ale skrýt šipky?** +A: Logika filtru je v `table.AutoFilter`. Nastavením `ShowAutoFilter = false` pouze skryjete UI; podkladový filtr zůstává. Takže můžete později programově filtrovat řádky. + +**Q: Co s velkými datovými sadami (10 000+ řádků)?** +A: Stejná API funguje, ale zvažte vypnutí automatických výpočtů (`workbook.CalcEngine = false`) před hromadnými vkládáními pro výkon, a po nich jej opět zapněte. + +--- + +## Závěr + +Právě jsme prošli, jak **create table from range** v C# pomocí Aspose.Cells, krok za krokem – od **create excel workbook c#**, přes **add data to cells**, až po **convert range to ListObject** a nakonec **save excel without filter**. Kód je kompletní, spustitelný a připravený pro produkci. + +Dále můžete zkusit: + +- Přidání podmíněného formátování pro zvýraznění nejvyšších skóre. +- Export sešitu do PDF pomocí `workbook.Save("Report.pdf", SaveFormat.Pdf);`. +- Použití `table.Columns["Score"].DataBodyRange.Sort` k programovému řazení tabulky. + +Neváhejte experimentovat s různými datovými sadami, styly tabulek nebo i s více listy. API je dostatečně flexibilní, aby zvládlo cokoli od malé skórovací tabulky po obrovskou finanční účetní knihu. + +Máte otázky nebo narazili na problém? Zanechte komentář níže nebo mě kontaktujte na GitHubu. Šťastné kódování a užívejte si převod surových rozsahů na vylepšené Excel tabulky! + +{{< /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/dutch/net/conversion-to-pdf/_index.md b/cells/dutch/net/conversion-to-pdf/_index.md index 997cf16755..3755ab86a1 100644 --- a/cells/dutch/net/conversion-to-pdf/_index.md +++ b/cells/dutch/net/conversion-to-pdf/_index.md @@ -34,6 +34,8 @@ Maar wacht, er is meer! Wat als je grafieken van je Excel-sheets naar PDF wilt c Converteer Excel-spreadsheets eenvoudig naar PDF met Aspose.Cells voor .NET! Volg onze stapsgewijze handleiding voor een naadloze ervaring. ### [Grafiek converteren naar PDF in .NET](./convert-chart-to-pdf/) Leer hoe je Excel-grafieken naar PDF converteert in .NET met Aspose.Cells met deze stapsgewijze handleiding! Perfect voor programmeurs van alle niveaus. +### [Werkboek opslaan als pdf met Aspose.Cells – Complete stapsgewijze handleiding](./save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/) +Sla een werkmap op als PDF met Aspose.Cells via een volledige stap‑voor‑stap handleiding. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/dutch/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md b/cells/dutch/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md new file mode 100644 index 0000000000..4ffbd99158 --- /dev/null +++ b/cells/dutch/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md @@ -0,0 +1,248 @@ +--- +category: general +date: 2026-03-30 +description: Leer hoe je een werkmap opslaat als pdf met Aspose.Cells. Deze tutorial + behandelt ook het exporteren van een werkblad naar pdf, hoe je Excel exporteert + naar pdf en een pdf maakt van een werkblad. +draft: false +keywords: +- save workbook as pdf +- export worksheet to pdf +- how to export excel to pdf +- save excel as pdf +- create pdf from worksheet +language: nl +og_description: Sla werkmap eenvoudig op als pdf. Deze gids laat zien hoe je een werkblad + naar pdf exporteert, hoe je Excel naar pdf exporteert en hoe je een pdf maakt van + een werkblad met C#. +og_title: Werkmap opslaan als PDF met Aspose.Cells – Complete gids +tags: +- Aspose.Cells +- C# +- PDF generation +title: Werkmap opslaan als pdf met Aspose.Cells – Complete stapsgewijze handleiding +url: /nl/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Werkboek opslaan als pdf – Complete stapsgewijze handleiding + +Heb je ooit moeten **werkboek opslaan als pdf** maar wist je niet welke bibliotheek je cijfers ongewijzigd houdt? Je bent niet de enige. In veel projecten moeten we Excel‑gegevens omzetten naar een nette PDF, en het op de juiste manier doen bespaart uren debuggen. + +In deze tutorial lopen we stap voor stap door de exacte code die je nodig hebt om **werkboek opslaan als pdf** met Aspose.Cells, en laten we onderweg ook zien hoe je **worksheet exporteren naar pdf** kunt doen, beantwoorden we *hoe excel exporteren naar pdf* vragen, en demonstreren we een nette manier om **pdf maken van worksheet** met aangepaste precisie‑instellingen. + +Aan het einde van de gids heb je een kant‑klaar C# console‑applicatie die een PDF produceert met alleen de significante cijfers die je nodig hebt. Geen extra poespas, gewoon een solide, productie‑klare oplossing. + +--- + +## Wat je zult leren + +- Hoe je een nieuw `Workbook` instelt en de eerste worksheet target. +- De exacte methode om **werkboek opslaan als pdf** te doen terwijl je numerieke precisie behoudt. +- Waarom de `SignificantDigits`‑eigenschap belangrijk is wanneer je **worksheet exporteren naar pdf**. +- Veelvoorkomende valkuilen bij **hoe excel exporteren naar pdf** en hoe je ze kunt vermijden. +- Snelle manieren om **excel opslaan als pdf** met verschillende pagina‑opties, en hoe je **pdf maken van worksheet** programmatically kunt doen. + +### Vereisten + +- .NET 6.0 of later (de code werkt ook met .NET Framework 4.5+). +- Een geldige Aspose.Cells‑licentie (of een gratis tijdelijke licentie voor testdoeleinden). +- Visual Studio 2022 of een andere C#‑compatibele IDE. + +Als je deze basis hebt, laten we dan beginnen. + +--- + +## Stap 1 – Installeer Aspose.Cells en initialiseert het Workbook + +Allereerst: je hebt het Aspose.Cells NuGet‑pakket nodig. Open een terminal in je projectmap en voer uit: + +```bash +dotnet add package Aspose.Cells +``` + +Zodra het pakket geïnstalleerd is, maak je een nieuw `Workbook`‑object aan. Dit is het object dat je uiteindelijk **werkboek opslaan als pdf**. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialise a fresh workbook – think of it as a blank Excel file. + Workbook workbook = new Workbook(); + + // Grab the first worksheet (index 0). This is where we’ll put our data. + Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Waarom deze stap?* +Het aanmaken van het workbook geeft je een schoon canvas, en het selecteren van de eerste worksheet zorgt ervoor dat je werkt met een bekende locatie. Het overslaan hiervan kan leiden tot *null reference*‑fouten wanneer je later probeert **worksheet exporteren naar pdf**. + +--- + +## Stap 2 – Hoge‑precisie‑gegevens invoegen + +Nu voegen we een getal in dat meer decimalen heeft dan we uiteindelijk in de PDF willen tonen. Dit laat zien hoe de `SignificantDigits`‑instelling de output bijsnijdt. + +```csharp + // Place a high‑precision number in cell A1. + worksheet.Cells["A1"].PutValue(1234.56789); +``` + +Als je nu het programma draait en simpelweg `workbook.Save("output.pdf")` aanroept, zal de PDF de volledige `1234.56789` tonen. Dat is in sommige gevallen prima, maar vaak moet je afronden op een specifiek aantal significante cijfers – vooral bij financiële rapporten. + +--- + +## Stap 3 – PDF‑opslaan‑opties configureren + +Aspose.Cells geeft je fijne controle via `PdfSaveOptions`. De eigenschap die we nodig hebben is `SignificantDigits`. Deze op `4` zetten vertelt de engine om alleen vier significante cijfers te behouden wanneer hij **werkboek opslaan als pdf**. + +```csharp + // Configure PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 // This trims the number to 1235 in the PDF. + }; +``` + +*Waarom `SignificantDigits` gebruiken?* +Wanneer je **pdf maken van worksheet** doet, moet je vaak voldoen aan regelgeving voor afronding. Deze optie voert de afronding automatisch uit, zodat je elke cel niet handmatig hoeft te formatteren. + +--- + +## Stap 4 – Worksheet exporteren naar PDF met de opties + +Hier is het moment van de waarheid: we **werkboek opslaan als pdf** met de opties die we zojuist hebben gedefinieerd. + +```csharp + // Save the workbook as a PDF using the configured options. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + } +} +``` + +Het uitvoeren van het programma genereert een bestand genaamd `SignificantDigits.pdf` in de output‑map van je project. Open het en je ziet `1235` in cel A1 – het getal is afgerond op vier significante cijfers. + +*Belangrijk punt:* De `Save`‑methode neemt zowel het bestandspad als de `PdfSaveOptions`. Als je de opties weglaten, val je terug op het standaardgedrag, dat mogelijk niet aan je precisie‑eisen voldoet. + +--- + +## Stap 5 – Controleer de output en los veelvoorkomende problemen op + +### Verwacht resultaat + +- Een één‑pagina‑PDF met de naam `SignificantDigits.pdf`. +- Cel A1 toont `1235` (vier significante cijfers). +- Geen extra worksheets of verborgen inhoud verschijnen. + +### Veelgestelde vragen + +| Vraag | Antwoord | +|----------|--------| +| **Wat als ik meer dan één worksheet nodig heb?** | Loop door `workbook.Worksheets` en pas dezelfde `PdfSaveOptions` toe wanneer je elk blad afzonderlijk opslaat, of zet `OnePagePerSheet = true` in de opties. | +| **Kan ik het oorspronkelijke getalformaat behouden?** | Ja – zet `PdfSaveOptions.AllColumnsInOnePage = true` en laat de opmaakregels van Excel het regelen, maar onthoud dat `SignificantDigits` nog steeds de numerieke precisie zal overschrijven. | +| **Werkt dit met .xlsx‑bestanden die al bestaan?** | Absoluut. Vervang `new Workbook()` door `new Workbook("input.xlsx")` en de rest van de code blijft ongewijzigd. | +| **Wat als de PDF leeg is?** | Controleer of het workbook daadwerkelijk data bevat en of je naar een schrijfbare map opslaat. Zorg er ook voor dat de Aspose.Cells‑licentie correct is toegepast; een niet‑gelicentieerde trial kan de output beperken. | + +### Pro‑tip + +Als je **excel opslaan als pdf** wilt met een specifieke paginarichting, zet dan `pdfSaveOptions.PageSetup.Orientation = PageOrientation.Landscape;` vóór het aanroepen van `Save`. Deze kleine aanpassing bespaart je vaak het handmatig aanpassen van de PDF achteraf. + +--- + +## Variaties: Meerdere sheets exporteren of aangepaste pagina‑instellingen + +### Alle sheets in één keer exporteren + +```csharp +PdfSaveOptions allSheetsOptions = new PdfSaveOptions +{ + SignificantDigits = 4, + OnePagePerSheet = true // Each worksheet gets its own page. +}; + +workbook.Save("AllSheets.pdf", allSheetsOptions); +``` + +### Eén sheet als PDF exporteren + +Wil je alleen **worksheet exporteren naar pdf** voor een specifiek blad, gebruik dan de `Worksheet`‑methode `ToPdf`: + +```csharp +Worksheet sheet = workbook.Worksheets["Sheet2"]; +sheet.ToPdf("Sheet2.pdf", pdfSaveOptions); +``` + +### Paginaranden aanpassen + +```csharp +pdfSaveOptions.PageSetup.TopMargin = 20; +pdfSaveOptions.PageSetup.BottomMargin = 20; +``` + +Met deze tweaks kun je het einddocument fijn afstemmen zonder nabewerking. + +--- + +## Volledig werkend voorbeeld + +Hieronder vind je het complete, kant‑klaar programma dat alles bevat wat we hebben besproken. Sla het op als `Program.cs` en voer `dotnet run` uit. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and select the first worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Insert a high‑precision number. + worksheet.Cells["A1"].PutValue(1234.56789); + + // 3️⃣ Set PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 + }; + + // 4️⃣ Save the workbook as PDF. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + + // Optional: Export another sheet with custom settings. + // Worksheet sheet2 = workbook.Worksheets.Add("Report"); + // sheet2.Cells["B2"].PutValue(9876.54321); + // sheet2.ToPdf("Report.pdf", pdfSaveOptions); + } +} +``` + +**Resultaat:** Open `SignificantDigits.pdf` – je ziet de afgeronde waarde `1235`. Het bestand is klein, en de lay‑out komt overeen met het oorspronkelijke Excel‑blad. + +--- + +## Conclusie + +We hebben je net laten zien hoe je **werkboek opslaan als pdf** kunt doen met Aspose.Cells, van basis‑setup tot geavanceerde opties zoals **worksheet exporteren naar pdf**, **hoe excel exporteren naar pdf**, en **pdf maken van worksheet** met precieze numerieke controle. + +De aanpak is eenvoudig, vereist slechts een paar regels C#, en werkt op alle .NET‑versies. Als volgende stap kun je headers/footers toevoegen, afbeeldingen insluiten, of PDFs genereren vanuit sjablonen – elk bouwt voort op de basis die je nu hebt. + +Heb je een eigen twist die je wilt proberen? Misschien wil je de PDF met een wachtwoord beveiligen of meerdere PDFs samenvoegen. Dat zijn logische uitbreidingen, en de Aspose.Cells‑API heeft je gedekt. Duik erin, experimenteer, en laat de bibliotheek het zware werk doen. + +--- + +![screenshot van werkboek opslaan als pdf](/images/save-workbook-as-pdf.png){alt="voorbeeld van werkboek opslaan als pdf met het gegenereerde PDF‑bestand"} + +*Veel plezier met coderen! Als je ergens vastloopt, laat dan een reactie achter en we lossen het samen op.* + +{{< /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/dutch/net/converting-excel-files-to-other-formats/_index.md b/cells/dutch/net/converting-excel-files-to-other-formats/_index.md index 55dd808b28..ed010f681e 100644 --- a/cells/dutch/net/converting-excel-files-to-other-formats/_index.md +++ b/cells/dutch/net/converting-excel-files-to-other-formats/_index.md @@ -56,6 +56,8 @@ Leer hoe u Excel-bestanden naar PDF/A-1a kunt converteren voor archivering met A Leer hoe je JSON programmatisch naar CSV converteert in .NET met Aspose.Cells. Volg onze stapsgewijze handleiding voor een naadloze datatransformatie. ### [Excel-bestand programmatisch naar PPTX converteren in .NET](./converting-excel-file-to-pptx/) Leer hoe u met Aspose.Cells voor .NET programmatisch een Excel-bestand naar een PowerPoint-presentatie (PPTX) kunt converteren met behulp van deze stapsgewijze handleiding. +### [PowerPoint maken vanuit Excel – Stapsgewijze C#-handleiding](./create-powerpoint-from-excel-step-by-step-c-guide/) +Leer hoe u met Aspose.Cells voor .NET een PowerPoint-presentatie maakt vanuit een Excel-werkmap met C#. ### [HTML CrossType specificeren in uitvoer-HTML programmatisch in .NET](./specifying-html-crosstype-in-output-html/) Leer hoe u HTML CrossType specificeert in Aspose.Cells voor .NET. Volg onze stapsgewijze tutorial om Excel-bestanden nauwkeurig naar HTML te converteren. ### [Getallenspreadsheets programmatisch lezen in .NET](./reading-numbers-spreadsheet/) diff --git a/cells/dutch/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md b/cells/dutch/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md new file mode 100644 index 0000000000..25c09552c6 --- /dev/null +++ b/cells/dutch/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md @@ -0,0 +1,239 @@ +--- +category: general +date: 2026-03-30 +description: Maak snel een PowerPoint van Excel met Aspose.Cells en Aspose.Slides. + Leer hoe je een werkblad als afbeelding exporteert en de presentatie opslaat als + PPTX in C#. +draft: false +keywords: +- create powerpoint from excel +- convert excel to powerpoint +- export worksheet as image +- save presentation as pptx +- export excel chart as picture +language: nl +og_description: Maak PowerPoint van Excel in C# met Aspose. Exporteer werkblad als + afbeelding, houd vormen bewerkbaar en sla het resultaat op als PPTX. +og_title: PowerPoint maken vanuit Excel – Complete C#-tutorial +tags: +- Aspose +- C# +- Office Automation +title: PowerPoint maken vanuit Excel – Stapsgewijze C#‑gids +url: /nl/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PowerPoint maken vanuit Excel – Complete C# Tutorial + +Heb je ooit moeten **PowerPoint maken vanuit Excel** maar wist je niet welke bibliotheek je grafieken bewerkbaar kon houden? Je bent niet de enige. In veel rapportagescenario's wil je een spreadsheet omzetten naar een presentatie zonder de mogelijkheid om later tekstvakken aan te passen te verliezen. Deze gids laat je precies zien hoe je **Excel naar PowerPoint** converteert met Aspose.Cells en Aspose.Slides, en behandelt ook hoe je **werkblad exporteert als afbeelding** en uiteindelijk **presentatie opslaat als PPTX**. + +We lopen elke regel code stap voor stap door, leggen uit *waarom* elke instelling belangrijk is, en bespreken zelfs wat te doen als je werkmap complexe grafieken bevat die je liever als afbeelding exporteert. Aan het einde heb je een kant‑klaar C# console‑applicatie die `ShapesDemo.xlsx` neemt en `Result.pptx` genereert – allemaal met bewerkbare tekstvakken en scherpe afbeeldingen. + +## Wat je nodig hebt + +- .NET 6.0 of hoger (de API werkt ook met .NET Framework, maar .NET 6 is de optimale keuze). +- **Aspose.Cells** en **Aspose.Slides** NuGet‑pakketten (gratis proeflicenties werken voor testen). +- Een basiskennis van C#‑syntaxis – als je een `Console.WriteLine` kunt schrijven, ben je klaar om te beginnen. + +Geen extra COM‑interop, geen Office geïnstalleerd op de server, en geen handmatig kopiëren‑plakken van afbeeldingen. Alles wordt programmatisch afgehandeld. + +--- + +## PowerPoint maken vanuit Excel – Werkmap laden en exportopties instellen + +Het eerste wat we doen is het Excel‑bestand openen en Aspose.Cells vertellen hoe we het blad willen weergeven. Het `ImageOrPrintOptions`‑object is waar de magie gebeurt: we schakelen `ExportShapes` en `ExportEditableTextBoxes` in zodat alle vormen (inclusief grafieken) onderdeel worden van de dia **en** bewerkbaar blijven na de conversie. + +```csharp +using Aspose.Cells; +using Aspose.Slides; + +// 1️⃣ Load the Excel workbook +string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; +Workbook workbook = new Workbook(excelPath); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first sheet + +// 2️⃣ Configure image export – keep shapes editable +ImageOrPrintOptions imageOptions = new ImageOrPrintOptions +{ + OnePagePerSheet = true, // Export the whole sheet as one slide + ExportShapes = true, // Include shapes (charts, drawings) + ExportEditableTextBoxes = true // Make text boxes editable in PPTX +}; +``` + +**Waarom deze vlaggen?** +- `OnePagePerSheet` voorkomt dat het blad over meerdere dia's wordt verdeeld – je krijgt één enkele afbeelding op volledige grootte. +- `ExportShapes` vertelt Aspose.Cells om grafieken *en* vectorvormen te rasteren, waardoor hun uiterlijk behouden blijft. +- `ExportEditableTextBoxes` is de geheime saus die je in staat stelt een tekstvak in PowerPoint dubbel te klikken en de tekst te bewerken zonder Excel opnieuw te openen. + +> **Pro tip:** Als je alleen een statische afbeelding van een grafiek nodig hebt, stel dan `ExportShapes = false` in en gebruik later de `ExportExcelChartAsPicture`‑methode (zie de laatste sectie). + +## Excel naar PowerPoint converteren – Afbeelding genereren van werkblad + +Met de opties klaar, zetten we nu het werkblad om in een `System.Drawing.Image`. De `WorksheetToImageConverter` doet het zware werk en past de instellingen toe die we zojuist hebben gedefinieerd. + +```csharp +// 3️⃣ Convert the worksheet to an image using the options above +WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); +System.Drawing.Image sheetImage = converter.ConvertToImage(0, imageOptions); +``` + +Het argument `0` geeft de eerste pagina aan (we hebben er maar één vanwege `OnePagePerSheet`). De resulterende `sheetImage` behoudt de originele DPI, zodat je dia niet gepixeld uitziet, zelfs niet op hoge‑resolutie schermen. + +## Presentatie opslaan als PPTX – Afbeelding invoegen in een dia + +Nu maken we een nieuw PowerPoint‑bestand, voegen een dia toe en plaatsen de bitmap erop. Aspose.Slides behandelt de afbeelding als een *picture frame*‑vorm, die je later kunt schalen of verplaatsen zoals elk ander native PowerPoint‑object. + +```csharp +// 4️⃣ Create a new PowerPoint presentation +Presentation presentation = new Presentation(); +ISlide slide = presentation.Slides[0]; // The default blank slide + +// Add the Excel‑derived image as a picture frame +slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, // Simple rectangle container + 0, 0, // Top‑left corner (0,0) + sheetImage.Width, // Width of the picture + sheetImage.Height, // Height of the picture + sheetImage); // The bitmap we generated +``` + +> **Wat als de afbeelding groter is dan de dia‑grootte?** +> PowerPoint zal automatisch alles afsnijden dat de dia‑afmetingen overschrijdt. Een snelle oplossing is de afbeelding te schalen voordat je deze invoegt: + +```csharp +float scale = Math.Min(presentation.SlideSize.Size.Width / (float)sheetImage.Width, + presentation.SlideSize.Size.Height / (float)sheetImage.Height); +int newWidth = (int)(sheetImage.Width * scale); +int newHeight = (int)(sheetImage.Height * scale); +``` + +Je kunt vervolgens `newWidth` en `newHeight` doorgeven aan `AddPictureFrame`. + +## Werkblad exporteren als afbeelding – PPTX‑bestand opslaan + +Tot slot slaan we de presentatie op schijf op. De `SaveFormat.Pptx`‑vlag garandeert het moderne OpenXML‑formaat, dat werkt in alle recente versies van PowerPoint. + +```csharp +// 5️⃣ Save the presentation as a PPTX file +string pptxPath = "YOUR_DIRECTORY/Result.pptx"; +presentation.Save(pptxPath, SaveFormat.Pptx); +``` + +Wanneer je `Result.pptx` opent zie je één dia die er precies uitziet als je Excel‑blad, maar je kunt nog steeds op elk tekstvak klikken en de inhoud direct in PowerPoint bewerken. + +## Excel‑grafiek exporteren als afbeelding – Wanneer rasterafbeeldingen de voorkeur hebben + +Soms heb je geen bewerkbare vormen nodig; een PNG van hoge kwaliteit van een grafiek volstaat. Aspose.Cells kan een specifieke grafiek exporteren naar een afbeelding zonder het hele blad te converteren: + +```csharp +// Example: Export the first chart on the sheet as a PNG +int chartIndex = 0; // Adjust if you have multiple charts +Chart chart = worksheet.Charts[chartIndex]; +ImageOrPrintOptions chartOptions = new ImageOrPrintOptions +{ + ImageFormat = ImageFormat.Png, + OnePagePerSheet = false +}; +chart.ToImage("chart.png", chartOptions); +``` + +Je kunt vervolgens `chart.png` in een dia insluiten op dezelfde manier als we `sheetImage` hebben toegevoegd. Deze aanpak verkleint de PPTX‑bestandsgrootte en is handig wanneer de omringende gegevens niet op de dia nodig zijn. + +## Veelvoorkomende valkuilen & hoe ze te vermijden + +| Probleem | Waarom het gebeurt | Oplossing | +|----------|--------------------|-----------| +| **Tekst ziet er wazig uit** | Exporteren met lage DPI (standaard 96). | Stel `imageOptions.Dpi = 300;` in vóór de conversie. | +| **Vormen verdwijnen** | `ExportShapes` staat op `false`. | Zorg dat `ExportShapes = true` is wanneer je bewerkbare grafische elementen nodig hebt. | +| **Dia‑grootte mismatch** | Afbeelding groter dan de dia‑afmetingen. | Schaal de afbeelding (zie code‑fragment) of wijzig de dia‑grootte via `presentation.SlideSize`. | +| **Licentie‑exception** | Gebruik van trial‑versie zonder juiste activering. | Roep `License license = new License(); license.SetLicense("Aspose.Total.lic");` vroeg in `Main` aan. | + +## Volledig werkend voorbeeld (klaar om te kopiëren‑plakken) + +Hieronder staat het volledige programma, klaar om in een nieuw console‑project te plakken. Vervang `YOUR_DIRECTORY` door de map die je Excel‑bestand bevat. + +```csharp +using System; +using Aspose.Cells; +using Aspose.Slides; +using System.Drawing; + +namespace ExcelToPowerPointDemo +{ + class Program + { + static void Main(string[] args) + { + // ----------------------------------------------------------------- + // 1️⃣ Load the Excel workbook + // ----------------------------------------------------------------- + string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; + Workbook workbook = new Workbook(excelPath); + Worksheet worksheet = workbook.Worksheets[0]; + + // ----------------------------------------------------------------- + // 2️⃣ Set up export options – keep shapes editable + // ----------------------------------------------------------------- + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + OnePagePerSheet = true, + ExportShapes = true, + ExportEditableTextBoxes = true, + Dpi = 300 // High‑resolution output + }; + + // ----------------------------------------------------------------- + // 3️⃣ Convert worksheet to an image + // ----------------------------------------------------------------- + WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); + Image sheetImage = converter.ConvertToImage(0, imageOptions); + + // ----------------------------------------------------------------- + // 4️⃣ Create PowerPoint and add the image as a slide + // ----------------------------------------------------------------- + Presentation presentation = new Presentation(); + ISlide slide = presentation.Slides[0]; + slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, + 0, 0, + sheetImage.Width, + sheetImage.Height, + sheetImage); + + // ----------------------------------------------------------------- + // 5️⃣ Save the PPTX file + // ----------------------------------------------------------------- + string pptxPath = "YOUR_DIRECTORY/Result.pptx"; + presentation.Save(pptxPath, SaveFormat.Pptx); + + Console.WriteLine("✅ PowerPoint created successfully at: " + pptxPath); + } + } +} +``` + +**Verwachte output:** +Het uitvoeren van het programma print `✅ PowerPoint created successfully at: YOUR_DIRECTORY/Result.pptx`. Het openen van de PPTX toont één dia die het originele Excel‑blad weerspiegelt, met bewerkbare tekstvakken. + +## Samenvatting & volgende stappen + +Je weet nu hoe je **PowerPoint maakt vanuit Excel** met de krachtige API's van Aspose, hoe je **werkblad exporteert als afbeelding**, en hoe je **presentatie opslaat als PPTX** terwijl je bewerkbaarheid behoudt. Hetzelfde patroon werkt voor werkmappen met meerdere bladen – loop gewoon door `workbook.Worksheets` en voeg voor elk een nieuwe dia toe. + +**Wat kun je hierna verkennen?** + +- **Batch‑conversie:** Loop over een map met Excel‑bestanden en genereer per bestand een dia‑deck. +- **Dynamische lay-outs:** Gebruik `slide.LayoutSlide` om vooraf ontworpen PowerPoint‑templates toe te passen. +- **Alleen‑grafiek exporteren:** Combineer de “Export Excel chart as picture”‑code met dia‑plaatsaanduidingen voor een slanker deck. +- **Geavanceerde styling:** Pas aangepaste dia‑achtergronden, overgangen of animaties toe via Aspose.Slides. + +Voel je vrij om te experimenteren – wijzig de DPI, vervang `ShapeType.Ellipse` door een cirkelvormig picture frame, of voeg zelfs meerdere afbeeldingen per dia in. De mogelijkheden zijn eindeloos wanneer je programmatisch de controle hebt over + +{{< /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/dutch/net/document-properties/_index.md b/cells/dutch/net/document-properties/_index.md index b79f446036..9444cac7f0 100644 --- a/cells/dutch/net/document-properties/_index.md +++ b/cells/dutch/net/document-properties/_index.md @@ -35,6 +35,8 @@ Leer hoe u toegang krijgt tot documenteigenschappen in Excel met Aspose.Cells vo Leer hoe u toegang krijgt tot documenteigenschappen in Excel met Aspose.Cells voor .NET met onze stapsgewijze handleiding. Beheer uw spreadsheets efficiënt. ### [Documenteigenschappen toevoegen in .NET](./adding-document-properties/) Leer hoe u documenteigenschappen toevoegt in Excel met Aspose.Cells voor .NET met deze gedetailleerde stapsgewijze handleiding. +### [Hoe XLSB op te slaan met aangepaste eigenschappen in C# – Stapsgewijze handleiding](./how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/) +Leer hoe u een XLSB-bestand opslaat met aangepaste documenteigenschappen in C# met onze stap‑voor‑stap handleiding. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/dutch/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md b/cells/dutch/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md new file mode 100644 index 0000000000..cbe0399ac6 --- /dev/null +++ b/cells/dutch/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md @@ -0,0 +1,232 @@ +--- +category: general +date: 2026-03-30 +description: Leer hoe je een XLSB-bestand opslaat in C# terwijl je een aangepaste + eigenschap toevoegt, deze terugleest en het opslaan van een werkmap als XLSB met + Aspose.Cells onder de knie krijgt. Volledige code inbegrepen. +draft: false +keywords: +- how to save xlsb +- add custom property +- how to add property +- how to read property +- save workbook as xlsb +language: nl +og_description: Hoe sla je XLSB op in C#? Deze tutorial laat zien hoe je een aangepaste + eigenschap toevoegt, deze weer uitleest en de werkmap opslaat als XLSB met Aspose.Cells. +og_title: Hoe XLSB op te slaan met aangepaste eigenschappen in C# – Complete gids +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Hoe XLSB met aangepaste eigenschappen opslaan in C# – Stapsgewijze gids +url: /nl/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hoe XLSB op te slaan met aangepaste eigenschappen in C# – Stapsgewijze handleiding + +Heb je je ooit afgevraagd **hoe je XLSB kunt opslaan** terwijl je extra metadata aan een werkblad toevoegt? Je bent niet de enige. In veel bedrijfsomgevingen heb je een binair Excel‑bestand nodig dat nog steeds je eigen sleutel/waarde‑paren bevat—denk aan een contract‑ID, een verwerkings‑vlag, of een versie‑tag. + +Het goede nieuws is dat Aspose.Cells dit kinderspel maakt. In deze handleiding zie je precies hoe je een aangepaste eigenschap toevoegt, deze opslaat en vervolgens weer uitleest, allemaal terwijl je **het werkboek opslaat als XLSB**. Geen vage verwijzingen, gewoon een compleet, uitvoerbaar voorbeeld dat je vandaag nog in je project kunt gebruiken. + +## Wat je zult meenemen + +- Een nieuw `.xlsb`‑bestand, vanaf nul gemaakt. +- De mogelijkheid om **een aangepaste eigenschap** aan een werkblad toe te voegen. +- Code die laat zien **hoe je een eigenschap uitleest** nadat het bestand opnieuw is geladen. +- Tips over valkuilen die je kunt tegenkomen wanneer je **een werkboek opslaat als XLSB**. + +> **Voorvereisten:** .NET 6+ (of .NET Framework 4.6+), Visual Studio (of een andere C#‑IDE), en de Aspose.Cells voor .NET‑bibliotheek geïnstalleerd via NuGet. Niets anders. + +--- + +## Stap 1: Het project opzetten en een nieuw werkboek maken + +Allereerst—laten we een schoon werkboek‑object op tafel leggen. + +```csharp +using Aspose.Cells; +using System; + +// Initialize a new workbook; this will be an in‑memory Excel file. +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0) – it’s created automatically. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Waarom dit belangrijk is:* `Workbook` is het toegangspunt voor elke bewerking in Aspose.Cells. Door te beginnen met een gloednieuwe instantie vermijd je verborgen staat die later je aangepaste metadata kan corrumperen. + +--- + +## Stap 2: **Aangepaste eigenschap toevoegen** aan het werkblad + +Nu voegen we een sleutel/waarde‑paar toe dat alleen op dit blad bestaat. + +```csharp +// Add a user‑defined property called "MyProperty" with the value "CustomValue". +worksheet.CustomProperties.Add("MyProperty", "CustomValue"); +``` + +> **Pro tip:** Eigenschapsnamen zijn hoofdlettergevoelig. Als je later probeert `"myproperty"` op te halen, krijg je een `KeyNotFoundException`. Houd vanaf het begin een naamgevingsconventie aan—camelCase of PascalCase. + +--- + +## Stap 3: **Werkboek opslaan als XLSB** – Eigenschap behouden + +De magie gebeurt wanneer je het werkboek naar het binaire XLSB‑formaat schrijft. + +```csharp +// Define the output path. Adjust the folder to something writable on your machine. +string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + +// Save the workbook; the custom property travels with the file. +workbook.Save(outputPath, SaveFormat.Xlsb); +``` + +*Wat je eigenlijk doet:* De `SaveFormat.Xlsb`‑enum vertelt Aspose.Cells om een binair Excel‑bestand te genereren (sneller te openen, kleiner op schijf). Alle aangepaste eigenschappen op werkbladniveau worden automatisch geserialiseerd—geen extra stappen nodig. + +--- + +## Stap 4: Het bestand opnieuw laden en **eigenschap uitlezen** + +Laten we bewijzen dat de eigenschap de ronde‑trip heeft overleefd. + +```csharp +// Load the just‑saved XLSB file back into memory. +Workbook reloadedWorkbook = new Workbook(outputPath); + +// Access the same worksheet (index 0) and fetch the property value. +string customValue = reloadedWorkbook.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); +``` + +Als alles soepel verliep, bevat `customValue` nu `"CustomValue"`. + +--- + +## Stap 5: Resultaat verifiëren – Snelle console‑output + +Een kleine sanity‑check helpt tijdens de ontwikkeling. + +```csharp +Console.WriteLine($"Custom property value: {customValue}"); +``` + +Het uitvoeren van het programma moet afdrukken: + +``` +Custom property value: CustomValue +``` + +Het zien van die regel betekent dat je met succes **hoe je XLSB opslaat**, **een aangepaste eigenschap toevoegt**, en **hoe je een eigenschap uitleest**—alles in één nette stroom—hebt beheerst. + +--- + +## Volledig werkend voorbeeld (klaar om te kopiëren en plakken) + +Hieronder staat het volledige programma. Plak het in een nieuwe Console‑app, druk op **F5**, en zie de console de eigenschapswaarde bevestigen. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // 1️⃣ Create a new workbook and get its first sheet + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // 2️⃣ Add a custom property (key/value) to the sheet + // ------------------------------------------------- + worksheet.CustomProperties.Add("MyProperty", "CustomValue"); + + // ------------------------------------------------- + // 3️⃣ Save the workbook as XLSB – the property is kept + // ------------------------------------------------- + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(outputPath, SaveFormat.Xlsb); + + // ------------------------------------------------- + // 4️⃣ Reload the saved file to demonstrate persistence + // ------------------------------------------------- + Workbook reloaded = new Workbook(outputPath); + + // ------------------------------------------------- + // 5️⃣ Retrieve the custom property's value + // ------------------------------------------------- + string customValue = reloaded.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); + + // ------------------------------------------------- + // 6️⃣ Display the retrieved value (optional) + // ------------------------------------------------- + Console.WriteLine($"Custom property value: {customValue}"); + } +} +``` + +> **Onthoud:** Verander `outputPath` naar een map waar je schrijfrechten voor hebt. Als je op Linux/macOS werkt, gebruik dan een pad zoals `"/tmp/WithCustomProp.xlsb"`. + +--- + +## Veelgestelde vragen & randgevallen + +### Wat als de eigenschap al bestaat? +Het aanroepen van `Add` met een bestaande sleutel veroorzaakt een `ArgumentException`. Gebruik `ContainsKey` of wikkel de oproep in een `try/catch` als je het niet zeker weet. + +```csharp +if (!worksheet.CustomProperties.ContainsKey("MyProperty")) +{ + worksheet.CustomProperties.Add("MyProperty", "AnotherValue"); +} +``` + +### Kan ik niet‑string waarden opslaan? +Absoluut. De `Value`‑eigenschap accepteert elk `object`. Voor getallen, datums of booleans geef je gewoon het juiste type door—Aspose.Cells regelt de conversie bij het uitlezen. + +### Blijft de eigenschap behouden bij conversie naar XLSX? +Ja. Aangepaste eigenschappen maken deel uit van de XML‑representatie van het werkblad, dus ze blijven behouden in XLSX-, XLS- en XLSB‑formaten. + +### Hoe **eigenschap toevoegen** aan meerdere bladen? +Loop door de `Worksheets`‑collectie en pas dezelfde `CustomProperties.Add`‑aanroep toe op elk blad dat je nodig hebt. + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + ws.CustomProperties.Add("ExportedBy", "MyApp"); +} +``` + +### Performance‑tip bij **werkboek opslaan als XLSB** in bulk +Als je honderden bestanden genereert, hergebruik dan dezelfde `Workbook`‑instantie en roep `Clear` aan na elke opslaan om geheugen vrij te maken. Stel bovendien `Workbook.Settings.CalculateFormulaOnOpen = false` in als je formules niet bij het laden wilt laten evalueren. + +--- + +## Conclusie + +Je weet nu **hoe je XLSB opslaat** in C# terwijl je een aangepaste eigenschap inbedt en later weer ophaalt met Aspose.Cells. De volledige oplossing—het maken van het werkboek, een eigenschap toevoegen, deze behouden met **werkboek opslaan als XLSB**, opnieuw laden en de waarde uitlezen—past in minder dan 50 regels code. + +Vanaf hier kun je het volgende verkennen: + +- Meerdere aangepaste eigenschappen per blad toevoegen. +- Complexe objecten opslaan via JSON‑strings. +- Het XLSB‑bestand versleutelen voor extra beveiliging. + +Probeer die ideeën uit, en je wordt al snel de aangewezen persoon voor Excel‑automatisering in je team. Heb je vragen of een lastig scenario? Laat een reactie achter, en happy coding! + +![Hoe XLSB opslaan met aangepaste eigenschap](/images/how-to-save-xlsb.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/dutch/net/excel-copy-worksheet/_index.md b/cells/dutch/net/excel-copy-worksheet/_index.md index b6a7697bdf..0f43a9deaf 100644 --- a/cells/dutch/net/excel-copy-worksheet/_index.md +++ b/cells/dutch/net/excel-copy-worksheet/_index.md @@ -42,6 +42,7 @@ Aspose.Cells voor .NET biedt krachtige functionaliteit voor het bewerken van Exc | [Excel Kopieer Werkblad](./excel-copy-worksheet/) | Leer hoe u een Excel-werkblad kopieert met Aspose.Cells voor .NET met deze eenvoudig te volgen stapsgewijze handleiding. Ideaal voor .NET-ontwikkelaars die Excel-taken willen automatiseren. | | [Excel Werkbladen kopiëren tussen werkmappen](./excel-copy-worksheets-between-workbooks/) | Leer hoe u werkbladen tussen Excel-werkmappen kopieert met Aspose.Cells voor .NET. Een stapsgewijze handleiding met codevoorbeelden om uw spreadsheetbeheer te stroomlijnen. | | [Excel Verplaats Werkblad](./excel-move-worksheet/) | Leer hoe je werkbladen in Excel kunt verplaatsen met Aspose.Cells voor .NET in onze stapsgewijze handleiding. Beheers de kunst van Excel-programmeren. | +| [Hoe werkblad te kopiëren in C# met Aspose.Cells – Complete gids](./how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/) | Leer hoe u een werkblad in C# kopieert met Aspose.Cells via een volledige stap‑voor‑stap gids. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/dutch/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md b/cells/dutch/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md new file mode 100644 index 0000000000..c8372f23f4 --- /dev/null +++ b/cells/dutch/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md @@ -0,0 +1,269 @@ +--- +category: general +date: 2026-03-30 +description: Hoe een werkblad te kopiëren in C# met Aspose.Cells – stapsgewijze handleiding + die het kopiëren van een celbereik, het kopiëren van kolommen tussen bladen, het + kopiëren van een draaitabel in een werkblad en het toevoegen van een nieuw werkblad + behandelt. +draft: false +keywords: +- how to copy worksheet +- copy cell range +- copy columns between sheets +- copy worksheet pivot table +- add new worksheet code +language: nl +og_description: Leer hoe je een werkblad kopieert in C# met Aspose.Cells. Deze gids + toont het kopiëren van een celbereik, het behouden van draaitabellen, het kopiëren + van kolommen tussen bladen en het toevoegen van code voor een nieuw werkblad. +og_title: Hoe een werkblad te kopiëren in C# – Volledige Aspose.Cells‑tutorial +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Hoe een werkblad te kopiëren in C# met Aspose.Cells – Complete gids +url: /nl/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hoe een werkblad te kopiëren in C# met Aspose.Cells – Complete gids + +Heb je je ooit afgevraagd **how to copy worksheet** in C# zonder een enkele draaitabel of formule te verliezen? Je bent niet de enige—veel ontwikkelaars lopen tegen een muur aan wanneer ze een blad moeten dupliceren terwijl ze alle functionaliteit behouden. In deze tutorial lopen we een praktische, end‑to‑end oplossing door die niet alleen de gegevens kopieert maar ook de **copy worksheet pivot table** behoudt, **copy cell range** afhandelt, en de **add new worksheet code** toont die je nodig hebt. + +We behandelen alles van het laden van de bron‑workbook tot het opslaan van het bestemmingsbestand, zodat je kolommen tussen bladen kunt kopiëren, objecten kunt behouden en je code schoon houdt. Geen vage verwijzingen, alleen een compleet, uitvoerbaar voorbeeld dat je vandaag nog in je project kunt plaatsen. + +## Wat deze tutorial behandelt + +- Een bestaand Excel‑bestand laden met Aspose.Cells +- **add new worksheet code** gebruiken om een doelfblad te maken +- Een **copy cell range** definiëren die een draaitabel bevat +- **CopyOptions** instellen om grafieken, formules en draaitabellen intact te houden +- **copy columns between sheets** uitvoeren met rij‑gewijze precisie +- Het resultaat opslaan en verifiëren dat het werkblad correct is gekopieerd + +Aan het einde van deze gids kun je de vraag “how to copy worksheet” vol vertrouwen beantwoorden, of je nu rapporten automatiseert of een spreadsheet‑gedreven UI bouwt. + +## Hoe een werkblad te kopiëren – Overzicht + +Voordat we in de code duiken, schetsen we de high‑level flow. Beschouw het als een recept: + +1. **Load** het bron‑workbook (`Source.xlsx`). +2. **Add** een nieuw werkblad om de kopie in te plaatsen (`add new worksheet code`). +3. **Define** het gebied dat je wilt dupliceren (`copy cell range`). +4. **Configure** kopieeropties zodat de draaitabel overleeft (`copy worksheet pivot table`). +5. **Copy** rijen en kolommen (`copy columns between sheets`). +6. **Save** het nieuwe workbook (`Destination.xlsx`). + +Dat is alles—zes stappen, geen magie. Elke stap wordt hieronder uitgelegd met code‑fragmenten en de reden erachter. + +## Stap 1 – Laad het bron‑workbook + +Allereerst: je hebt een `Workbook`‑instantie nodig die naar het bestand wijst dat je wilt dupliceren. Deze stap is essentieel omdat Aspose.Cells direct met het bestandssysteem werkt, niet met de Office‑UI. + +```csharp +using Aspose.Cells; + +// Path to the original file +string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; +string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + +// Load the workbook – this is the starting point for how to copy worksheet +Workbook workbook = new Workbook(sourcePath); +``` + +*Waarom dit belangrijk is:* Het laden van het bestand creëert een in‑memory representatie van elk blad, elke cel en elk object. Zonder dit is er niets om te kopiëren, en elke poging om later `add new worksheet code` uit te voeren zou mislukken omdat de brongegevens niet aanwezig zijn. + +## Stap 2 – Voeg een nieuw werkblad toe (add new worksheet code) + +Nu hebben we een plek nodig om de gekopieerde gegevens te plakken. Hier komt de **add new worksheet code** van pas. Je kunt het blad elke naam geven die je wilt; hier noemen we het `"Copy"`. + +```csharp +// Grab the first worksheet (the one we want to copy) +Worksheet sourceSheet = workbook.Worksheets[0]; + +// Add a fresh worksheet to receive the copy +Worksheet copySheet = workbook.Worksheets.Add("Copy"); +``` + +*Pro tip:* Als je van plan bent meerdere bladen te kopiëren, roep `Worksheets.Add` aan binnen een lus en geef elk blad een unieke naam. Zo vermijd je naamconflicten en houd je je workbook overzichtelijk. + +## Stap 3 – Definieer het copy cell range + +Een **copy cell range** vertelt Aspose.Cells precies welke rijen en kolommen moeten worden gedupliceerd. In veel real‑world scenario's omvat het bereik een draaitabel, dus moeten we nauwkeurig zijn. + +```csharp +// Define the area that contains the pivot table (A1:G20) +CellArea sourceRange = new CellArea +{ + StartRow = 0, // Row 1 (zero‑based) + StartColumn = 0, // Column A + EndRow = 19, // Row 20 + EndColumn = 6 // Column G +}; + +// Destination range – we start at the same top‑left corner +CellArea destinationRange = new CellArea +{ + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 +}; +``` + +*Waarom we dit nodig hebben:* Door het bereik expliciet op te geven, vermijd je het kopiëren van het hele blad (wat verspilling kan zijn) en garandeer je dat de draaitabel binnen het gekopieerde gebied blijft. Dit is de kern van **how to copy worksheet** wanneer je slechts een deel van het blad nodig hebt. + +## Stap 4 – Stel copy options in (preserve copy worksheet pivot table) + +Aspose.Cells biedt een `CopyOptions`‑object dat bepaalt wat er wordt geplakt. Om de draaitabel, grafieken en formules te behouden, stellen we `PasteType.All` in en schakelen we `PasteSpecial` in. + +```csharp +CopyOptions copyOptions = new CopyOptions +{ + PasteType = PasteType.All, // Copy everything: values, formats, objects + PasteSpecial = true // Enable special paste to retain pivot tables +}; +``` + +*Uitleg:* `PasteType.All` is de meest inclusieve optie, terwijl `PasteSpecial` de engine vertelt complexe objecten—zoals draaitabellen—correct te behandelen. Het overslaan van deze stap is een veelvoorkomende valkuil; het gekopieerde blad zou zijn interactieve functies verliezen. + +## Stap 5 – Kopieer rijen en kolommen (copy columns between sheets) + +Nu komt het zware werk: het daadwerkelijk verplaatsen van de gegevens. We gebruiken `CopyRows` en `CopyColumns` om **copy columns between sheets** af te handelen. Beide uitvoeren zorgt ervoor dat samengevoegde cellen en kolombreedtes behouden blijven. + +```csharp +// Copy rows from the source to the destination sheet +sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + +// Copy columns from the source to the destination sheet +sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); +``` + +*Wat er gebeurt:* `CopyRows` verplaatst de gegevens rij voor rij, terwijl `CopyColumns` hetzelfde kolom voor kolom doet. Beide uitvoeren garandeert dat het volledige rechthoekige blok wordt gedupliceerd, wat essentieel is wanneer je **copy columns between sheets** moet uitvoeren die verschillende kolombreedtes of verborgen kolommen hebben. + +## Stap 6 – Sla het workbook op + +Tot slot schrijf je de wijzigingen terug naar de schijf. Deze stap voltooit het **how to copy worksheet** proces. + +```csharp +// Save the workbook with the newly copied sheet +workbook.Save(destinationPath); +``` + +*Verificatietip:* Open `Destination.xlsx` en controleer of het `"Copy"`‑blad er identiek uitziet als het origineel, de draaitabellen functioneel zijn en de kolombreedtes overeenkomen. Als er iets niet klopt, bekijk dan opnieuw de `CopyOptions`‑instellingen. + +## Randgevallen & Veelvoorkomende variaties + +### Meerdere werkbladen kopiëren + +Als je meerdere bladen moet dupliceren, wikkel je de bovenstaande logica in een `foreach`‑lus: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + Worksheet newWs = workbook.Worksheets.Add(ws.Name + "_Copy"); + // Re‑use sourceRange/destinationRange or calculate per sheet + // Then call CopyRows/CopyColumns as shown earlier +} +``` + +### Formules behouden tussen verschillende workbooks + +Wanneer de bron‑ en bestemmings‑workbooks verschillende benoemde bereiken hebben, stel je `copyOptions` in op `PasteType.Formulas` naast `All`: + +```csharp +copyOptions.PasteType = PasteType.All | PasteType.Formulas; +``` + +### Grote bereiken en prestaties + +Voor enorme datasets (honderdduizenden rijen) kun je overwegen alleen `CopyRows` te gebruiken en `CopyColumns` over te slaan als kolombreedtes niet cruciaal zijn. Dit kan enkele seconden schelen. + +## Volledig werkend voorbeeld + +Hieronder staat het volledige, kant‑klaar programma dat alles omvat wat we hebben besproken. Plak het in een console‑app, pas de bestandspaden aan, en druk op **F5**. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // ---------- Step 1: Load the source workbook ---------- + string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; + string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + Workbook workbook = new Workbook(sourcePath); + + // ---------- Step 2: Add a new worksheet (add new worksheet code) ---------- + Worksheet sourceSheet = workbook.Worksheets[0]; + Worksheet copySheet = workbook.Worksheets.Add("Copy"); + + // ---------- Step 3: Define the copy cell range ---------- + CellArea sourceRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + CellArea destinationRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + + // ---------- Step 4: Set copy options (preserve copy worksheet pivot table) ---------- + CopyOptions copyOptions = new CopyOptions + { + PasteType = PasteType.All, + PasteSpecial = true + }; + + // ---------- Step 5: Copy rows and columns (copy columns between sheets) ---------- + sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + + sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); + + // ---------- Step 6: Save the workbook ---------- + workbook.Save(destinationPath); + } +} +``` + +**Verwacht resultaat:** Het openen van `Destination.xlsx` toont een blad met de naam **Copy** dat een exacte kopie is van het eerste blad van `Source.xlsx`—inclusief eventuele draaitabellen, opmaak en kolombreedtes. Het originele bestand blijft onaangetast. + +## Veelgestelde vragen + +**Q: Werkt dit met .xlsx‑bestanden die zijn gemaakt door Excel 2019?** +A: Absoluut. Aspose.Cells ondersteunt alle moderne Excel‑formaten, dus dezelfde code werkt voor `.xlsx`, `.xlsm` en zelfs oudere `.xls`‑bestanden + +{{< /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/dutch/net/excel-custom-number-date-formatting/_index.md b/cells/dutch/net/excel-custom-number-date-formatting/_index.md index c01ca4d83d..513b59c457 100644 --- a/cells/dutch/net/excel-custom-number-date-formatting/_index.md +++ b/cells/dutch/net/excel-custom-number-date-formatting/_index.md @@ -36,6 +36,10 @@ Deze tutorial leert je hoe je je datasets kunt importeren en tegelijkertijd de i Leer hoe u Excel-celwaarden controleert aan de hand van aangepaste getalnotaties met Aspose.Cells voor .NET met deze stapsgewijze zelfstudie. ### [Formulevelden specificeren bij het importeren van gegevens naar een Excel-blad](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) Leer in deze gedetailleerde tutorial hoe u met Aspose.Cells voor .NET gegevens importeert in Excel-sheets met opgegeven formulevelden. +### [Getal formatteren met scheidingsteken in C# – Complete Aspose.Cells-gids](./format-number-with-separator-in-c-complete-aspose-cells-guid/) +Leer hoe u getallen met duizendtallen scheidingsteken formatteert in C# met Aspose.Cells, stap‑voor‑stap voorbeeld. +### [Datum ISO formatteren vanuit Excel – Complete C#-gids](./format-date-iso-from-excel-complete-c-guide/) +Leer hoe u datums in ISO‑formaat vanuit Excel formatteert met Aspose.Cells voor .NET, stap‑voor‑stap voorbeeld. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/dutch/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md b/cells/dutch/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..ec4fe9b872 --- /dev/null +++ b/cells/dutch/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md @@ -0,0 +1,218 @@ +--- +category: general +date: 2026-03-30 +description: Leer hoe je datum in ISO-formaat kunt formatteren terwijl je Excel-datetime-waarden + leest en datetime-Excel-gegevens extraheert met Aspose.Cells in C#. +draft: false +keywords: +- format date iso +- read excel datetime +- extract datetime excel +- Aspose.Cells date parsing +- Japanese era dates +language: nl +og_description: Format datum ISO van Excel-gegevens met Aspose.Cells. Deze gids laat + zien hoe je Excel-datum/tijd leest, datum/tijd-waarden uit Excel extraheert en ISO-datums + uitvoert. +og_title: ISO-datum formatteren vanuit Excel – Stapsgewijze C#-tutorial +tags: +- C# +- Excel +- DateTime +- Aspose.Cells +title: ISO-datum formatteren vanuit Excel – Complete C#-gids +url: /nl/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# ISO‑datum opmaken vanuit Excel – Complete C#‑gids + +Heb je ooit **format date iso** moeten gebruiken bij het ophalen van datums uit een Excel‑blad? Misschien werk je met Japanse jaartelling, of wil je gewoon een nette `yyyy‑MM‑dd`‑string voor een API‑payload. In deze tutorial zie je precies hoe je **read Excel datetime**‑cellen, **extract datetime Excel**‑waarden kunt lezen en omzetten naar ISO‑8601‑formaat—zonder giswerk. + +We lopen door een real‑world voorbeeld dat Aspose.Cells gebruikt, leggen uit waarom elke regel belangrijk is, en tonen je de uiteindelijke output die je kunt kopiëren‑plakken in je project. Aan het einde kun je eigenzinnige era‑strings zoals “令和3年5月1日” verwerken en een standaard ISO‑datum produceren, klaar voor databases, JSON, of waar je het ook nodig hebt. + +## Vereisten + +- .NET 6.0 of later (de code werkt ook met .NET Framework) +- Aspose.Cells voor .NET (gratis proefversie of gelicentieerde versie) +- Basiskennis van C# en Excel‑concepten +- Visual Studio of een C#‑editor naar keuze + +Er zijn geen extra NuGet‑pakketten nodig naast Aspose.Cells, dus de installatie is vrij eenvoudig. + +--- + +## Stap 1: Maak een Workbook aan en richt je op het eerste werkblad + +Het eerste wat je doet, is een nieuw `Workbook`‑object aanmaken. Dit geeft je een in‑memory‑representatie van een Excel‑bestand, die je vervolgens kunt manipuleren of uit kunt lezen. + +```csharp +using Aspose.Cells; +using System.Globalization; + +// Step 1: Initialize a new workbook and grab the first worksheet +Workbook workbook = new Workbook(); // creates an empty .xlsx +Worksheet worksheet = workbook.Worksheets[0]; // the default sheet is "Sheet1" +``` + +*Waarom dit belangrijk is:* +Het programmatically aanmaken van de workbook voorkomt dat je tijdens het testen met fysieke bestanden moet werken. Het zorgt er ook voor dat de werkblad‑referentie altijd geldig is—geen null‑reference‑verrassingen later wanneer je probeert **read Excel datetime**‑waarden te lezen. + +--- + +## Stap 2: Schrijf een Japanse era‑datumsleutel in een cel + +Ons doel is om het parseren van een niet‑Gregoriaanse datum te demonstreren. We plaatsen de era‑string direct in cel **A1**. + +```csharp +// Step 2: Insert a Japanese era date string into cell A1 +worksheet.Cells["A1"].PutValue("令和3年5月1日"); +``` + +*Pro tip:* Als je gegevens uit een bestaand workbook haalt, zou je de `PutValue`‑aanroep overslaan en gewoon de cel refereren die al de datum bevat. Het belangrijkste is dat de cel een **string** bevat die een datum in de Japanse lunisolaire kalender voorstelt. + +--- + +## Stap 3: Configureer een Culture die de Japanse lunisolaire kalender begrijpt + +.NET’s `CultureInfo`‑klasse laat je specificeren hoe datums geïnterpreteerd moeten worden. Door de standaard Gregoriaanse kalender te vervangen door `JapaneseLunisolarCalendar`, geef je de parser de benodigde context. + +```csharp +// Step 3: Set up a culture using the Japanese lunisolar calendar +CultureInfo japaneseCulture = new CultureInfo("ja-JP"); +japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); +``` + +*Waarom we dit doen:* +Als je “令和3年5月1日” met de standaardcultuur probeert te parseren, zou .NET een `FormatException` gooien. Het vervangen door de lunisolaire kalender vertelt de runtime precies hoe “令和3年” (het 3e jaar van het Reiwa‑era) moet worden gemapt naar het Gregoriaanse jaar 2021. + +--- + +## Stap 4: Parse de celwaarde als een `DateTime` met de geconfigureerde cultuur + +Nu komt het hart van de operatie—het omzetten van die era‑string naar een juist `DateTime`‑object. Aspose.Cells biedt een handige `GetDateTime`‑overload die een `CultureInfo` accepteert. + +```csharp +// Step 4: Retrieve the cell value as a DateTime, respecting the Japanese culture +DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); +``` + +*Wat er onder de motorkap gebeurt:* +`GetDateTime` leest de ruwe string, past de kalenderregels van de opgegeven cultuur toe, en retourneert een `DateTime` die hetzelfde moment in de Gregoriaanse kalender weergeeft. Dit is het moment waarop je **extract datetime Excel**‑gegevens krijgt in een vorm die je in .NET kunt gebruiken. + +--- + +## Stap 5: Geef de geparseerde datum weer in ISO‑8601‑formaat + +Tot slot formatteren we de `DateTime` als een ISO‑string—`yyyy‑MM‑dd`—die universeel wordt geaccepteerd door API’s, databases en front‑end‑frameworks. + +```csharp +// Step 5: Print the date in ISO format (e.g., 2021-05-01) +Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // Output: 2021-05-01 +``` + +*Waarom ISO?* +ISO 8601 elimineert ambiguïteit. “05/01/2021” kan 1 mei of 5 januari betekenen, afhankelijk van de locale. `2021-05-01` is glashelder, daarom **format date iso** we in bijna elk integratiescenario. + +--- + +## Volledig werkend voorbeeld + +Hieronder staat het volledige, kant‑klaar programma. Kopieer het in een console‑app‑project, voeg de Aspose.Cells‑referentie toe, en druk op **F5**. + +```csharp +using Aspose.Cells; +using System; +using System.Globalization; + +class Program +{ + static void Main() + { + // 1️⃣ Create workbook and select the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("令和3年5月1日"); + + // 3️⃣ Set up Japanese lunisolar culture + CultureInfo japaneseCulture = new CultureInfo("ja-JP"); + japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); + + // 4️⃣ Parse the cell value as DateTime using the culture + DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); + + // 5️⃣ Output the date in ISO format + Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // 2021-05-01 + } +} +``` + +**Verwachte output** + +``` +2021-05-01 +``` + +Voer het één keer uit, en je ziet de ISO‑geformatteerde datum op de console afgedrukt. Dat is de volledige pijplijn van **read Excel datetime** naar **format date iso**. + +--- + +## Veelvoorkomende randgevallen afhandelen + +### 1. Cellen met echte Excel‑datumnummers + +Soms slaat Excel datums op als seriële getallen (bijv. `44204`). In dat geval heb je geen cultuur nodig; roep gewoon `GetDateTime()` aan zonder parameters: + +```csharp +DateTime serialDate = worksheet.Cells["B2"].GetDateTime(); // B2 holds a numeric date +Console.WriteLine(serialDate.ToString("yyyy-MM-dd")); +``` + +### 2. Lege of ongeldige cellen + +Als een cel leeg is of een niet‑parseerbare string bevat, zal `GetDateTime` een fout gooien. Plaats de aanroep in een `try/catch` of controleer eerst `IsDateTime`: + +```csharp +if (worksheet.Cells["C3"].Type == CellValueType.IsDateTime) +{ + DateTime safeDate = worksheet.Cells["C3"].GetDateTime(); + Console.WriteLine(safeDate.ToString("yyyy-MM-dd")); +} +else +{ + Console.WriteLine("Cell C3 does not contain a valid date."); +} +``` + +### 3. Verschillende era‑formaten + +Andere Japanse eras (Heisei, Showa) volgen hetzelfde patroon. Dezelfde `JapaneseLunisolarCalendar` zal ze automatisch verwerken, dus je hebt geen extra logica nodig—voer gewoon de string in. + +--- + +## Pro‑tips & valkuilen + +- **Performance:** Bij het verwerken van grote spreadsheets, hergebruik een enkele `CultureInfo`‑instantie in plaats van elke keer een nieuwe te maken binnen een lus. +- **Thread Safety:** `CultureInfo`‑objecten zijn alleen‑lezen nadat je de kalender hebt ingesteld, dus ze zijn veilig om te delen tussen threads. +- **Aspose.Cells Licensing:** Als je de gratis proefversie gebruikt, onthoud dan dat sommige functies beperkt kunnen zijn nadat de proefperiode is verlopen. De hier getoonde datum‑parsing werkt zowel in de proef‑ als licentiemodus. +- **Time Zones:** De `DateTime` die je krijgt is **unspecified** (geen tijdzone). Als je UTC nodig hebt, roep `DateTime.SpecifyKind(parsedDate, DateTimeKind.Utc)` aan of converteer met `TimeZoneInfo`. + +--- + +## Conclusie + +We hebben alles behandeld wat je nodig hebt om **format date iso** uit een Excel‑workbook te halen met C#. Beginnend met een ruwe Japanse era‑string, **read Excel datetime**, de juiste cultuur ingesteld, **extract datetime Excel**‑gegevens opgehaald, en uiteindelijk een nette ISO‑8601‑string uitgegeven. De aanpak werkt voor elke datumrepresentatie die Excel je kan geven, of het nu een serienummer, een locale‑specifieke string, of een traditioneel era‑formaat is. + +Volgende stappen? Probeer een hele kolom datums te doorlopen, schrijf de ISO‑resultaten terug naar een nieuw blad, of voer ze direct in een JSON‑payload voor een webservice in. Als je nieuwsgierig bent naar andere kalendersystemen (Hebreeuws, Islamitisch), maken Aspose.Cells en .NET’s `CultureInfo` die experimenten net zo eenvoudig. + +Heb je vragen of een lastig datumformaat dat je niet kunt kraken? Laat een reactie achter hieronder, en happy coding! + +{{< /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/dutch/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md b/cells/dutch/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md new file mode 100644 index 0000000000..af39628471 --- /dev/null +++ b/cells/dutch/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-03-30 +description: Leer hoe je een getal met scheidingsteken kunt opmaken met Aspose.Cells + in C#. Inclusief het instellen van een aangepast getalformaat, het toevoegen van + een duizendtallen‑scheidingsteken, het opmaken van decimalen en hoe je een cel kunt + opmaken. +draft: false +keywords: +- format number with separator +- set custom number format +- add thousands separator +- format decimal places +- how to format cell +language: nl +og_description: Getal formatteren met scheidingsteken in C#. Deze gids laat zien hoe + je een aangepast getalformaat instelt, een duizendtallen scheidingsteken toevoegt, + decimalen formatteert en hoe je een cel formatteert met Aspose.Cells. +og_title: Getal formatteren met scheidingsteken in C# – Aspose.Cells‑handleiding +tags: +- C# +- Aspose.Cells +- Number Formatting +title: Getal formatteren met scheidingsteken in C# – Complete Aspose.Cells‑gids +url: /nl/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Getal formatteren met scheidingsteken in C# – Complete Aspose.Cells-gids + +Heb je ooit moeten **getal formatteren met scheidingsteken** in een spreadsheet, maar wist je niet welke API‑aanroep je moest gebruiken? Je bent niet de enige—ontwikkelaars worstelen voortdurend met duizendtallen scheidingstekens, decimalen en aangepaste patronen bij het exporteren van gegevens. + +Goed nieuws: Aspose.Cells maakt het een fluitje van een cent. In deze tutorial lopen we een real‑world voorbeeld door dat **een aangepast getalformaat instelt**, **een duizendtallen scheidingsteken toevoegt**, **decimalen formatteert**, en laat zien **hoe een cel te formatteren** als string. Aan het einde heb je een kant‑klaar fragment dat je in elk .NET‑project kunt plaatsen. + +## Wat deze gids behandelt + +* Het exacte NuGet‑pakket dat je nodig hebt en hoe je het installeert. +* Stapsgewijze code die een workbook maakt, een numerieke waarde schrijft en een aangepast formaat toepast. +* Waarom `ExportTableOptions.ExportAsString` de voorkeur heeft om een geformatteerde waarde op te halen. +* Veelvoorkomende valkuilen—zoals vergeten `ExportAsString` in te schakelen of een verkeerd formaatmasker te gebruiken. +* Hoe je het formaatmasker kunt aanpassen als je een ander aantal decimalen of een andere scheidingstekenstijl nodig hebt. + +Er zijn geen externe documentatielinks nodig; alles wat je nodig hebt staat hier. Laten we beginnen. + +--- + +## Prerequisites + +| Vereiste | Reden | +|----------|-------| +| .NET 6.0 of later | Aspose.Cells 23.10+ richt zich op .NET Standard 2.0+, dus .NET 6 is veilig en actueel. | +| Visual Studio 2022 (of elke C#‑IDE) | Maakt debuggen en pakketbeheer moeiteloos. | +| Aspose.Cells for .NET NuGet‑pakket | Biedt de `Workbook`, `Worksheet` en `ExportTableOptions`‑klassen die we gaan gebruiken. | + +Je kunt het pakket installeren via de Package Manager Console: + +```powershell +Install-Package Aspose.Cells +``` + +Dat is alles—geen extra DLL’s, geen COM‑interop, slechts één NuGet‑referentie. + +--- + +## Stap 1: Een nieuw workbook initialiseren (Hoe een cel te formatteren) + +Het eerste wat we doen is een verse `Workbook`‑instantie maken. Beschouw het als een leeg Excel‑bestand dat klaar is om data te ontvangen. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Create a new workbook – this is where we’ll format the cell. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Waarom dit belangrijk is:** `Workbook` is het toegangspunt voor elke bewerking in Aspose.Cells. Door het eerste werkblad (`Worksheets[0]`) te pakken, krijgen we een schoon canvas zonder een bladnaam te hoeven specificeren. + +--- + +## Stap 2: Een numerieke waarde in de doelcel schrijven + +Vervolgens plaatsen we een ruwe getal in cel **A1**. De waarde zelf is nog niet geformatteerd—het is gewoon een double. + +```csharp + // Step 2: Insert a raw numeric value. + worksheet.Cells["A1"].PutValue(12345.6789); +``` + +> **Pro tip:** Gebruik `PutValue` in plaats van `PutString` wanneer je later numerieke opmaak wilt toepassen. Dit behoudt het onderliggende datatype, waardoor Excel‑compatibele berekeningen mogelijk zijn. + +--- + +## Stap 3: Aangepast getalformaat instellen (Duizendtallen scheidingsteken toevoegen & decimalen formatteren) + +Nu volgt het hart van de tutorial: een formaatmasker definiëren dat Aspose.Cells vertelt hoe het getal moet worden weergegeven. Het masker `#,##0.00` doet drie dingen: + +1. **`#,##0`** – voegt een duizendtallen scheidingsteken toe (komma standaard). +2. **`.00`** – dwingt precies twee decimalen af. + +Als je een ander aantal decimalen nodig hebt, wijzig je simpelweg het aantal `0`‑tjes na de decimale punt. + +```csharp + // Step 3: Configure the custom number format. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, // Return the value as a formatted string. + NumberFormat = "#,##0.00" // Add thousands separator and fix to 2 decimals. + }; +``` + +> **Waarom we `ExportAsString` gebruiken:** Standaard geeft `ExportString` de ruwe waarde terug. Door `ExportAsString = true` in te stellen, dwingt de API het `NumberFormat`‑masker af voordat het naar tekst wordt geconverteerd. Dit is essentieel wanneer je de exacte stringrepresentatie nodig hebt voor rapporten, JSON‑payloads of UI‑weergave. + +--- + +## Stap 4: De geformatteerde tekst exporteren (Hoe een cel te formatteren) + +Met de opties klaar, roepen we `ExportString` aan op dezelfde cel. De methode respecteert het masker dat we zojuist hebben gedefinieerd en levert een mooi geformatteerde string terug. + +```csharp + // Step 4: Export the formatted value. + string formattedCellText = worksheet.Cells["A1"].ExportString(exportOptions); + + // Step 5: Show the result. + Console.WriteLine(formattedCellText); // Expected output: 12,345.68 + } +} +``` + +Het uitvoeren van het programma print **`12,345.68`** naar de console—exact het formaat dat we hebben gevraagd. + +> **Edge case:** Als het brongetal meer dan twee decimalen heeft, rondt het masker af. Als je in plaats van afronden wilt afkappen, moet je de waarde vooraf verwerken met `Math.Truncate` voordat je `PutValue` aanroept. + +--- + +## Stap 5: Het formaat aanpassen – Veelvoorkomende variaties + +### 5.1 Decimalprecisie wijzigen + +Wil je drie decimalen? Vervang simpelweg het masker: + +```csharp +NumberFormat = "#,##0.000" // → 12,345.679 +``` + +### 5.2 Een ander duizendtallen scheidingsteken gebruiken + +Sommige regio’s geven de voorkeur aan een spatie of een punt. Je kunt het teken direct in het masker opnemen: + +```csharp +NumberFormat = "# ##0.00" // Uses a non‑breaking space as separator. +``` + +Of vertrouwen op de cultuursinstellingen van het workbook: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("de-DE"); +NumberFormat = "#.##0,00"; // German style: 12.345,68 +``` + +### 5.3 Voorvoegsel of achtervoegsel (Valuta, Procent) + +Voeg een dollarteken of een procentteken direct in het masker toe: + +```csharp +NumberFormat = "$#,##0.00"; // → $12,345.68 +NumberFormat = "0.00%"; // → 1,234,568.00% +``` + +> **Opmerking:** Het masker is hoofdlettergevoelig. `$` en `%` zijn letterlijke symbolen; ze beïnvloeden de onderliggende numerieke waarde niet. + +--- + +## Stap 6: Volledig werkend voorbeeld (Klaar om te kopiëren en plakken) + +Hieronder staat het complete programma dat je kunt kopiëren naar een nieuwe console‑applicatie. Het bevat alle stappen, commentaren en de uiteindelijke output‑verificatie. + +```csharp +using System; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write raw numeric value to A1. + worksheet.Cells["A1"].PutValue(12345.6789); + + // 3️⃣ Define custom format: thousands separator + two decimals. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + NumberFormat = "#,##0.00" + }; + + // 4️⃣ Export the formatted string. + string result = worksheet.Cells["A1"].ExportString(exportOptions); + + // 5️⃣ Display the outcome. + Console.WriteLine(result); // Output: 12,345.68 + + // Optional: keep console open. + Console.WriteLine("Press any key to exit..."); + Console.ReadKey(); + } +} +``` + +Voer het programma uit (`dotnet run` vanuit de terminal of druk op F5 in Visual Studio) en je ziet het geformatteerde getal precies zoals weergegeven. + +--- + +## Veelgestelde vragen (FAQ) + +**Q: Werkt dit met oudere versies van Excel?** +A: Ja. Het formaatmasker volgt de native getal‑formaatsyntaxis van Excel, dus elke versie die `#,##0.00` begrijpt, zal dezelfde string weergeven. + +**Q: Wat als ik een bereik van cellen moet formatteren?** +A: Loop over het gewenste bereik en pas dezelfde `ExportTableOptions` toe op elke cel, of stel de eigenschap `Style.Custom` in op het bereik en roep vervolgens `ExportString` aan op één cel. + +**Q: Kan ik direct naar CSV exporteren met deze formaten toegepast?** +A: Absoluut. Gebruik `Workbook.Save("output.csv", SaveFormat.CSV);` nadat je het formaat op elke cel hebt ingesteld. Aspose.Cells respecteert de `Style` van de cel bij het genereren van CSV. + +--- + +## Conclusie + +We hebben zojuist laten zien hoe je **getal formatteren met scheidingsteken** in C# kunt doen met Aspose.Cells, waarbij we alles behandelen van **een aangepast getalformaat instellen** tot **een duizendtallen scheidingsteken toevoegen**, **decimalen formatteren**, en de essentiële **hoe een cel te formatteren** voor string‑export. De code is volledig zelf‑voorzienend, werkt met .NET 6+ en kan worden aangepast voor elke locale of precisie‑vereiste. + +Vervolgens kun je verkennen: + +* Dezelfde techniek toepassen op datums en tijden (`NumberFormat = "dd‑MMM‑yyyy"`). +* Bulk‑exports automatiseren waarbij elke kolom een ander masker nodig heeft. +* De geformatteerde strings integreren in PDF‑rapporten met Aspose.Words. + +Probeer het uit, en je wordt snel de go‑to persoon voor spreadsheet‑formattering in je team. Happy coding! (Image: ![Screenshot showing formatted number with separator in Aspose.Cells](image-placeholder.png){alt="Geformatteerd getal met scheidingsteken weergegeven in Aspose.Cells-uitvoer"} ) + +{{< /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/dutch/net/excel-data-import-export/_index.md b/cells/dutch/net/excel-data-import-export/_index.md index da0405c0b8..d630ebe36a 100644 --- a/cells/dutch/net/excel-data-import-export/_index.md +++ b/cells/dutch/net/excel-data-import-export/_index.md @@ -32,6 +32,10 @@ De volgende uitdaging is een veelvoorkomende uitdaging: DataTable-rijen in Excel Leer in deze eenvoudig te volgen tutorial hoe u gegevens importeert in Excel met aangepaste DB Num-opmaak met behulp van Aspose.Cells voor .NET. ### [Eerste rij naar beneden verschuiven bij het invoegen van DataTable-rijen in Excel](./shift-first-row-down-when-inserting-cells-datatable-rows-in-excel/) Leer hoe u DataTable-rijen in Excel invoegt zonder de eerste rij naar beneden te verschuiven met Aspose.Cells voor .NET. Stapsgewijze handleiding voor moeiteloze automatisering. +### [Excel-werkmap maken in C# – JSON invoegen en opslaan als XLSX](./create-excel-workbook-c-insert-json-and-save-as-xlsx/) +Leer hoe u met Aspose.Cells een Excel-werkmap in C# maakt, JSON-gegevens invoegt en het bestand opslaat als XLSX. +### [Excel-werkmap maken in C# – Valuta-opmaak toepassen en DataTable importeren](./create-excel-workbook-c-apply-currency-format-and-import-dat/) +Leer hoe u met Aspose.Cells een Excel-werkmap in C# maakt, valuta-opmaak toepast en een DataTable importeert. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/dutch/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md b/cells/dutch/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md new file mode 100644 index 0000000000..cd3dcc9ce8 --- /dev/null +++ b/cells/dutch/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md @@ -0,0 +1,285 @@ +--- +category: general +date: 2026-03-30 +description: Maak een Excel-werkmap in C# met valutavormatting. Leer hoe je een DataTable + importeert, een getalnotatie toevoegt in Excel en een valutavormatting toepast op + een kolom in enkele minuten. +draft: false +keywords: +- create excel workbook c# +- format cells currency +- import datatable to excel +- add number format excel +- apply currency format column +language: nl +og_description: Maak een Excel-werkmap in C# en formatteer cellen direct als valuta. + Deze stapsgewijze tutorial laat zien hoe je een DataTable naar Excel importeert + en een getalnotatie toevoegt aan een kolom. +og_title: Excel-werkmap maken C# – Gids voor valutavormatting +tags: +- Aspose.Cells +- C# +- Excel automation +title: Excel-werkmap maken met C# – Valuta‑opmaak toepassen en DataTable importeren +url: /nl/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel-werkmap maken in C# – Valuta‑opmaak toepassen en DataTable importeren + +Heb je ooit **een Excel-werkmap in C#** moeten maken die er al uitziet als een afgewerkt rapport? Misschien haal je verkoopcijfers uit een database en wil je dat de prijskolom als dollars wordt weergegeven zonder handmatig in Excel te rommelen. Klinkt bekend? Je bent niet de enige—de meeste ontwikkelaars lopen tegen dit probleem aan bij hun eerste Excel‑exportautomatisering. + +In deze gids lopen we stap voor stap door een complete, kant‑klaar oplossing die **een Excel-werkmap in C# maakt**, een `DataTable` importeert, en **de Prijs‑kolom als valuta opmaakt**. Aan het einde heb je een bestand genaamd `StyledTable.xlsx` dat je kunt openen en waarin de getallen netjes zijn opgemaakt. Geen extra nabewerking nodig. + +> **Wat je zult leren** +> - Hoe je Aspose.Cells instelt in een .NET‑project +> - Hoe je **een datatable naar Excel importeert** met een stijl‑array +> - Hoe je **een getalopmaak in Excel toevoegt** voor een specifieke kolom +> - Tips voor het omgaan met meer kolommen of verschillende locales + +> **Prerequisites** +> - .NET 6+ (of .NET Framework 4.6+) geïnstalleerd +> - Aspose.Cells for .NET NuGet‑package (`Install-Package Aspose.Cells`) +> - Basiskennis van C# en DataTables + +--- + +## Stap 1: De DataTable voorbereiden (import datatable to excel) + +Eerst hebben we wat voorbeeldgegevens nodig. In een echte applicatie zou je deze tabel waarschijnlijk vullen vanuit een DB‑query, maar een hard‑coded voorbeeld houdt het simpel. + +```csharp +using System.Data; + +// Create a DataTable with two columns: Product (string) and Price (double) +DataTable dataTable = new DataTable(); +dataTable.Columns.Add("Product", typeof(string)); +dataTable.Columns.Add("Price", typeof(double)); + +// Add a few rows – you can add as many as you like +dataTable.Rows.Add("Apple", 1.23); +dataTable.Rows.Add("Banana", 0.78); +dataTable.Rows.Add("Cherry", 2.50); +``` + +*Waarom dit belangrijk is*: De `DataTable` is de brug tussen je bedrijfsgegevens en het Excel‑bestand. Aspose.Cells kan deze direct importeren, waarbij kolomnamen en gegevenstypen behouden blijven. + +--- + +## Stap 2: Een nieuwe Workbook aanmaken (create excel workbook c#) + +Nu maken we het daadwerkelijke Excel‑bestandobject. Beschouw het als het lege canvas waarop je gaat schilderen. + +```csharp +using Aspose.Cells; + +// Instantiate a fresh workbook – this is the core of create excel workbook c# +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0). You could also add more sheets later. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Pro tip:** Als je meerdere bladen nodig hebt, roep dan `workbook.Worksheets.Add()` aan en geef elk een betekenisvolle naam. + +--- + +## Stap 3: Een valuta‑stijl definiëren (format cells currency) + +Aspose.Cells laat je een `Style`‑object maken dat beschrijft hoe cellen eruit moeten zien. Voor valuta gebruiken we het ingebouwde getalopmaak‑ID 164 (`"$#,##0.00"`). + +```csharp +// Create a new style object for the price column +Style priceStyle = workbook.CreateStyle(); +priceStyle.Number = 164; // Built‑in currency format "$#,##0.00" +``` + +*Waarom niet gewoon de opmaak‑string instellen?* Het gebruik van het ingebouwde ID zorgt voor compatibiliteit over verschillende Excel‑versies heen en voorkomt locale‑specifieke eigenaardigheden. + +--- + +## Stap 4: De stijl‑array bouwen (apply currency format column) + +Bij het importeren van een `DataTable` kun je een array van `Style`‑objecten doorgeven—één per kolom. `null` betekent “gebruik de standaardstijl”. Hier passen we `priceStyle` alleen toe op de tweede kolom. + +```csharp +// Column 0 (Product) gets the default style, Column 1 (Price) gets the currency style +Style[] columnStyles = { null, priceStyle }; +``` + +Als je later meer kolommen toevoegt, breid je de array eenvoudig uit. De lengte van `columnStyles` moet overeenkomen met het aantal kolommen dat je importeert, anders gooit Aspose een uitzondering. + +--- + +## Stap 5: De DataTable importeren met stijlen (import datatable to excel) + +Nu gebeurt de magie—onze `DataTable` wordt in het werkblad geplaatst, en de prijskolom wordt direct als valuta weergegeven. + +```csharp +// Parameters: +// - dataTable: source data +// - true: include column headers +// - startRow: 0 (top of sheet) +// - startColumn: 0 (first column) +// - columnStyles: style array defined above +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +*Wat als je meer dan twee kolommen hebt?* Breid `columnStyles` gewoon uit zodat elke kolom de juiste stijl krijgt (of `null` voor de standaard). Dit is de netste manier om **een getalopmaak in Excel toe te voegen** selectief. + +--- + +## Stap 6: De Workbook opslaan (create excel workbook c#) + +Tot slot schrijven we het bestand naar schijf. Kies een map waar je schrijfrechten voor hebt. + +```csharp +// Save the workbook as an XLSX file +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +Open `StyledTable.xlsx` in Excel en je zou moeten zien: + +| Product | Prijs | +|---------|-------| +| Apple | $1.23 | +| Banana | $0.78 | +| Cherry | $2.50 | + +De **Prijs**‑kolom is al opgemaakt als valuta—geen extra stappen nodig. + +--- + +## Edge Cases & Variations + +### Meer kolommen, verschillende opmaken + +Als je **cellen valuta wilt opmaken** voor meerdere kolommen (bijv. Kosten, Belasting, Totaal), maak dan een aparte `Style` voor elke kolom en vul `columnStyles` dienovereenkomstig: + +```csharp +Style costStyle = workbook.CreateStyle(); +costStyle.Number = 164; // currency + +Style taxStyle = workbook.CreateStyle(); +taxStyle.Number = 164; + +// Assuming columns: Product, Cost, Tax, Total +Style[] styles = { null, costStyle, taxStyle, priceStyle }; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, styles); +``` + +### Locale‑specifieke valuta + +Voor Euro of Britse Pond, gebruik andere ingebouwde IDs (bijv. 165 voor `€#,##0.00`). Je kunt ook een aangepaste opmaak‑string instellen: + +```csharp +priceStyle.Custom = "€#,##0.00"; +``` + +### Grote datasets + +Aspose.Cells kan miljoenen rijen aan, maar het geheugenverbruik groeit met stijl‑objecten. Hergebruik één `Style`‑instantie voor alle valutakolommen om de footprint laag te houden. + +### Ontbrekende stijlen + +Als `columnStyles` korter is dan het aantal kolommen, past Aspose de standaardstijl toe op de resterende kolommen. Handig wanneer je slechts een paar kolommen wilt aanpassen. + +--- + +## Volledig werkend voorbeeld (Alle stappen gecombineerd) + +Hieronder staat het complete programma dat je kunt kopiëren‑plakken in een console‑applicatie. Het bevat alle besproken onderdelen, plus een paar nuttige commentaren. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // Step 1: Build sample DataTable (import datatable to excel) + // ------------------------------------------------- + DataTable dataTable = new DataTable(); + dataTable.Columns.Add("Product", typeof(string)); + dataTable.Columns.Add("Price", typeof(double)); + dataTable.Rows.Add("Apple", 1.23); + dataTable.Rows.Add("Banana", 0.78); + dataTable.Rows.Add("Cherry", 2.50); + // You can add as many rows as you like here. + + // ------------------------------------------------- + // Step 2: Create a new workbook (create excel workbook c#) + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // Step 3: Define a currency style (format cells currency) + // ------------------------------------------------- + Style priceStyle = workbook.CreateStyle(); + priceStyle.Number = 164; // "$#,##0.00" – built‑in currency format + + // ------------------------------------------------- + // Step 4: Build the style array (apply currency format column) + // ------------------------------------------------- + // First column gets default style (null), second column uses priceStyle. + Style[] columnStyles = { null, priceStyle }; + + // ------------------------------------------------- + // Step 5: Import the DataTable with the style array + // ------------------------------------------------- + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // ------------------------------------------------- + // Step 6: Save the workbook to disk + // ------------------------------------------------- + string outputPath = @"YOUR_DIRECTORY\StyledTable.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } +} +``` + +**Verwacht resultaat:** Het openen van `StyledTable.xlsx` toont de `Prijs`‑kolom met een dollarteken en twee decimalen, precies zoals de **format cells currency**‑instructie eist. + +--- + +## Frequently Asked Questions + +**Q: Werkt dit met .NET Core?** +A: Absoluut. Aspose.Cells is .NET‑standard compliant, dus je kunt targeten op .NET 5, .NET 6 of later zonder wijzigingen. + +**Q: Wat als mijn DataTable 10 kolommen heeft maar ik alleen kolom 5 wil opmaken?** +A: Maak een `Style[]` van lengte 10, vul posities 0‑4 en 6‑9 met `null`, en zet je aangepaste stijl op index 4 (nul‑gebaseerd). Aspose respecteert elke invoer. + +**Q: Kan ik de koprij verbergen?** +A: Na import kun je `worksheet.Cells.Rows[0].Hidden = true;` instellen of simpelweg `false` doorgeven voor de `includeColumnNames`‑parameter in `ImportDataTable`. + +--- + +## Conclusie + +We hebben zojuist **een Excel-werkmap in C# gemaakt**, een `DataTable` geïmporteerd, en **een valuta‑opmaak op een kolom toegepast** met Aspose.Cells. De belangrijkste stappen—data voorbereiden, een stijl definiëren, een stijl‑array bouwen, importeren met `ImportDataTable`, en opslaan—dekken de kern van de meeste Excel‑automatiseringstaken. + +Van hieruit kun je verder gaan met: + +- **een getalopmaak in Excel toevoegen** voor datums of percentages +- Meerdere werkbladen exporteren in één bestand +- **cellen valuta opmaken** met locale‑specifieke symbolen +- Het automatiseren van grafiek‑creatie op basis van dezelfde data + +Probeer die uit, en je wordt snel de go‑to persoon voor Excel‑rapportage in je team. Heb je een eigen twist die je wilt delen? Laat een reactie achter—happy coding! + +![create excel workbook c# screenshot](image.png "create excel workbook c#") + +{{< /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/dutch/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md b/cells/dutch/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md new file mode 100644 index 0000000000..9c7fbc62e6 --- /dev/null +++ b/cells/dutch/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md @@ -0,0 +1,233 @@ +--- +category: general +date: 2026-03-30 +description: Maak snel een Excel-werkmap in C# door JSON-gegevens in te voegen en + de werkmap op te slaan als XLSX. Leer hoe je Excel genereert vanuit JSON, JSON naar + Excel schrijft en JSON in Excel invoegt. +draft: false +keywords: +- create excel workbook c# +- save workbook as xlsx +- generate excel from json +- write json to excel +- insert json into excel +language: nl +og_description: Maak snel een Excel-werkmap in C# door JSON-gegevens in te voegen + en de werkmap op te slaan als XLSX. Volg deze stapsgewijze handleiding om Excel + uit JSON te genereren. +og_title: Excel-werkboek maken in C# – JSON invoegen en opslaan als XLSX +tags: +- Aspose.Cells +- C# +- Excel automation +title: Excel-werkboek maken met C# – JSON invoegen en opslaan als XLSX +url: /nl/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel-werkmap maken in C# – JSON invoegen en opslaan als XLSX + +Heb je ooit **een Excel-werkmap in C# moeten maken** en wat JSON direct in een cel moeten dumpen? Je bent niet de enige—ontwikkelaars staan vaak voor hetzelfde vraagstuk wanneer ze API‑payloads of configuratiebestanden hebben die in een spreadsheet moeten belanden voor rapportage of delen. + +Het goede nieuws is dat je met Aspose.Cells dit in een handvol regels kunt doen, **werkmap opslaan als XLSX**, en het hele proces type‑veilig houdt. In deze tutorial zullen we **Excel genereren vanuit JSON**, **JSON naar Excel schrijven**, en je de exacte stappen laten zien om **JSON in Excel in te voegen** zonder ingewikkelde tekenreeks‑concatenaties. + +## Wat deze gids behandelt + +We lopen door: + +1. Een nieuw werkboek opzetten. +2. Een Smart Marker toevoegen die JSON verwacht. +3. Een JSON‑array aan de marker doorgeven. +4. `SmartMarkerOptions` aanpassen zodat de JSON in één cel blijft. +5. Het bestand opslaan als een XLSX‑werkboek. + +Aan het einde heb je een kant‑klaar `JsonSingleCell.xlsx`‑bestand en een solide patroon dat je kunt hergebruiken voor elk JSON‑naar‑Excel‑scenario. Geen externe services, alleen pure C# en de Aspose.Cells‑bibliotheek. + +**Voorvereisten** + +- .NET 6+ (of .NET Framework 4.6+). +- Visual Studio 2022 of een andere C#‑compatibele IDE. +- NuGet‑pakket `Aspose.Cells` (gratis proefversie of gelicentieerde versie). + +Als je die hebt, laten we erin duiken—geen extra configuratie nodig. + +## Stap 1: Een nieuw werkboek maken in C# + +Het eerste wat je nodig hebt is een leeg werkboekobject. Beschouw het als een nieuw Excel‑bestand dat wacht op gegevens. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is your empty Excel file +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; +``` + +**Waarom dit belangrijk is:** +`Workbook` is het toegangspunt voor alle Excel‑bewerkingen. Door het eerst te maken, zorg je ervoor dat de daaropvolgende **werkmap opslaan als xlsx**‑aanroep een concreet object heeft om te serialiseren. + +> **Pro tip:** Als je van plan bent met meerdere bladen te werken, kun je ze nu toevoegen met `workbook.Worksheets.Add()`. + +## Stap 2: Een Smart Marker plaatsen die JSON verwacht + +Smart Markers zijn tijdelijke aanduidingen die Aspose.Cells tijdens runtime vervangt. Hier vertellen we het om te zoeken naar een JSON‑tekenreeks met de naam `data`. + +```csharp +// Put a Smart Marker in cell A1 – {{data:json}} tells Aspose to expect JSON +worksheet.Cells["A1"].PutValue("{{data:json}}"); +``` + +**Waarom dit belangrijk is:** +Het `:json`‑achtervoegsel vertelt de engine dat de binnenkomende waarde JSON is, niet platte tekst. Dit is de sleutel om **JSON naar Excel te schrijven** zonder handmatige parsing. + +## Stap 3: Definieer de JSON‑array + +Nu maken we de JSON die we willen invoegen. Voor demonstratie gebruiken we een eenvoudige lijst van personen. + +```csharp +// Sample JSON array – could come from an API, file, or DB +string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; +``` + +**Randgeval:** +Als je JSON dubbele aanhalingstekens bevat, zorg er dan voor dat ze geescaped zijn (zoals getoond) of gebruik een letterlijke tekenreeks (`@"..."`) om compileerfouten te voorkomen. + +## Stap 4: Smart Marker‑opties configureren – Houd de array geheel + +Standaard zou Aspose proberen de array over rijen uit te breiden. We willen dat de volledige JSON‑tekenreeks in één enkele cel blijft, wat perfect is voor **JSON in Excel invoegen**‑scenario's waarbij de ontvanger de JSON later zal parseren. + +```csharp +SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions +{ + // Treat the whole array as a single cell value + ArrayAsSingle = true +}; +``` + +**Waarom dit belangrijk is:** +`ArrayAsSingle = true` voorkomt rij‑expansie, waardoor je een nette, één‑cel JSON‑blob krijgt. Dit is essentieel wanneer het spreadsheet een transportformaat is in plaats van een rapport. + +## Stap 5: Verwerk de Smart Marker met de JSON‑gegevens + +We binden nu de JSON aan de marker en laten Aspose het zware werk doen. + +```csharp +// Process the marker – the anonymous object maps "data" to our JSON string +worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); +``` + +**Wat er onder de motorkap gebeurt:** +Aspose evalueert de placeholder `{{data:json}}`, serialiseert de `jsonData`‑tekenreeks en schrijft deze naar cel A1 met inachtneming van de ingestelde opties. + +## Stap 6: Sla het werkboek op als een XLSX‑bestand + +Tot slot schrijven we het werkboek naar schijf. Hier komt **werkmap opslaan als xlsx** in beeld. + +```csharp +// Save the workbook – the extension determines the format (XLSX here) +workbook.Save("JsonSingleCell.xlsx"); +``` + +**Resultaat:** +Open `JsonSingleCell.xlsx` in Excel, en je ziet de JSON‑array precies zoals we die hebben gedefinieerd, netjes in cel A1. + +## Volledig, uitvoerbaar voorbeeld + +Hieronder staat het volledige programma dat je kunt kopiëren‑plakken in een console‑applicatie. Het bevat alle bovenstaande stappen en werkt direct (ervan uitgaande dat het Aspose.Cells‑NuGet‑pakket is geïnstalleerd). + +```csharp +using System; +using Aspose.Cells; + +namespace JsonToExcelDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add a Smart Marker that expects JSON + worksheet.Cells["A1"].PutValue("{{data:json}}"); + + // 3️⃣ Define the JSON array + string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; + + // 4️⃣ Configure options – keep array as a single cell value + SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions + { + ArrayAsSingle = true + }; + + // 5️⃣ Process the marker with the JSON payload + worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); + + // 6️⃣ Save the workbook as XLSX + workbook.Save("JsonSingleCell.xlsx"); + + Console.WriteLine("Excel file created successfully! Check JsonSingleCell.xlsx."); + } + } +} +``` + +**Verwachte output in Excel** + +| A | +|---| +| `[{"Name":"John","Age":30},{"Name":"Jane","Age":28}]` | + +Die enkele cel bevat nu een perfect geldige JSON‑array, klaar voor downstream‑verwerking. + +## Veelgestelde vragen & randgevallen + +### Wat als ik de JSON over rijen verspreid wil hebben? + +Stel `ArrayAsSingle = false` in (de standaard). Aspose maakt een rij voor elk array‑element en mappt objecteigenschappen naar kolommen. Dit is handig wanneer je een tabelweergave wilt in plaats van een ruwe JSON‑tekenreeks. + +### Kan ik een JSON‑bestand gebruiken in plaats van een hard‑gecodeerde tekenreeks? + +Absoluut. Lees het bestand in een tekenreeks: + +```csharp +string jsonData = File.ReadAllText("people.json"); +``` + +Geef vervolgens `jsonData` door aan dezelfde `Process`‑aanroep. De rest van de pijplijn blijft ongewijzigd. + +### Werkt dit met grote JSON‑payloads? + +Ja, maar houd het geheugenverbruik in de gaten. Voor enorme arrays kun je overwegen de gegevens te streamen of direct naar rijen te schrijven (`ArrayAsSingle = false`) om een enkele gigantische cel te vermijden waar Excel moeite mee kan hebben. + +### Is het gegenereerde XLSX‑bestand compatibel met oudere Excel‑versies? + +Het `.xlsx`‑formaat is gebaseerd op Office Open XML en werkt vanaf Excel 2007. Als je het legacy `.xls`‑formaat nodig hebt, wijzig dan de opslaan‑aanroep: + +```csharp +workbook.Save("JsonSingleCell.xls", SaveFormat.Excel97To2003); +``` + +## Pro‑tips voor werken met JSON en Excel + +- **Validate JSON first** – gebruik `System.Text.Json.JsonDocument.Parse(jsonData)` om vroegtijdig ongeldige invoer te detecteren. +- **Escape special characters** – als je JSON regeleinden bevat, verschijnen die als letterlijke `\n` in de cel; je kunt ze vervangen door `Environment.NewLine` vóór verwerking. +- **Reuse Smart Markers** – je kunt meerdere markers in hetzelfde blad plaatsen, elk wijzend naar een andere JSON‑eigenschap. +- **Combine with formulas** – zodra de JSON in een cel staat, kun je Excel’s `FILTERXML` (in nieuwere versies) gebruiken om deze on‑the‑fly te parseren. + +## Conclusie + +Je weet nu hoe je **een Excel‑werkmap in C# kunt maken**, een JSON‑payload kunt insluiten, en **de werkmap kunt opslaan als xlsx** met Aspose.Cells. Dit patroon stelt je in staat om **Excel te genereren vanuit JSON**, **JSON naar Excel te schrijven**, en **JSON in Excel in te voegen** met slechts een paar regels code, waardoor gegevensuitwisseling tussen services en analisten moeiteloos verloopt. + +Klaar voor de volgende stap? Probeer de JSON‑array om te zetten in een echte tabel (stel `ArrayAsSingle = false` in) of verken het stylen van het blad na invoeging. dezelfde aanpak werkt voor CSV, XML, of zelfs aangepaste objecten—pas gewoon het Smart Marker‑type aan. + +Veel plezier met coderen, en voel je vrij om te experimenteren! Als je tegen problemen aanloopt, laat dan een reactie achter of bekijk de officiële documentatie van Aspose voor diepere duiken in Smart Markers. + +{{< /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/dutch/net/excel-workbook/_index.md b/cells/dutch/net/excel-workbook/_index.md index d6e6b81ddb..ac01d3cd95 100644 --- a/cells/dutch/net/excel-workbook/_index.md +++ b/cells/dutch/net/excel-workbook/_index.md @@ -86,6 +86,7 @@ Dus waarom zou u deze kans niet grijpen om uw Excel-vaardigheden te verbeteren? | [Werkboek Afdrukvoorbeeld](./workbook-print-preview/) | Leer hoe u afdrukvoorbeelden voor Excel-bestanden maakt met Aspose.Cells voor .NET. Leer de coderingsstappen in een gedetailleerde, eenvoudig te volgen tutorial. | | [Werken met eigenschappen van inhoudstypen](./working-with-content-type-properties/) | Leer hoe u Aspose.Cells voor .NET kunt gebruiken om te werken met eigenschappen van inhoudstypen voor verbeterd Excel-metadatabeheer. Volg deze eenvoudige stapsgewijze handleiding. | | [Xades Signature-ondersteuning](./xades-signature-support/) | Leer hoe u Xades-handtekeningen aan Excel-bestanden toevoegt met Aspose.Cells voor .NET met deze stapsgewijze handleiding. Beveilig uw documenten. | +| [Maak masterblad in C# – Complete Aspose.Cells-gids](./create-master-sheet-in-c-complete-aspose-cells-guide/) | Leer hoe u een masterblad maakt in C# met Aspose.Cells in deze volledige stap‑voor‑stap gids. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/dutch/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md b/cells/dutch/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md new file mode 100644 index 0000000000..4562697534 --- /dev/null +++ b/cells/dutch/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-03-30 +description: Maak een masterblad met Aspose.Cells in C#. Leer hoe je een Excel-werkmap + in C# maakt, dubbele bladnamen toestaat en de werkmap als XLSX opslaat in een paar + stappen. +draft: false +keywords: +- create master sheet +- create excel workbook c# +- save workbook as xlsx +- allow duplicate sheet names +language: nl +og_description: Maak een mastersheet met Aspose.Cells in C#. Deze gids laat zien hoe + je een Excel-werkmap maakt in C#, dubbele bladnamen toestaat en de werkmap opslaat + als XLSX. +og_title: Maak een masterblad in C# – Complete Aspose.Cells-gids +tags: +- Aspose.Cells +- C# +- Excel automation +title: Maak een masterblad in C# – Complete Aspose.Cells-gids +url: /nl/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Maak een masterblad in C# – Complete Aspose.Cells-gids + +Heb je ooit een **masterblad maken** in een Excel‑bestand nodig gehad, maar wist je niet hoe je een heleboel detailbladen moet afhandelen die dezelfde basisnaam delen? Je bent niet de enige. In veel rapportagescenario's eindig je met tientallen detail‑tabbladen, en het standaardgedrag van de meeste bibliotheken is een uitzondering (exception) te gooien wanneer twee bladen dezelfde naam zouden krijgen. + +Gelukkig maakt Aspose.Cells het een fluitje van een cent om **masterblad te maken**, de engine te configureren om **dubbele bladnamen toe te staan**, en vervolgens **werkmap op te slaan als XLSX**—alles vanuit nette C#‑code. In deze tutorial lopen we een volledig uitvoerbaar voorbeeld stap voor stap door, leggen we uit waarom elke regel belangrijk is, en geven we je een reeks tips die je direct in je eigen projecten kunt kopiëren. + +> **Wat je zult meenemen** +> * Hoe je **Excel-werkmap C#‑stijl maken** met Aspose.Cells. +> * Hoe je een smart‑marker kunt insluiten die een detailblad genereert voor elke gegevensrij. +> * Hoe je `DetailSheetNewName = DuplicateAllowed` instelt zodat de bibliotheek automatisch een numeriek achtervoegsel toevoegt. +> * Hoe je **werkmap opslaan als XLSX** op schijf zonder extra stappen. + +Geen externe documentatie nodig—alles wat je nodig hebt staat hier. + +--- + +## Vereisten + +Voordat we beginnen, zorg ervoor dat je het volgende hebt: + +| Vereiste | Waarom het belangrijk is | +|----------|--------------------------| +| .NET 6.0 or later (or .NET Framework 4.7+) | Aspose.Cells 23.x+ richt zich op deze runtimes. | +| Visual Studio 2022 (or any C# IDE) | Voor eenvoudige projectcreatie en debugging. | +| Aspose.Cells for .NET NuGet package (`Install-Package Aspose.Cells`) | De bibliotheek die alle smart‑marker‑magie aandrijft. | +| Basic C# knowledge | Je begrijpt de syntax zonder een crash‑course. | + +Als je een van deze mist, voeg ze dan nu toe—het heeft geen zin om door te gaan met een half‑gebakken omgeving. + +--- + +## Stap 1: Maak masterblad met Aspose.Cells + +Het eerste wat we doen is **Excel-werkmap C#‑stijl maken** door een `Workbook`‑object te instantieren. Dit object bevat al een standaardwerkblad, dat we zullen hernoemen naar “Master” en gebruiken als sjabloon voor alle detailpagina's. + +```csharp +using Aspose.Cells; + +// Step 1: Initialise a new workbook – this automatically gives us one sheet +Workbook workbook = new Workbook(); + +// Grab the first (and only) worksheet that comes with a fresh workbook +Worksheet masterSheet = workbook.Worksheets[0]; + +// Give it a meaningful name – this will be our master sheet +masterSheet.Name = "Master"; +``` + +*Waarom het blad hernoemen?* +Een standaardnaam zoals “Sheet1” geeft geen intentie weer, en later, wanneer je het bestand doorzoekt, wil je dat het master‑tabblad direct herkenbaar is. Een naam geven voorkomt ook per ongeluk botsingen wanneer je later meer bladen toevoegt. + +--- + +## Stap 2: Bereid de smart‑marker voor die detailbladen genereert + +Smart‑markers zijn tijdelijke aanduidingen die Aspose.Cells tijdens runtime vervangt door gegevens. Door `{{#detail:DataSheetName}}` in cel **A1** te plaatsen, vertellen we de engine: “Voor elk record in de gegevensbron, maak een nieuw blad waarvan de naam afkomstig is van het `DataSheetName`‑veld.” + +```csharp +// Step 2: Insert a smart‑marker into cell A1. +// The marker #detail tells Aspose.Cells to generate a new sheet per data row. +masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); +``` + +Beschouw de marker als een klein instructiekaartje dat op het werkblad is geplakt. Wanneer de processor draait, leest hij het kaartje, haalt de juiste waarde uit de gegevensbron, en kloont vervolgens het masterblad naar een nieuw tabblad. + +--- + +## Stap 3: Bouw de gegevensbron – dubbele bladnamen opzettelijk + +In de praktijk haal je dit misschien uit een database, maar voor de demo gebruiken we een in‑memory array van anonieme objecten. Merk op dat beide items dezelfde basisnaam `"Detail"` gebruiken; dit is het scenario waarin **dubbele bladnamen toestaan** cruciaal wordt. + +```csharp +// Step 3: Create a data source with two items that share the same base sheet name. +var dataSource = new[] +{ + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } +}; +``` + +Als je dit zonder speciale opties probeert, zou Aspose.Cells een uitzondering (exception) werpen bij de tweede iteratie omdat er al een blad met de naam “Detail” bestaat. Daarom is de volgende stap belangrijk. + +--- + +## Stap 4: Schakel dubbele bladnamen in + +Aspose.Cells stelt `SmartMarkerOptions.DetailSheetNewName` beschikbaar. Door het in te stellen op `DetailSheetNewName.DuplicateAllowed` vertel je de engine om automatisch een numeriek achtervoegsel toe te voegen (bijv. “Detail_1”) wanneer er een naamsconflict optreedt. + +```csharp +// Step 4: Configure SmartMarker options to permit duplicate sheet names. +var smartMarkerOptions = new SmartMarkerOptions +{ + // This makes the library rename clashes to "Detail_1", "Detail_2", etc. + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed +}; +``` + +*Waarom niet elke rij handmatig een unieke naam geven?* +Omdat de brongegevens vaak geen uniekheid garanderen, vooral wanneer gebruikers vrije‑tekst invoeren. De bibliotheek het suffix laten afhandelen verwijdert een hele klasse bugs. + +--- + +## Stap 5: Verwerk de smart‑markers en genereer de detailbladen + +Nu roepen we `SmartMarkers.Process` aan, waarbij we zowel de gegevensbron als de opties die we zojuist hebben geconfigureerd doorgeven. De methode doorloopt elk item, kloont het masterblad, en hernoemt de kloon volgens het `DataSheetName`‑veld (plus een achtervoegsel indien nodig). + +```csharp +// Step 5: Run the smart‑marker processor – this creates the detail sheets. +masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); +``` + +Na het uitvoeren van deze regel heb je drie tabbladen in de werkmap: + +1. **Master** – de oorspronkelijke sjabloon. +2. **Detail** – eerste gegenereerde blad (geen achtervoegsel nodig). +3. **Detail_1** – tweede gegenereerde blad (achtervoegsel automatisch toegevoegd). + +Je kunt dit verifiëren door het bestand in Excel te openen; je ziet de twee detailbladen naast elkaar. + +--- + +## Stap 6: Werkmap opslaan als XLSX‑bestand + +Tot slot slaan we het bestand op schijf op. De `Save`‑methode kiest automatisch het XLSX‑formaat wanneer je een `.xlsx` extensie opgeeft. + +```csharp +// Step 6: Persist the workbook – this is the moment we finally “save workbook as XLSX”. +string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; +workbook.Save(outputPath); +``` + +**Pro tip:** Als je het bestand direct naar een web‑respons wilt streamen (bijv. ASP.NET Core), gebruik dan `workbook.Save(stream, SaveFormat.Xlsx)` in plaats van een bestandspad. + +--- + +## Volledig werkend voorbeeld + +Hieronder staat het volledige, kant‑klaar te draaien programma. Kopieer‑en‑plak het in een console‑applicatie, druk op F5, en open het gegenereerde bestand om het resultaat te zien. + +```csharp +using System; +using Aspose.Cells; + +namespace MasterSheetDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook and rename the default sheet to "Master" + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert a smart‑marker that will generate a detail sheet per data row + masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); + + // 3️⃣ Prepare a data source where two rows share the same sheet name + var dataSource = new[] + { + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } + }; + + // 4️⃣ Allow duplicate sheet names – the library will add "_1", "_2", … + var smartMarkerOptions = new SmartMarkerOptions + { + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed + }; + + // 5️⃣ Process the smart‑markers; this creates the detail sheets + masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); + + // 6️⃣ Save the workbook as an XLSX file + string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Verwacht resultaat:** Open `DuplicateDetailSheets.xlsx` en je ziet drie werkbladen—`Master`, `Detail` en `Detail_1`. Elk detailblad is een exacte kopie van de master, klaar om later met rij‑specifieke gegevens te vullen. + +--- + +## Veelgestelde vragen & randgevallen + +### Wat als ik meer dan twee dubbele bladen nodig heb? + +Geen probleem. Dezelfde `DuplicateAllowed`‑instelling blijft incrementele nummers toevoegen (`Detail_2`, `Detail_3`, …) totdat elke rij zijn eigen tabblad heeft. + +### Kan ik het achtervoegsel‑formaat aanpassen? + +Standaard gebruikt Aspose.Cells een onderstrepingsteken gevolgd door een numerieke index. Als je een ander patroon nodig hebt (bijv. “Detail‑A”, “Detail‑B”), moet je de werkmap na het uitvoeren van `Process` nabewerken, door `workbook.Worksheets` te itereren en de namen naar wens aan te passen. + +### Werkt deze aanpak met grote datasets (honderden rijen)? + +Ja, maar houd het geheugenverbruik in de gaten. Elk gegenereerd blad is een volledige kopie van de master, dus een enorm aantal rijen kan de bestandsgrootte snel doen toenemen. Als je slechts enkele rijen per blad nodig hebt, overweeg dan `SmartMarkerOptions.RemoveEmptyRows = true` te gebruiken om overtollige cellen te verwijderen. + +### Is het gegenereerde bestand echt een XLSX‑bestand? + +Absoluut. De `Save`‑methode schrijft het Open XML‑pakket dat Excel verwacht. Je kunt het bestand zelfs openen met LibreOffice of Google Sheets zonder enige conversie. + +--- + +## Tips voor productie‑klare code + +| Tip | Waarom het belangrijk is | +|-----|--------------------------| +| **Dispose `Workbook + +{{< /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/dutch/net/formulas-functions/_index.md b/cells/dutch/net/formulas-functions/_index.md index 80b92661b6..f4a949b7f0 100644 --- a/cells/dutch/net/formulas-functions/_index.md +++ b/cells/dutch/net/formulas-functions/_index.md @@ -102,6 +102,10 @@ Leer hoe u de taal van uw Excel-bestanden kunt specificeren met Aspose.Cells .NE ### [Excel Power Query-formules bijwerken met Aspose.Cells .NET](./update-power-query-formulas-aspose-cells-net) Leer hoe u Power Query-formules in Excel-werkmappen programmatisch kunt bijwerken met Aspose.Cells voor .NET. Beheer van hoofdgegevensbronnen voor dynamische rapportage. +### [Hoe WRAPCOLS te gebruiken in C# – Maak Excel-werkmap met Wrap-functies](./how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/) + +### [Maak Excel-werkmap C# – Lambda, SEQUENCE & EXPAND-gids](./create-excel-workbook-c-lambda-sequence-expand-guide/) + ## Inzicht in Excel-formuletypen Excel-formules zijn er in verschillende vormen, elk met unieke kenmerken die Aspose.Cells kan beheren: diff --git a/cells/dutch/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md b/cells/dutch/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md new file mode 100644 index 0000000000..f8c80e7e32 --- /dev/null +++ b/cells/dutch/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-30 +description: Maak een Excel-werkmap in C# met Aspose.Cells. Leer hoe je de lambda-functie + in Excel toepast, de sequence-functie in Excel gebruikt, een array in Excel uitbreidt, + en de werkmap opslaat als xlsx. +draft: false +keywords: +- create excel workbook c# +- lambda function excel +- save workbook as xlsx +- sequence function excel +- expand array excel +language: nl +og_description: Maak snel een Excel-werkmap in C#. Deze gids laat zien hoe je de lambda‑functie + in Excel, de sequentiefunctie in Excel, de array‑uitbreiding in Excel kunt gebruiken + en de werkmap als xlsx opslaat. +og_title: Maak Excel-werkmap C# – Lambda, SEQUENCE & EXPAND gids +tags: +- Aspose.Cells +- C# +- Excel automation +title: Excel-werkmap maken in C# – Lambda, SEQUENCE & EXPAND‑gids +url: /nl/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel-werkmap maken C# – Lambda, SEQUENCE & EXPAND gids + +Heb je ooit een **Excel-werkmap C#** moeten maken voor een geautomatiseerd rapport, maar wist je niet welke API‑aanroepen je moest gebruiken? Je bent niet de enige—veel ontwikkelaars lopen tegen dezelfde muur aan wanneer ze voor het eerst programmatiche Excel‑generatie proberen. In deze gids zie je een volledig, uitvoerbaar voorbeeld dat alles behandelt, van de nieuwe **SEQUENCE‑functie Excel** tot de krachtige **LAMBDA‑functie Excel**, en zelfs hoe je **array‑resultaten Excel uitbreidt**. + +We laten je ook precies zien hoe je de **werkmap opslaat als xlsx** zodat je het bestand kunt doorgeven aan iedereen die Excel gebruikt. Aan het einde van deze tutorial heb je een solide, productie‑klare snippet die je in elk .NET‑project kunt plaatsen. Geen vage “zie de docs”‑links—alleen code die vandaag werkt. + +## Wat je nodig hebt + +- **.NET 6.0 of later** – het voorbeeld richt zich op .NET 6, maar elke recente versie werkt. +- **Aspose.Cells for .NET** – installeer via NuGet (`Install-Package Aspose.Cells`). +- Een basisbegrip van C#‑syntaxis (variabelen, objecten en lambda‑expressies). +- Een IDE waar je je prettig bij voelt (Visual Studio, Rider of VS Code). + +Dat is alles. Geen extra COM‑interop, geen Office geïnstalleerd op de server—Aspose.Cells regelt alles in het geheugen. + +## Excel-werkmap maken C# – Stapsgewijze implementatie + +Hieronder splitsen we het proces op in hapklare stappen. Elke stap heeft een duidelijke kop, een kort code‑fragment en een uitleg **waarom** we het doen. Voel je vrij om het volledige blok aan het einde te kopiëren en als console‑app uit te voeren. + +### Stap 1 – Een nieuwe werkmap initialiseren + +Allereerst hebben we een lege workbook‑object nodig dat het Excel‑bestand in het geheugen vertegenwoordigt. + +```csharp +using Aspose.Cells; + +// Step 1: Create a new workbook and get the first worksheet +Workbook workbook = new Workbook(); // empty workbook +Worksheet sheet = workbook.Worksheets[0]; // default first sheet +``` + +*Waarom dit belangrijk is:* `Workbook` is het toegangspunt voor alle Aspose.Cells‑bewerkingen. Door het eerste `Worksheet` te pakken, krijgen we een canvas waarop we formules, waarden of opmaak kunnen schrijven. + +> **Pro tip:** Als je meerdere bladen nodig hebt, roep dan gewoon `workbook.Worksheets.Add()` aan en houd een referentie naar elk blad. + +### Stap 2 – De SEQUENCE‑functie Excel gebruiken om data te genereren + +De **sequence‑function excel** maakt een dynamische array van getallen zonder enige VBA. We plaatsen deze in cel `A1` en laten Excel deze automatisch uitbreiden. + +```csharp +// Step 2: Generate a 5‑row, 1‑column array from a SEQUENCE +sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; // 1..3 padded with blanks +``` + +*Waarom dit belangrijk is:* `SEQUENCE(3)` levert `[1,2,3]`. Door het te omhullen met `EXPAND` dwingen we het resultaat naar een bereik van 5 rijen, waarbij de extra rijen leeg blijven. Dit demonstreert zowel **sequence‑function excel** als **expand‑array excel** in één stap. + +### Stap 3 – Getallen aggregeren met de LAMBDA‑functie Excel + +Laten we nu de mogelijkheden van de **lambda‑function excel** laten zien. We sommeren de getallen 1‑5 met de nieuwe `REDUCE`‑functie, die intern een lambda gebruikt. + +```csharp +// Step 3: Aggregate a sequence (sum 1..5) using REDUCE/LAMBDA +sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; // result = 15 +``` + +*Waarom dit belangrijk is:* `REDUCE` iterereert over de array die door `SEQUENCE(5)` wordt geproduceerd, en geeft elk element (`b`) samen met de accumulator (`a`) door aan de lambda. De lambda `a+b` telt ze op, waardoor `15` in `B1` terechtkomt. Dit is een nette, alleen‑formule‑manier om reducties uit te voeren zonder te loopen in C#. + +### Stap 4 – Trigonometrische functies direct in cellen toepassen + +De ingebouwde wiskundige functies van Excel zijn handig voor snelle berekeningen. We plaatsen een cotangens en een hyperbolische cotangens in aangrenzende cellen. + +```csharp +// Step 4: Trigonometric functions directly in Excel cells +sheet["C1"].Formula = "COT(PI()/4)"; // evaluates to 1 +sheet["D1"].Formula = "COTH(1)"; // hyperbolic cotangent of 1 +``` + +*Waarom dit belangrijk is:* Laat zien dat je klassieke wiskundige functies kunt combineren met de nieuwere dynamische‑array‑formules. Geen noodzaak om deze waarden in C# te berekenen, tenzij je een specifieke prestatie‑reden hebt. + +### Stap 5 – Alle formules berekenen + +Aspose.Cells evalueert formules niet automatisch wanneer je ze instelt. Je moet het expliciet vragen om te berekenen. + +```csharp +// Step 5: Force calculation so that cells store the results +workbook.CalculateFormula(); +``` + +*Waarom dit belangrijk is:* Na deze aanroep bevat de `Value`‑eigenschap van elke cel het berekende resultaat, klaar om opgeslagen of opnieuw gelezen te worden. + +### Stap 6 – De werkmap opslaan als Xlsx + +Tot slot slaan we de werkmap op schijf op met het **save workbook as xlsx**‑patroon. + +```csharp +// Step 6: Save the workbook to an Excel file (XLSX format) +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + +workbook.Save(outputPath); +Console.WriteLine($"Workbook saved to: {outputPath}"); +``` + +*Waarom dit belangrijk is:* De `Save`‑methode detecteert automatisch de bestandsextensie. Door “.xlsx” te gebruiken, zorgen we ervoor dat het bestand compatibel is met moderne Excel‑versies. Het pad wijst naar het bureaublad voor gemakkelijke toegang tijdens het testen. + +### Volledig werkend voorbeeld + +Hieronder staat het complete programma dat je in een nieuw console‑project kunt plakken. Het bevat alle bovenstaande stappen, plus een klein verificatie‑blok dat de berekende waarden naar de console schrijft. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialize workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + + // SEQUENCE + EXPAND + sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; + + // REDUCE with LAMBDA + sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; + + // Trig functions + sheet["C1"].Formula = "COT(PI()/4)"; + sheet["D1"].Formula = "COTH(1)"; + + // Calculate formulas + workbook.CalculateFormula(); + + // Verify results (optional) + Console.WriteLine("A1‑A5 (expanded SEQUENCE):"); + for (int i = 0; i < 5; i++) + { + Console.WriteLine($" Row {i + 1}: {sheet.Cells[i, 0].Value ?? "blank"}"); + } + Console.WriteLine($"B1 (sum 1‑5): {sheet["B1"].Value}"); + Console.WriteLine($"C1 (cot(π/4)): {sheet["C1"].Value}"); + Console.WriteLine($"D1 (coth(1)): {sheet["D1"].Value}"); + + // Save workbook + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + workbook.Save(outputPath); + Console.WriteLine($"Workbook saved to: {outputPath}"); + } +} +``` + +**Verwachte uitvoer in de console** + +``` +A1‑A5 (expanded SEQUENCE): + Row 1: 1 + Row 2: 2 + Row 3: 3 + Row 4: blank + Row 5: blank +B1 (sum 1‑5): 15 +C1 (cot(π/4)): 1 +D1 (coth(1)): 1.31303528549933 +Workbook saved to: C:\Users\YourName\Desktop\NewFunctions.xlsx +``` + +En wanneer je *NewFunctions.xlsx* opent, zie je dezelfde cijfers in de eerste vier kolommen. + +![screenshot van de resulterende spreadsheet van het maken van een Excel-werkmap c#](/images/create-excel-workbook-csharp.png) + +## Randgevallen, tips en veelgestelde vragen + +- **Wat als ik meer dan één blad nodig heb?** + Roep gewoon `workbook.Worksheets.Add()` aan en herhaal de formule‑toewijzingen op elk nieuw `Worksheet`‑object. + +- **Kan ik oudere Excel‑versies gebruiken?** + De dynamische‑array‑functies (`SEQUENCE`, `EXPAND`, `REDUCE`) vereisen Excel 365 of Excel 2021+. Als je oudere versies target, blijf dan bij klassieke formules of bereken de waarden in C# voordat je ze schrijft. + +- **Prestatiezorgen?** + Voor duizenden rijen is het meestal sneller om formules op een bereik in te stellen en vervolgens `CalculateFormula` aan te roepen dan om één‑voor‑één te loopen en waarden toe te wijzen. + +- **Opslaan naar een stream in plaats van een bestand?** + `work + +{{< /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/dutch/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md b/cells/dutch/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md new file mode 100644 index 0000000000..305e8b7191 --- /dev/null +++ b/cells/dutch/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md @@ -0,0 +1,212 @@ +--- +category: general +date: 2026-03-30 +description: Leer hoe je WRAPCOLS in C# kunt gebruiken om een Excel‑werkmap te maken, + gegevens aan Excel toe te voegen en de formuleberekening te forceren, terwijl je + ook WRAPROWS gebruikt. +draft: false +keywords: +- how to use wrapcols +- create excel workbook c# +- add data to excel +- force formula calculation +- how to use wraprows +language: nl +og_description: Ontdek hoe je WRAPCOLS in C# kunt gebruiken om een Excel-werkmap te + maken, gegevens toe te voegen, de berekening van formules af te dwingen en WRAPROWS + te benutten voor matrixformules. +og_title: Hoe WRAPCOLS in C# te gebruiken – Complete gids +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Hoe WRAPCOLS te gebruiken in C# – Maak een Excel-werkmap met wrap-functies +url: /nl/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hoe WRAPCOLS te gebruiken in C# – Maak Excel-werkmap met Wrap-functies + +Heb je je ooit afgevraagd **hoe je WRAPCOLS kunt gebruiken** wanneer je Excel automatiseert met C#? Je bent niet de enige—veel ontwikkelaars lopen tegen een muur aan wanneer ze een horizontaal bereik moeten omzetten naar een verticale array zonder een hoop code te schrijven. Het goede nieuws is dat Aspose.Cells het kinderspel maakt. + +In deze tutorial lopen we een compleet, uitvoerbaar voorbeeld door dat laat zien **hoe je WRAPCOLS kunt gebruiken**, hoe je **een Excel-werkmap C#**‑stijl **maakt**, hoe je **gegevens toevoegt aan Excel**, en zelfs hoe je **formuleberekening forceert** zodat de resultaten meteen verschijnen. We strooien er ook **hoe je WRAPROWS kunt gebruiken** door voor de tegenovergestelde transformatie. Aan het einde heb je een kant‑klaar programma en een duidelijk begrip van waarom elke stap belangrijk is. + +--- + +![How to use WRAPCOLS in C# example](alt="Screenshot showing Excel workbook after using WRAPCOLS in C#") + +## Wat deze gids behandelt + +* Een verse werkmap opzetten met Aspose.Cells. +* Cellen programmatically vullen (**gegevens toevoegen aan Excel**). +* De `WRAPCOLS`‑functie toepassen om een rij in een kolom te veranderen. +* `WRAPROWS` gebruiken om een kolom terug in een rij te draaien (**hoe je wraprows gebruikt**). +* De engine dwingen om formules direct te evalueren (**force formula calculation**). +* Het bestand opslaan en de output controleren. + +Geen externe documentatie nodig—alles wat je nodig hebt staat hier. + +--- + +## Hoe WRAPCOLS te gebruiken in C# – Stapsgewijze implementatie + +Hieronder staat het volledige bronbestand. Voel je vrij om het te kopiëren‑plakken in een nieuw console‑project, het Aspose.Cells NuGet‑pakket toe te voegen, en op **F5** te drukken. + +```csharp +// ------------------------------------------------------------ +// How to Use WRAPCOLS in C# – Complete Example +// ------------------------------------------------------------ +using System; +using Aspose.Cells; + +namespace WrapFunctionsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a fresh workbook (this is how we **create excel workbook c#** style) + Workbook workbook = new Workbook(); + + // 2️⃣ Grab the first worksheet – it's created by default + Worksheet sheet = workbook.Worksheets[0]; + + // 3️⃣ **Add data to Excel**: place two numbers side‑by‑side + sheet.Cells["A1"].PutValue(1); // first value + sheet.Cells["B1"].PutValue(2); // second value + + // 4️⃣ **How to use WRAPCOLS** – turn the horizontal range A1:B1 into a vertical array + // The second argument (1) tells WRAPCOLS to create 1 column per element. + sheet["C1"].Formula = "WRAPCOLS(A1:B1, 1)"; + + // 5️⃣ **How to use WRAPROWS** – the opposite; turn the same range into a horizontal array + // Here we ask for 2 rows per element, which produces a single row with both values. + sheet["C2"].Formula = "WRAPROWS(A1:B1, 2)"; + + // 6️⃣ **Force formula calculation** so the workbook reflects the results immediately + workbook.CalculateFormula(); + + // 7️⃣ Save the workbook to disk – change the path to a folder you own + string outputPath = @"WrapFunctions.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + Console.WriteLine("Check cells C1 and C2 for the WRAPCOLS / WRAPROWS results."); + } + } +} +``` + +### Waarom elke regel belangrijk is + +| Stap | Uitleg | +|------|--------| +| **1️⃣ Create a fresh workbook** | Dit is de basis. Aspose.Cells behandelt een `Workbook`‑object als het volledige Excel‑bestand, dus je **maakt een Excel-werkmap C#**‑stijl. | +| **2️⃣ Grab the first worksheet** | Een nieuwe werkmap bevat altijd minstens één werkblad (`Worksheets[0]`). Vroegtijdig toegang krijgen voorkomt null‑reference‑verrassingen. | +| **3️⃣ Add data to Excel** | Door `PutValue` te gebruiken **voegen we gegevens toe aan Excel** zonder ons zorgen te maken over celopmaak. De getallen `1` en `2` zijn onze testdata voor de wrap‑functies. | +| **4️⃣ How to use WRAPCOLS** | `WRAPCOLS(A1:B1, 1)` vertelt Excel om het bereik `A1:B1` verticaal te “spillen”, één waarde per rij. Het resultaat belandt in `C1` en “spilt” naar beneden (`C1`, `C2`, …). | +| **5️⃣ How to use WRAPROWS** | `WRAPROWS(A1:B1, 2)` doet het tegenovergestelde: het maakt een horizontale “spill”, waarbij de twee waarden in één rij worden geplaatst beginnend bij `C2`. | +| **6️⃣ Force formula calculation** | Standaard kan Aspose.Cells de berekening uitstellen tot het bestand in Excel wordt geopend. Het aanroepen van `CalculateFormula()` **forceert formuleberekening** zodat je de resultaten meteen na het opslaan kunt lezen. | +| **7️⃣ Save the workbook** | De laatste stap schrijft alles naar schijf. Open de resulterende `WrapFunctions.xlsx` om het resultaat te zien. | + +--- + +## Excel-werkmap maken C# – De omgeving instellen + +Voordat je de code uitvoert, zorg dat je de juiste tools hebt: + +1. **.NET 6.0+** – De nieuwste LTS‑versie werkt het beste. +2. **Visual Studio 2022** (of VS Code met de C#‑extensie). +3. **Aspose.Cells for .NET** – Installeer via NuGet: + ```bash + dotnet add package Aspose.Cells + ``` +4. Een beschrijfbare map voor het uitvoerbestand. + +Deze vereisten zijn minimaal; er is geen COM‑interop of Office‑installatie nodig, waardoor Aspose.Cells een populaire keuze is voor server‑side Excel‑generatie. + +--- + +## Gegevens toevoegen aan Excel – Best practices + +Wanneer je **gegevens toevoegt aan Excel** programmatically, houd dan rekening met deze tips: + +* **Gebruik `PutValue`** voor ruwe getallen of strings; het detecteert automatisch het gegevenstype. +* **Vermijd hard‑coded celadressen** in grote projecten—gebruik loops of benoemde bereiken voor schaalbaarheid. +* **Stel celstijlen spaarzaam in**; elke stijlwijziging brengt overhead met zich mee. Als je opmaak nodig hebt, maak dan één stijlobject aan en pas het toe op meerdere cellen. + +In ons kleine voorbeeld voegen we slechts twee getallen in, maar hetzelfde patroon schaalt naar duizenden rijen. + +--- + +## Hoe WRAPROWS te gebruiken – Horizontaal array‑voorbeeld + +Als je het tegenovergestelde van `WRAPCOLS` nodig hebt, is `WRAPROWS` jouw go‑to. De syntaxis is: + +``` +WRAPROWS(source_range, [rows_per_item]) +``` + +* `source_range` – het bereik dat je wilt transformeren. +* `rows_per_item` – optioneel; geeft aan hoeveel rijen elk element inneemt. In onze demo gebruikten we `2` om beide waarden op één rij te forceren. + +Je kunt experimenteren door het tweede argument te wijzigen: + +```csharp +// Example: split each value into its own column, three rows per item +sheet["D1"].Formula = "WRAPROWS(A1:B1, 3)"; +``` + +Open de werkmap en je zult zien dat de waarden over drie kolommen “spillen”, waarbij elke kolom de oorspronkelijke getallen bevat zoals nodig. + +--- + +## Formuleberekening forceren – Wanneer en waarom + +Je vraagt je misschien af: “Moet ik echt `CalculateFormula()` aanroepen?” Het antwoord is **ja**, als: + +* Je van plan bent berekende waarden **programmatically** te lezen na het opslaan. +* Je wilt garanderen dat het bestand in Excel opent met de juiste resultaten al weergegeven. +* Je draait in een **headless‑omgeving** (bijv. een web‑API) waar geen gebruiker handmatig een herberekening triggert. + +Het overslaan van deze stap breekt de werkmap niet, maar de cellen tonen dan de formule‑tekst (`=WRAPCOLS(...)`) in plaats van de berekende waarden totdat Excel herberekent. + +--- + +## Verwachte output – Waar op te letten + +Na het uitvoeren van het programma en het openen van `WrapFunctions.xlsx`: + +| Cel | Formule | Weergegeven waarde | +|------|---------|--------------------| +| **C1** | `=WRAPCOLS(A1:B1, 1)` | `1` (in C1) en `2` (in C2) – een verticale lijst | +| **C2** | `=WRAPROWS(A1:B1, 2)` | `1` in C2 en `2` in D2 – een horizontale lijst | + +Dus je ziet een kolom waarden beginnend bij **C1** en een rij waarden beginnend bij **C2**. Dit bevestigt dat beide wrap‑functies zich gedragen zoals verwacht. + +--- + +## Randgevallen & variaties + +| Scenario | Wat verandert er? | Aanbevolen aanpassing | +|----------|-------------------|-----------------------| +| **Groot bereik (A1:Z1)** | Meer waarden die verticaal moeten “spillen” | Verhoog het tweede argument van `WRAPCOLS` als je meerdere kolommen per groep wilt. | +| **Niet‑numerieke data** | Strings worden op dezelfde manier behandeld | Geen code‑wijziging; `PutValue` accepteert elk object. | +| **Dynamisch bereik** | Je kent de grootte niet op compile‑tijd | Gebruik `sheet.Cells.MaxDataColumn` en `MaxDataRow` om de adres‑string op te bouwen. | +| **Meerdere werkbladen** | Je moet wrap‑functies op verschillende bladen toepassen | Verwijs naar het juiste werkblad (`workbook.Worksheets["Sheet2"]`). | + +--- + +## Pro‑tips uit de praktijk + +* **Pro tip:** Plaats de creatie van de werkmap in een `using`‑block als je richt op .NET Core 3.1+ om ervoor te zorgen dat alle resources tijdig worden vrijgegeven. +* **Let op:** Het instellen van dezelfde formule in een groot bereik zonder `CalculateFormula()` aan te roepen kan prestatie‑knelpunten veroorzaken. Verwerk formules in batches wanneer mogelijk. +* **Tip:** Als je de berekende waarden terug in code moet lezen, roep dan ` + +{{< /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/dutch/net/tables-and-lists/_index.md b/cells/dutch/net/tables-and-lists/_index.md index 425cc06e90..e9466349cd 100644 --- a/cells/dutch/net/tables-and-lists/_index.md +++ b/cells/dutch/net/tables-and-lists/_index.md @@ -47,6 +47,8 @@ Leer hoe u Excel-tabellen naar ODS kunt converteren met Aspose.Cells voor .NET m Converteer Excel-tabellen eenvoudig naar bereiken met Aspose.Cells voor .NET. Volg onze stapsgewijze handleiding om uw gegevensmanipulatie een fluitje van een cent te maken. ### [Converteer tabel naar bereik met opties](./converting-table-to-range-with-options/) Converteer tabellen eenvoudig naar bereiken in Excel met Aspose.Cells voor .NET, met stapsgewijze instructies. Verbeter uw vaardigheden in Excel-gegevensmanipulatie. +### [Tabel maken vanuit bereik in C# – Complete Aspose.Cells-tutorial](./create-table-from-range-in-c-complete-aspose-cells-tutorial/) +Leer stap voor stap hoe u in C# een tabel maakt vanuit een bereik met Aspose.Cells. ### [Lees- en schrijftabel met querygegevensbron](./reading-and-writing-table-with-query-data-source/) Ontdek de kracht van Aspose.Cells voor .NET. Leer tabellen lezen en schrijven met querygegevensbronnen in deze gedetailleerde stapsgewijze handleiding. ### [Opmerking van tabel of lijst in Excel instellen](./setting-comment-of-table-or-list/) diff --git a/cells/dutch/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md b/cells/dutch/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md new file mode 100644 index 0000000000..1b4debf7e4 --- /dev/null +++ b/cells/dutch/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md @@ -0,0 +1,231 @@ +--- +category: general +date: 2026-03-30 +description: Tabel maken van bereik in C# met Aspose.Cells – gegevens toevoegen aan + cellen, bereik converteren naar ListObject en Excel opslaan zonder filter. +draft: false +keywords: +- create table from range +- create excel workbook c# +- add data to cells +- convert range to listobject +- save excel without filter +language: nl +og_description: Maak een tabel van een bereik in C# met Aspose.Cells. Leer hoe je + gegevens aan cellen toevoegt, een bereik converteert naar een ListObject en Excel + opslaat zonder filter. +og_title: Tabel maken vanuit bereik in C# – Complete Aspose.Cells tutorial +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Tabel maken vanuit bereik in C# – Complete Aspose.Cells‑tutorial +url: /nl/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tabel maken vanuit bereik in C# – Complete Aspose.Cells tutorial + +Heb je ooit moeten **create table from range** in C# maar wist je niet hoe je een eenvoudige gegevensblok in een volledig uitgeruste Excel‑tabel kon omzetten? Je bent niet de enige. Of je nu rapporten automatiseert, scorekaarten genereert, of gewoon gegevens opschoont voor downstream‑analyse, het beheersen van deze kleine truc kan je veel handmatig werk besparen. + +In deze gids lopen we het volledige proces door: **create excel workbook c#**, **add data to cells**, **convert range to ListObject**, en uiteindelijk **save excel without filter**. Aan het einde heb je een kant‑klaar fragment dat je in elk .NET‑project dat Aspose.Cells gebruikt, kunt plaatsen. + +--- + +## Vereisten + +- .NET 6+ (of .NET Framework 4.7.2+) geïnstalleerd +- Aspose.Cells voor .NET (NuGet‑pakket `Aspose.Cells`) – de nieuwste versie op het moment van schrijven (23.10) werkt perfect. +- Een basisbegrip van C#‑syntaxis – geen diepgaande Excel‑interop‑kennis vereist. + +Als je dat hebt, laten we beginnen. + +--- + +## Stap 1: Een Excel‑werkmap maken in C# + +Eerst hebben we een nieuw workbook‑object nodig. Beschouw dit als het lege Excel‑bestand dat uiteindelijk onze tabel zal bevatten. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is equivalent to opening a blank .xlsx file. +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (default) worksheet. +``` + +> **Pro tip:** `Workbook()` zonder argumenten maakt een workbook met één standaardwerkblad, wat perfect is voor snelle demo's. Als je meerdere bladen nodig hebt, kun je ze later toevoegen met `workbook.Worksheets.Add()`. + +--- + +## Stap 2: Gegevens toevoegen aan cellen + +Nu vullen we het blad met een kleine dataset – twee kolommen (Name, Score) en drie rijen met waarden. Dit demonstreert **add data to cells** op een nette, leesbare manier. + +```csharp +// Header row +worksheet.Cells["A1"].PutValue("Name"); +worksheet.Cells["B1"].PutValue("Score"); + +// Data rows +worksheet.Cells["A2"].PutValue("Alice"); +worksheet.Cells["B2"].PutValue(85); +worksheet.Cells["A3"].PutValue("Bob"); +worksheet.Cells["B3"].PutValue(92); +``` + +Waarom `PutValue` gebruiken? Het detecteert automatisch het gegevenstype (string vs. numeriek) en formatteert de cel dienovereenkomstig, waardoor je niet met `Style`‑objecten hoeft te rommelen voor eenvoudige scenario's. + +> **Verwachte output:** Na deze stap, als je de workbook in Excel opent, zie je een raster van twee kolommen met de koppen “Name” en “Score”, gevolgd door twee rijen met gegevens. + +--- + +## Stap 3: Het bereik omzetten naar een ListObject (tabel) + +Hier gebeurt de magie: dat eenvoudige bereik omzetten in een Excel‑tabel (genaamd een **ListObject** in de Aspose.Cells‑API). Dit voegt niet alleen visuele opmaak toe, maar maakt ook ingebouwde functies mogelijk zoals sorteren, filteren en gestructureerde verwijzingen. + +```csharp +// Define the range boundaries. +// startRow and startColumn are zero‑based indexes. +// rowCount includes the header row. +int startRow = 0; // Row 1 in Excel +int startColumn = 0; // Column A +int rowCount = 3; // Header + 2 data rows +int columnCount = 2; // Two columns: Name & Score + +// Add a ListObject to the worksheet and retrieve the object. +int listIndex = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); +ListObject table = worksheet.ListObjects[listIndex]; + +// Turn on the UI filter dropdowns so users can interact with the table. +table.ShowAutoFilter = true; +``` + +> **Waarom een ListObject gebruiken?** +> - **Structured references**: Formules kunnen naar kolommen verwijzen op naam. +> - **Auto‑filter UI**: Gebruikers krijgen dropdown‑pijltjes voor snelle filtering. +> - **Styling**: Je kunt later met één regel ingebouwde tabelstijlen toepassen. + +--- + +## Stap 4: De AutoFilter‑UI verwijderen (Excel opslaan zonder filter) + +Soms heb je een schoon blad nodig zonder filterpijltjes – bijvoorbeeld wanneer de workbook een eindrapport is. Aspose.Cells 23.10 introduceerde een eenvoudige manier om de filter‑UI volledig te verwijderen. + +```csharp +// Remove the filter UI completely. +table.AutoFilter = null; // Clears the underlying filter object. +table.ShowAutoFilter = false; // Hides the dropdown arrows. +``` + +Merk op dat we de gegevens niet verwijderen; we schakelen alleen de visuele filterbesturingen uit. Dit voldoet aan de **save excel without filter**‑vereiste. + +--- + +## Stap 5: De workbook opslaan + +Tot slot schrijf je de workbook naar schijf. Het bestand zal de tabel bevatten, maar zonder enige filter‑UI. + +```csharp +// Choose a folder you have write access to. +string outputPath = @"C:\Temp\NoAutoFilter.xlsx"; +workbook.Save(outputPath); +``` + +Open `NoAutoFilter.xlsx` in Excel – je ziet de tabel gestyled met de standaardopmaak, maar zonder filterpijltjes. De gegevens blijven intact, en het bestand is klaar voor distributie. + +--- + +![Screenshot showing create table from range in Excel using Aspose.Cells](image.png "Create table from range screenshot") + +*Image alt text:* **Schermafbeelding die het maken van een tabel vanuit bereik in Excel met Aspose.Cells toont** – visueel bewijs dat de tabel bestaat zonder filter‑dropdowns. + +--- + +## Volledig, uitvoerbaar voorbeeld + +Hieronder staat het volledige programma dat je kunt kopiëren‑plakken in een console‑applicatie. Het bevat alle bovenstaande stappen, plus een paar extra opmerkingen voor duidelijkheid. + +```csharp +using System; +using Aspose.Cells; + +namespace AsposeTableDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add data to cells – this is the “add data to cells” part. + worksheet.Cells["A1"].PutValue("Name"); + worksheet.Cells["B1"].PutValue("Score"); + worksheet.Cells["A2"].PutValue("Alice"); + worksheet.Cells["B2"].PutValue(85); + worksheet.Cells["A3"].PutValue("Bob"); + worksheet.Cells["B3"].PutValue(92); + + // 3️⃣ Convert the range into a ListObject (i.e., create table from range). + int startRow = 0, startColumn = 0, rowCount = 3, columnCount = 2; + int listIdx = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); + ListObject table = worksheet.ListObjects[listIdx]; + table.ShowAutoFilter = true; // optional UI filter + + // 4️⃣ Remove the AutoFilter UI – “save excel without filter”. + table.AutoFilter = null; + table.ShowAutoFilter = false; + + // 5️⃣ Save the workbook. + string filePath = @"C:\Temp\NoAutoFilter.xlsx"; + workbook.Save(filePath); + + Console.WriteLine($"Workbook saved to {filePath}"); + } + } +} +``` + +Voer het programma uit en open vervolgens `C:\Temp\NoAutoFilter.xlsx`. Je ziet een mooi opgemaakte tabel, geen filterpijltjes, en de gegevens die we hebben ingevoerd. Dat is de volledige **create excel workbook c#**‑workflow in minder dan 60 regels code. + +--- + +## Veelgestelde vragen & randgevallen + +**Q: Wat als mijn gegevensbereik niet aaneengesloten is?** +A: Aspose.Cells vereist een rechthoekig bereik voor `ListObjects.Add`. Als je niet‑aaneengesloten gegevens hebt, bouw dan eerst een tijdelijk bereik (bijv. kopieer de delen naar een nieuw werkblad) en zet dat bereik vervolgens om. + +**Q: Kan ik een aangepaste tabelstijl toepassen?** +A: Zeker. Na het maken van de `ListObject`, stel `table.TableStyleType = TableStyleType.TableStyleMedium9;` in (of een van de 65 ingebouwde stijlen). Dit is een handige manier om de tabel aan te laten sluiten bij je bedrijfsbranding. + +**Q: Hoe houd ik het filter maar verberg ik de pijltjes?** +A: De filterlogica zit in `table.AutoFilter`. Het instellen van `ShowAutoFilter = false` verbergt alleen de UI; het onderliggende filter blijft bestaan. Dus je kunt later nog steeds programmatisch rijen filteren. + +**Q: Hoe zit het met grote datasets (10k+ rijen)?** +A: Dezelfde API werkt, maar overweeg automatische berekeningen uit te schakelen (`workbook.CalcEngine = false`) vóór bulk‑invoegingen voor betere prestaties, en schakel ze daarna weer in. + +--- + +## Samenvatting + +We hebben zojuist behandeld hoe je **create table from range** in C# kunt gebruiken met Aspose.Cells, stap voor stap — van **create excel workbook c#**, via **add data to cells**, naar **convert range to ListObject**, en uiteindelijk **save excel without filter**. De code is compleet, uitvoerbaar en klaar voor productie. + +Vervolgens kun je overwegen om: + +- Voorwaardelijke opmaak toevoegen om de hoogste scores te markeren. +- De workbook exporteren naar PDF met `workbook.Save("Report.pdf", SaveFormat.Pdf);`. +- `table.Columns["Score"].DataBodyRange.Sort` gebruiken om de tabel programmatisch te sorteren. + +Voel je vrij om te experimenteren met verschillende datasets, tabelstijlen, of zelfs meerdere werkbladen. De API is flexibel genoeg om alles aan te kunnen, van een kleine scoretabel tot een enorme financiële grootboek. + +Heb je vragen of loop je tegen een probleem aan? Laat een reactie achter hieronder of stuur me een bericht op GitHub. Veel plezier met coderen, en geniet van het omzetten van ruwe bereiken in gepolijste Excel‑tabellen! + +{{< /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/english/net/conversion-to-pdf/_index.md b/cells/english/net/conversion-to-pdf/_index.md index 0d2f0fd563..c074d1ecc2 100644 --- a/cells/english/net/conversion-to-pdf/_index.md +++ b/cells/english/net/conversion-to-pdf/_index.md @@ -34,6 +34,8 @@ But wait, there's more! What if you want to convert charts from your Excel sheet Convert Excel spreadsheets to PDF easily with Aspose.Cells for .NET! Follow our step-by-step guide for a seamless experience. ### [Convert Chart to PDF in .NET](./convert-chart-to-pdf/) Learn how to convert Excel charts to PDF in .NET using Aspose.Cells with this step-by-step guide! Perfect for programmers of all levels. +### [Save workbook as pdf with Aspose.Cells – Complete Step‑by‑Step Guide](./save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/) +Learn how to save an Excel workbook as PDF using Aspose.Cells with a comprehensive step‑by‑step guide. {{< /blocks/products/pf/tutorial-page-section >}} @@ -41,4 +43,4 @@ Learn how to convert Excel charts to PDF in .NET using Aspose.Cells with this st {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/english/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md b/cells/english/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md new file mode 100644 index 0000000000..36a6ff2fda --- /dev/null +++ b/cells/english/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-03-30 +description: Learn how to save workbook as pdf using Aspose.Cells. This tutorial also + covers export worksheet to pdf, how to export excel to pdf and create pdf from worksheet. +draft: false +keywords: +- save workbook as pdf +- export worksheet to pdf +- how to export excel to pdf +- save excel as pdf +- create pdf from worksheet +language: en +og_description: Save workbook as pdf easily. This guide shows how to export worksheet + to pdf, how to export excel to pdf and create pdf from worksheet using C#. +og_title: Save workbook as pdf with Aspose.Cells – Complete Guide +tags: +- Aspose.Cells +- C# +- PDF generation +title: Save workbook as pdf with Aspose.Cells – Complete Step‑by‑Step Guide +url: /net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Save workbook as pdf – Complete Step‑by‑Step Guide + +Ever needed to **save workbook as pdf** but weren't sure which library would keep your numbers intact? You're not alone. In many projects we have to turn Excel data into a polished PDF, and doing it the right way saves hours of debugging. + +In this tutorial we’ll walk through the exact code you need to **save workbook as pdf** with Aspose.Cells, and along the way we’ll also show you how to **export worksheet to pdf**, answer *how to export excel to pdf* questions, and demonstrate a clean way to **create pdf from worksheet** with custom precision settings. + +By the end of the guide you’ll have a ready‑to‑run C# console app that produces a PDF containing only the significant digits you care about. No extra fluff, just a solid, production‑ready solution. + +--- + +## What You’ll Learn + +- How to set up a new `Workbook` and target its first worksheet. +- The exact method to **save workbook as pdf** while preserving numeric precision. +- Why the `SignificantDigits` property matters when you **export worksheet to pdf**. +- Common pitfalls when you try to **how to export excel to pdf** and how to avoid them. +- Quick ways to **save excel as pdf** with different page options, and how to **create pdf from worksheet** programmatically. + +### Prerequisites + +- .NET 6.0 or later (the code works with .NET Framework 4.5+ as well). +- A valid Aspose.Cells license (or a free temporary license for testing). +- Visual Studio 2022 or any C#‑compatible IDE. + +If you’ve got those basics covered, let’s dive in. + +--- + +## Step 1 – Install Aspose.Cells and Initialise the Workbook + +First things first: you need the Aspose.Cells NuGet package. Open a terminal in your project folder and run: + +```bash +dotnet add package Aspose.Cells +``` + +Once the package is installed, create a new `Workbook` object. This is the object you’ll eventually **save workbook as pdf**. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialise a fresh workbook – think of it as a blank Excel file. + Workbook workbook = new Workbook(); + + // Grab the first worksheet (index 0). This is where we’ll put our data. + Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Why this step?* +Creating the workbook gives you a clean canvas, and selecting the first worksheet ensures you’re working with a known location. Skipping this can lead to *null reference* errors when you later try to **export worksheet to pdf**. + +--- + +## Step 2 – Insert High‑Precision Data + +Now we’ll put a number that has more decimal places than we actually want to show in the PDF. This demonstrates how the `SignificantDigits` setting trims the output. + +```csharp + // Place a high‑precision number in cell A1. + worksheet.Cells["A1"].PutValue(1234.56789); +``` + +If you run the program now and simply call `workbook.Save("output.pdf")`, the PDF will show the full `1234.56789`. That’s fine for some cases, but often you need to round to a specific number of significant digits—especially for financial reports. + +--- + +## Step 3 – Configure PDF Save Options + +Aspose.Cells gives you fine‑grained control via `PdfSaveOptions`. The property we care about is `SignificantDigits`. Setting it to `4` tells the engine to keep only four significant figures when it **save workbook as pdf**. + +```csharp + // Configure PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 // This trims the number to 1235 in the PDF. + }; +``` + +*Why use `SignificantDigits`?* +When you **create pdf from worksheet**, you often need to obey regulatory rounding rules. This option does the rounding for you, so you don’t have to manually format each cell. + +--- + +## Step 4 – Export Worksheet to PDF with the Options + +Here’s the moment of truth: we actually **save workbook as pdf** using the options we just defined. + +```csharp + // Save the workbook as a PDF using the configured options. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + } +} +``` + +Running the program will generate a file called `SignificantDigits.pdf` in your project's output folder. Open it and you’ll see `1235` in cell A1 – the number has been rounded to four significant digits. + +*Key point:* The `Save` method takes both the file path and the `PdfSaveOptions`. If you omit the options, you’ll fall back to the default behavior, which may not meet your precision requirements. + +--- + +## Step 5 – Verify the Output and Troubleshoot Common Issues + +### Expected Result + +- A one‑page PDF named `SignificantDigits.pdf`. +- Cell A1 displays `1235` (four significant digits). +- No extra worksheets or hidden content appear. + +### Frequently Asked Questions + +| Question | Answer | +|----------|--------| +| **What if I need more than one worksheet?** | Loop through `workbook.Worksheets` and apply the same `PdfSaveOptions` when you save each sheet individually, or set `OnePagePerSheet = true` in the options. | +| **Can I keep the original number format?** | Yes – set `PdfSaveOptions.AllColumnsInOnePage = true` and let Excel’s formatting rules handle it, but remember that `SignificantDigits` will still override the numeric precision. | +| **Does this work with .xlsx files that already exist?** | Absolutely. Replace `new Workbook()` with `new Workbook("input.xlsx")` and the rest of the code stays the same. | +| **What if the PDF is blank?** | Verify that the workbook actually contains data and that you’re saving to a writable directory. Also, ensure the Aspose.Cells license is correctly applied; an unlicensed trial may limit output. | + +### Pro Tip + +If you need to **save excel as pdf** with a specific page orientation, set `pdfSaveOptions.PageSetup.Orientation = PageOrientation.Landscape;` before calling `Save`. This small tweak often saves you from having to manually adjust the PDF later. + +--- + +## Variations: Exporting Multiple Sheets or Custom Page Settings + +### Export All Sheets in One Call + +```csharp +PdfSaveOptions allSheetsOptions = new PdfSaveOptions +{ + SignificantDigits = 4, + OnePagePerSheet = true // Each worksheet gets its own page. +}; + +workbook.Save("AllSheets.pdf", allSheetsOptions); +``` + +### Export a Single Sheet as PDF + +If you only want to **export worksheet to pdf** for a specific sheet, use the `Worksheet` object's `ToPdf` method: + +```csharp +Worksheet sheet = workbook.Worksheets["Sheet2"]; +sheet.ToPdf("Sheet2.pdf", pdfSaveOptions); +``` + +### Adjust Page Margins + +```csharp +pdfSaveOptions.PageSetup.TopMargin = 20; +pdfSaveOptions.PageSetup.BottomMargin = 20; +``` + +These tweaks let you fine‑tune the final document without post‑processing. + +--- + +## Full Working Example + +Below is the complete, copy‑and‑paste‑ready program that incorporates everything we’ve discussed. Save it as `Program.cs` and run `dotnet run`. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and select the first worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Insert a high‑precision number. + worksheet.Cells["A1"].PutValue(1234.56789); + + // 3️⃣ Set PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 + }; + + // 4️⃣ Save the workbook as PDF. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + + // Optional: Export another sheet with custom settings. + // Worksheet sheet2 = workbook.Worksheets.Add("Report"); + // sheet2.Cells["B2"].PutValue(9876.54321); + // sheet2.ToPdf("Report.pdf", pdfSaveOptions); + } +} +``` + +**Result:** Open `SignificantDigits.pdf` – you’ll see the rounded value `1235`. The file size is modest, and the layout matches the original Excel sheet. + +--- + +## Conclusion + +We’ve just shown you how to **save workbook as pdf** using Aspose.Cells, covering everything from basic setup to advanced options like **export worksheet to pdf**, **how to export excel to pdf**, and **create pdf from worksheet** with precise numeric control. + +The approach is straightforward, requires only a few lines of C#, and works across .NET versions. Next, you might explore adding headers/footers, embedding images, or generating PDFs from templates—each of which builds on the foundation you now have. + +Got a twist you’d like to try? Maybe you need to password‑protect the PDF or merge several PDFs together. Those are natural extensions, and the Aspose.Cells API has you covered. Dive in, experiment, and let the library do the heavy lifting. + +--- + +![save workbook as pdf screenshot](/images/save-workbook-as-pdf.png){alt="save workbook as pdf example showing the generated PDF file"} + +*Happy coding! If you ran into any snags, drop a comment below and we’ll troubleshoot together.* + +{{< /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/english/net/converting-excel-files-to-other-formats/_index.md b/cells/english/net/converting-excel-files-to-other-formats/_index.md index a51db79223..e8008c91d1 100644 --- a/cells/english/net/converting-excel-files-to-other-formats/_index.md +++ b/cells/english/net/converting-excel-files-to-other-formats/_index.md @@ -56,6 +56,8 @@ Learn how to convert Excel files to PDF/A-1a for archival purposes using Aspose. Learn how to convert JSON to CSV programmatically in .NET using Aspose.Cells. Follow our step-by-step guide to ensure seamless data transformation. ### [Converting Excel File to PPTX Programmatically in .NET](./converting-excel-file-to-pptx/) Learn how to convert an Excel file to a PowerPoint presentation (PPTX) programmatically using Aspose.Cells for .NET with this step-by-step guide. +### [Create PowerPoint from Excel – Step‑by‑Step C# Guide](./create-powerpoint-from-excel-step-by-step-c-guide/) +Learn how to generate PowerPoint presentations from Excel data using C# and Aspose.Cells in a detailed step‑by‑step guide. ### [Specifying HTML CrossType in Output HTML Programmatically in .NET](./specifying-html-crosstype-in-output-html/) Learn how to specify HTML CrossType in Aspose.Cells for .NET. Follow our step-by-step tutorial to convert Excel files to HTML with precision. ### [Reading Numbers Spreadsheet Programmatically in .NET](./reading-numbers-spreadsheet/) @@ -73,4 +75,4 @@ Learn to track TIFF conversion progress programmatically using Aspose.Cells for {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/english/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md b/cells/english/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md new file mode 100644 index 0000000000..02b96b87c0 --- /dev/null +++ b/cells/english/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-03-30 +description: Create PowerPoint from Excel quickly using Aspose.Cells and Aspose.Slides. + Learn how to export worksheet as image and save presentation as PPTX in C#. +draft: false +keywords: +- create powerpoint from excel +- convert excel to powerpoint +- export worksheet as image +- save presentation as pptx +- export excel chart as picture +language: en +og_description: Create PowerPoint from Excel in C# with Aspose. Export worksheet as + image, keep shapes editable, and save the result as PPTX. +og_title: Create PowerPoint from Excel – Complete C# Tutorial +tags: +- Aspose +- C# +- Office Automation +title: Create PowerPoint from Excel – Step‑by‑Step C# Guide +url: /net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Create PowerPoint from Excel – Complete C# Tutorial + +Ever needed to **create PowerPoint from Excel** but weren’t sure which library could keep your charts editable? You’re not alone. In many reporting scenarios you’ll want to turn a spreadsheet into a slide deck without losing the ability to tweak text boxes later. This guide shows you exactly how to **convert Excel to PowerPoint** using Aspose.Cells and Aspose.Slides, while also covering how to **export worksheet as image** and finally **save presentation as PPTX**. + +We’ll walk through every line of code, explain *why* each setting matters, and even discuss what to do if your workbook contains complex charts that you’d rather export as a picture. By the end you’ll have a ready‑to‑run C# console app that takes `ShapesDemo.xlsx` and spits out `Result.pptx` – all with editable text boxes and crisp images. + +## What You’ll Need + +- .NET 6.0 or later (the API works with .NET Framework too, but .NET 6 is the sweet spot). +- **Aspose.Cells** and **Aspose.Slides** NuGet packages (free trial licenses work for testing). +- A basic familiarity with C# syntax – if you can write a `Console.WriteLine`, you’re good to go. + +No additional COM interop, no Office installed on the server, and no manual copy‑paste of images. Everything is handled programmatically. + +--- + +## Create PowerPoint from Excel – Load Workbook and Set Export Options + +The first thing we do is open the Excel file and tell Aspose.Cells how we want the sheet rendered. The `ImageOrPrintOptions` object is where the magic happens: we enable `ExportShapes` and `ExportEditableTextBoxes` so that any shapes (including charts) become part of the slide **and** stay editable after the conversion. + +```csharp +using Aspose.Cells; +using Aspose.Slides; + +// 1️⃣ Load the Excel workbook +string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; +Workbook workbook = new Workbook(excelPath); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first sheet + +// 2️⃣ Configure image export – keep shapes editable +ImageOrPrintOptions imageOptions = new ImageOrPrintOptions +{ + OnePagePerSheet = true, // Export the whole sheet as one slide + ExportShapes = true, // Include shapes (charts, drawings) + ExportEditableTextBoxes = true // Make text boxes editable in PPTX +}; +``` + +**Why these flags?** +- `OnePagePerSheet` prevents the sheet from being split across multiple slides – you get a single, full‑size picture. +- `ExportShapes` tells Aspose.Cells to rasterize charts *and* vector shapes, preserving their look. +- `ExportEditableTextBoxes` is the secret sauce that lets you double‑click a textbox in PowerPoint and edit the text without opening Excel again. + +> **Pro tip:** If you only need a static picture of a chart, set `ExportShapes = false` and use the `ExportExcelChartAsPicture` method later (see the final section). + +--- + +## Convert Excel to PowerPoint – Generate Image from Worksheet + +With the options ready, we now turn the worksheet into a `System.Drawing.Image`. The `WorksheetToImageConverter` does the heavy lifting, applying the settings we just defined. + +```csharp +// 3️⃣ Convert the worksheet to an image using the options above +WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); +System.Drawing.Image sheetImage = converter.ConvertToImage(0, imageOptions); +``` + +The `0` argument indicates the first page (we only have one because of `OnePagePerSheet`). The resulting `sheetImage` retains the original DPI, so your slide won’t look pixelated even on high‑resolution displays. + +--- + +## Save Presentation as PPTX – Insert Image into a Slide + +Now we create a fresh PowerPoint file, add a slide, and drop the bitmap onto it. Aspose.Slides treats the picture as a *picture frame* shape, which you can later resize or move just like any native PowerPoint object. + +```csharp +// 4️⃣ Create a new PowerPoint presentation +Presentation presentation = new Presentation(); +ISlide slide = presentation.Slides[0]; // The default blank slide + +// Add the Excel‑derived image as a picture frame +slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, // Simple rectangle container + 0, 0, // Top‑left corner (0,0) + sheetImage.Width, // Width of the picture + sheetImage.Height, // Height of the picture + sheetImage); // The bitmap we generated +``` + +> **What if the image is larger than the slide size?** +> PowerPoint will automatically clip anything that exceeds the slide dimensions. A quick fix is to scale the image before inserting it: + +```csharp +float scale = Math.Min(presentation.SlideSize.Size.Width / (float)sheetImage.Width, + presentation.SlideSize.Size.Height / (float)sheetImage.Height); +int newWidth = (int)(sheetImage.Width * scale); +int newHeight = (int)(sheetImage.Height * scale); +``` + +You can then pass `newWidth` and `newHeight` to `AddPictureFrame`. + +--- + +## Export Worksheet as Image – Save the PPTX File + +Finally we persist the presentation to disk. The `SaveFormat.Pptx` flag guarantees the modern OpenXML format, which works across all recent versions of PowerPoint. + +```csharp +// 5️⃣ Save the presentation as a PPTX file +string pptxPath = "YOUR_DIRECTORY/Result.pptx"; +presentation.Save(pptxPath, SaveFormat.Pptx); +``` + +When you open `Result.pptx` you’ll see a single slide that looks exactly like your Excel sheet, but you can still click on any textbox and edit its content directly in PowerPoint. + +--- + +## Export Excel Chart as Picture – When Raster Images Are Preferred + +Sometimes you don’t need editable shapes; a high‑quality PNG of a chart is enough. Aspose.Cells can export a specific chart to an image without converting the whole sheet: + +```csharp +// Example: Export the first chart on the sheet as a PNG +int chartIndex = 0; // Adjust if you have multiple charts +Chart chart = worksheet.Charts[chartIndex]; +ImageOrPrintOptions chartOptions = new ImageOrPrintOptions +{ + ImageFormat = ImageFormat.Png, + OnePagePerSheet = false +}; +chart.ToImage("chart.png", chartOptions); +``` + +You can then embed `chart.png` into a slide the same way we added `sheetImage`. This approach reduces the PPTX file size and is useful when the surrounding data isn’t needed on the slide. + +--- + +## Common Pitfalls & How to Avoid Them + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **Text looks blurry** | Exported at low DPI (default 96). | Set `imageOptions.Dpi = 300;` before conversion. | +| **Shapes disappear** | `ExportShapes` left `false`. | Ensure `ExportShapes = true` when you need editable graphics. | +| **Slide size mismatch** | Image larger than slide dimensions. | Scale the image (see code snippet) or change slide size via `presentation.SlideSize`. | +| **License exception** | Using trial version without proper activation. | Call `License license = new License(); license.SetLicense("Aspose.Total.lic");` early in `Main`. | + +--- + +## Full Working Example (Copy‑Paste Ready) + +Below is the entire program, ready to drop into a new console project. Replace `YOUR_DIRECTORY` with the folder that holds your Excel file. + +```csharp +using System; +using Aspose.Cells; +using Aspose.Slides; +using System.Drawing; + +namespace ExcelToPowerPointDemo +{ + class Program + { + static void Main(string[] args) + { + // ----------------------------------------------------------------- + // 1️⃣ Load the Excel workbook + // ----------------------------------------------------------------- + string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; + Workbook workbook = new Workbook(excelPath); + Worksheet worksheet = workbook.Worksheets[0]; + + // ----------------------------------------------------------------- + // 2️⃣ Set up export options – keep shapes editable + // ----------------------------------------------------------------- + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + OnePagePerSheet = true, + ExportShapes = true, + ExportEditableTextBoxes = true, + Dpi = 300 // High‑resolution output + }; + + // ----------------------------------------------------------------- + // 3️⃣ Convert worksheet to an image + // ----------------------------------------------------------------- + WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); + Image sheetImage = converter.ConvertToImage(0, imageOptions); + + // ----------------------------------------------------------------- + // 4️⃣ Create PowerPoint and add the image as a slide + // ----------------------------------------------------------------- + Presentation presentation = new Presentation(); + ISlide slide = presentation.Slides[0]; + slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, + 0, 0, + sheetImage.Width, + sheetImage.Height, + sheetImage); + + // ----------------------------------------------------------------- + // 5️⃣ Save the PPTX file + // ----------------------------------------------------------------- + string pptxPath = "YOUR_DIRECTORY/Result.pptx"; + presentation.Save(pptxPath, SaveFormat.Pptx); + + Console.WriteLine("✅ PowerPoint created successfully at: " + pptxPath); + } + } +} +``` + +**Expected output:** +Running the program prints `✅ PowerPoint created successfully at: YOUR_DIRECTORY/Result.pptx`. Opening the PPTX shows a single slide mirroring the original Excel sheet, with editable text boxes. + +--- + +## Recap & Next Steps + +You now know how to **create PowerPoint from Excel** using Aspose’s powerful APIs, how to **export worksheet as image**, and how to **save presentation as PPTX** while preserving editability. The same pattern works for multi‑sheet workbooks—just loop through `workbook.Worksheets` and add a new slide for each. + +**What to explore next?** + +- **Batch conversion:** Loop over a folder of Excel files and generate a slide deck per file. +- **Dynamic layouts:** Use `slide.LayoutSlide` to apply pre‑designed PowerPoint templates. +- **Chart‑only export:** Combine the “Export Excel chart as picture” snippet with slide placeholders for a leaner deck. +- **Advanced styling:** Apply custom slide backgrounds, transitions, or animation via Aspose.Slides. + +Feel free to experiment—change the DPI, swap `ShapeType.Ellipse` for a circular picture frame, or even embed multiple images per slide. The sky’s the limit when you have programmatic control over + +{{< /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/english/net/document-properties/_index.md b/cells/english/net/document-properties/_index.md index 9c3bc48740..a7f8a55c14 100644 --- a/cells/english/net/document-properties/_index.md +++ b/cells/english/net/document-properties/_index.md @@ -35,6 +35,8 @@ Learn how to access document properties in Excel using Aspose.Cells for .NET. Fo Learn how to access document properties in Excel using Aspose.Cells for .NET with our step-by-step guide. Manage your spreadsheets efficiently. ### [Adding Document Properties in .NET](./adding-document-properties/) Learn how to add document properties in Excel using Aspose.Cells for .NET with this detailed step-by-step guide. +### [How to Save XLSB with Custom Properties in C# – Step‑by‑Step Guide](./how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/) +Learn how to save XLSB files with custom properties in Excel using Aspose.Cells for .NET with this step-by-step guide. {{< /blocks/products/pf/tutorial-page-section >}} @@ -42,4 +44,4 @@ Learn how to add document properties in Excel using Aspose.Cells for .NET with t {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/english/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md b/cells/english/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md new file mode 100644 index 0000000000..e790a54290 --- /dev/null +++ b/cells/english/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md @@ -0,0 +1,231 @@ +--- +category: general +date: 2026-03-30 +description: Learn how to save XLSB in C# while you add custom property, read it back, + and master save workbook as XLSB using Aspose.Cells. Full code included. +draft: false +keywords: +- how to save xlsb +- add custom property +- how to add property +- how to read property +- save workbook as xlsb +language: en +og_description: How to save XLSB in C#? This tutorial shows you how to add custom + property, read it back, and save workbook as XLSB with Aspose.Cells. +og_title: How to Save XLSB with Custom Properties in C# – Complete Guide +tags: +- Aspose.Cells +- C# +- Excel Automation +title: How to Save XLSB with Custom Properties in C# – Step‑by‑Step Guide +url: /net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# How to Save XLSB with Custom Properties in C# – Step‑by‑Step Guide + +Ever wondered **how to save XLSB** while keeping extra metadata attached to a worksheet? You're not the only one. In many enterprise scenarios you need a binary Excel file that still carries your own key/value pairs—think of a contract ID, a processing flag, or a version tag. + +The good news is that Aspose.Cells makes this a piece of cake. In this guide you’ll see exactly how to add a custom property, persist it, and then read it back, all while **saving the workbook as XLSB**. No vague references, just a complete, runnable example you can drop into your project today. + +## What You’ll Walk Away With + +- A fresh `.xlsb` file created from scratch. +- The ability to **add custom property** to a worksheet. +- Code that demonstrates **how to read property** after the file is reloaded. +- Tips on pitfalls you might hit when you **save workbook as XLSB**. + +> **Prerequisites:** .NET 6+ (or .NET Framework 4.6+), Visual Studio (or any C# IDE), and the Aspose.Cells for .NET library installed via NuGet. Nothing else. + +--- + +## Step 1: Set Up the Project and Create a New Workbook + +First things first—let’s get a clean workbook object on the table. + +```csharp +using Aspose.Cells; +using System; + +// Initialize a new workbook; this will be an in‑memory Excel file. +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0) – it’s created automatically. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Why this matters:* `Workbook` is the entry point for every operation in Aspose.Cells. By starting with a brand‑new instance you avoid any hidden state that could corrupt your custom metadata later. + +--- + +## Step 2: **Add Custom Property** to the Worksheet + +Now we’ll attach a key/value pair that lives only on this sheet. + +```csharp +// Add a user‑defined property called "MyProperty" with the value "CustomValue". +worksheet.CustomProperties.Add("MyProperty", "CustomValue"); +``` + +> **Pro tip:** Property names are case‑sensitive. If you later try to fetch `"myproperty"` you’ll get a `KeyNotFoundException`. Stick to a naming convention—camelCase or PascalCase—right from the start. + +--- + +## Step 3: **Save Workbook as XLSB** – Persisting the Property + +The magic happens when you write the workbook to the binary XLSB format. + +```csharp +// Define the output path. Adjust the folder to something writable on your machine. +string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + +// Save the workbook; the custom property travels with the file. +workbook.Save(outputPath, SaveFormat.Xlsb); +``` + +*What you’re actually doing:* The `SaveFormat.Xlsb` enum tells Aspose.Cells to emit a binary Excel file (faster to open, smaller on disk). All worksheet‑level custom properties are serialized automatically—no extra steps required. + +--- + +## Step 4: Reload the File and **How to Read Property** + +Let’s prove the property survived the round‑trip. + +```csharp +// Load the just‑saved XLSB file back into memory. +Workbook reloadedWorkbook = new Workbook(outputPath); + +// Access the same worksheet (index 0) and fetch the property value. +string customValue = reloadedWorkbook.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); +``` + +If everything went smoothly, `customValue` now holds `"CustomValue"`. + +--- + +## Step 5: Verify the Result – Quick Console Output + +A tiny sanity check helps during development. + +```csharp +Console.WriteLine($"Custom property value: {customValue}"); +``` + +Running the program should print: + +``` +Custom property value: CustomValue +``` + +Seeing that line means you’ve successfully mastered **how to save XLSB**, **add custom property**, and **how to read property**—all in one tidy flow. + +--- + +## Full Working Example (Copy‑Paste Ready) + +Below is the entire program. Paste it into a new Console App, hit **F5**, and watch the console confirm the property value. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // 1️⃣ Create a new workbook and get its first sheet + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // 2️⃣ Add a custom property (key/value) to the sheet + // ------------------------------------------------- + worksheet.CustomProperties.Add("MyProperty", "CustomValue"); + + // ------------------------------------------------- + // 3️⃣ Save the workbook as XLSB – the property is kept + // ------------------------------------------------- + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(outputPath, SaveFormat.Xlsb); + + // ------------------------------------------------- + // 4️⃣ Reload the saved file to demonstrate persistence + // ------------------------------------------------- + Workbook reloaded = new Workbook(outputPath); + + // ------------------------------------------------- + // 5️⃣ Retrieve the custom property's value + // ------------------------------------------------- + string customValue = reloaded.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); + + // ------------------------------------------------- + // 6️⃣ Display the retrieved value (optional) + // ------------------------------------------------- + Console.WriteLine($"Custom property value: {customValue}"); + } +} +``` + +> **Remember:** Change `outputPath` to a folder you have write access to. If you’re on Linux/macOS, use a path like `"/tmp/WithCustomProp.xlsb"`. + +--- + +## Common Questions & Edge Cases + +### What if the property already exists? +Calling `Add` with an existing key throws an `ArgumentException`. Use `ContainsKey` or wrap the call in a `try/catch` if you’re not sure. + +```csharp +if (!worksheet.CustomProperties.ContainsKey("MyProperty")) +{ + worksheet.CustomProperties.Add("MyProperty", "AnotherValue"); +} +``` + +### Can I store non‑string values? +Absolutely. The `Value` property accepts any `object`. For numbers, dates, or booleans just pass the appropriate type—Aspose.Cells will handle the conversion when you read it back. + +### Does the property survive when I convert to XLSX? +Yes. Custom properties are part of the worksheet’s XML representation, so they persist across XLSX, XLS, and XLSB formats. + +### How to **how to add property** to multiple sheets? +Loop through the `Worksheets` collection and apply the same `CustomProperties.Add` call to each sheet you need. + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + ws.CustomProperties.Add("ExportedBy", "MyApp"); +} +``` + +### Performance tip when **saving workbook as XLSB** in bulk +If you’re generating hundreds of files, reuse the same `Workbook` instance and call `Clear` after each save to free memory. Also, set `Workbook.Settings.CalculateFormulaOnOpen = false` if you don’t need formulas evaluated on load. + +--- + +## Conclusion + +You now know **how to save XLSB** in C# while embedding and later retrieving a custom property using Aspose.Cells. The complete solution—creating the workbook, adding a property, persisting it with **save workbook as XLSB**, reloading, and reading the value—fits in under 50 lines of code. + +From here you might explore: + +- Adding multiple custom properties per sheet. +- Storing complex objects via JSON strings. +- Encrypting the XLSB file for extra security. + +Give those ideas a spin, and you’ll quickly become the go‑to person for Excel automation in your team. Got questions or a tricky scenario? Drop a comment below, and happy coding! + +![How to save XLSB with custom property](/images/how-to-save-xlsb.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/english/net/excel-copy-worksheet/_index.md b/cells/english/net/excel-copy-worksheet/_index.md index c647151f34..c3c9d8dca4 100644 --- a/cells/english/net/excel-copy-worksheet/_index.md +++ b/cells/english/net/excel-copy-worksheet/_index.md @@ -42,6 +42,7 @@ Aspose.Cells for .NET offers powerful functionality for manipulating Excel files | [Excel Copy Worksheet](./excel-copy-worksheet/) | Learn how to copy an Excel worksheet using Aspose.Cells for .NET with this easy-to-follow step-by-step guide. Ideal for .NET developers looking to automate Excel tasks. | | [Excel Copy Worksheets Between Workbooks](./excel-copy-worksheets-between-workbooks/) | Learn how to copy worksheets between Excel workbooks using Aspose.Cells for .NET. A step-by-step guide with code examples to streamline your spreadsheet management. | | [Excel Move Worksheet](./excel-move-worksheet/) | Learn to move worksheets in Excel using Aspose.Cells for .NET in our step-by-step guide. Master the art of Excel programming. | +| [How to Copy Worksheet in C# with Aspose.Cells – Complete Guide](./how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/) | Comprehensive guide on copying worksheets in C# using Aspose.Cells, with code examples and best practices. | {{< /blocks/products/pf/tutorial-page-section >}} @@ -49,4 +50,4 @@ Aspose.Cells for .NET offers powerful functionality for manipulating Excel files {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/english/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md b/cells/english/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md new file mode 100644 index 0000000000..d960b6694d --- /dev/null +++ b/cells/english/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md @@ -0,0 +1,288 @@ +--- +category: general +date: 2026-03-30 +description: How to copy worksheet in C# using Aspose.Cells – step‑by‑step guide covering + copy cell range, copy columns between sheets, copy worksheet pivot table and add + new worksheet code. +draft: false +keywords: +- how to copy worksheet +- copy cell range +- copy columns between sheets +- copy worksheet pivot table +- add new worksheet code +language: en +og_description: Learn how to copy worksheet in C# with Aspose.Cells. This guide shows + copy cell range, preserve pivot tables, copy columns between sheets, and add new + worksheet code. +og_title: How to Copy Worksheet in C# – Full Aspose.Cells Tutorial +tags: +- Aspose.Cells +- C# +- Excel Automation +title: How to Copy Worksheet in C# with Aspose.Cells – Complete Guide +url: /net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# How to Copy Worksheet in C# with Aspose.Cells – Complete Guide + +Ever wondered **how to copy worksheet** in C# without losing a single pivot table or formula? You're not alone—many developers hit a wall when they need to duplicate a sheet while keeping all the goodies intact. In this tutorial we’ll walk through a practical, end‑to‑end solution that not only copies the data but also preserves the **copy worksheet pivot table**, handles **copy cell range**, and shows the **add new worksheet code** you’ll need. + +We'll cover everything from loading the source workbook to saving the destination file, so you can copy columns between sheets, preserve objects, and keep your code clean. No vague references, just a complete, runnable example you can drop into your project today. + +## What This Tutorial Covers + +- Loading an existing Excel file with Aspose.Cells +- Using **add new worksheet code** to create a target sheet +- Defining a **copy cell range** that includes a pivot table +- Setting up **CopyOptions** to keep charts, formulas, and pivot tables intact +- Executing **copy columns between sheets** with row‑wise precision +- Saving the result and verifying that the worksheet was copied correctly + +By the end of this guide you’ll be able to answer the question “how to copy worksheet” confidently, whether you’re automating reports or building a spreadsheet‑driven UI. + +--- + +## How to Copy Worksheet – Overview + +Before we dive into code, let’s outline the high‑level flow. Think of it as a recipe: + +1. **Load** the source workbook (`Source.xlsx`). +2. **Add** a fresh worksheet to hold the copy (`add new worksheet code`). +3. **Define** the area you want to duplicate (`copy cell range`). +4. **Configure** copy options so the pivot table survives (`copy worksheet pivot table`). +5. **Copy** rows and columns (`copy columns between sheets`). +6. **Save** the new workbook (`Destination.xlsx`). + +That’s it—six steps, no magic. Each step is explained below with code snippets and the reasoning behind it. + +--- + +## Step 1 – Load the Source Workbook + +First things first: you need a `Workbook` instance pointing at the file you want to duplicate. This step is essential because Aspose.Cells works directly with the file system, not with the Office UI. + +```csharp +using Aspose.Cells; + +// Path to the original file +string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; +string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + +// Load the workbook – this is the starting point for how to copy worksheet +Workbook workbook = new Workbook(sourcePath); +``` + +*Why this matters:* Loading the file creates an in‑memory representation of every sheet, cell, and object. Without this, there’s nothing to copy, and any attempt to `add new worksheet code` later would fail because the source data isn’t present. + +--- + +## Step 2 – Add a New Worksheet (add new worksheet code) + +Now we need a place to paste the copied data. This is where the **add new worksheet code** shines. You can name the sheet anything you like; here we call it `"Copy"`. + +```csharp +// Grab the first worksheet (the one we want to copy) +Worksheet sourceSheet = workbook.Worksheets[0]; + +// Add a fresh worksheet to receive the copy +Worksheet copySheet = workbook.Worksheets.Add("Copy"); +``` + +*Pro tip:* If you plan to copy multiple sheets, call `Worksheets.Add` inside a loop and give each sheet a unique name. That way you avoid name collisions and keep your workbook tidy. + +--- + +## Step 3 – Define the Copy Cell Range + +A **copy cell range** tells Aspose.Cells exactly which rows and columns to duplicate. In many real‑world scenarios the range includes a pivot table, so we must be precise. + +```csharp +// Define the area that contains the pivot table (A1:G20) +CellArea sourceRange = new CellArea +{ + StartRow = 0, // Row 1 (zero‑based) + StartColumn = 0, // Column A + EndRow = 19, // Row 20 + EndColumn = 6 // Column G +}; + +// Destination range – we start at the same top‑left corner +CellArea destinationRange = new CellArea +{ + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 +}; +``` + +*Why we need this:* By explicitly stating the range, you avoid copying the entire sheet (which can be wasteful) and you guarantee that the pivot table lives inside the copied area. This is the core of **how to copy worksheet** when you only need part of the sheet. + +--- + +## Step 4 – Set Copy Options (preserve copy worksheet pivot table) + +Aspose.Cells offers a `CopyOptions` object that controls what gets pasted. To keep the pivot table, charts, and formulas, we set `PasteType.All` and enable `PasteSpecial`. + +```csharp +CopyOptions copyOptions = new CopyOptions +{ + PasteType = PasteType.All, // Copy everything: values, formats, objects + PasteSpecial = true // Enable special paste to retain pivot tables +}; +``` + +*Explanation:* `PasteType.All` is the most inclusive option, while `PasteSpecial` tells the engine to treat complex objects—like pivot tables—properly. Skipping this step is a common pitfall; the copied sheet would lose its interactive features. + +--- + +## Step 5 – Copy Rows and Columns (copy columns between sheets) + +Now comes the heavy lifting: actually moving the data. We’ll use `CopyRows` and `CopyColumns` to handle **copy columns between sheets**. Doing both ensures that merged cells and column widths are preserved. + +```csharp +// Copy rows from the source to the destination sheet +sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + +// Copy columns from the source to the destination sheet +sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); +``` + +*What’s happening:* `CopyRows` moves the data row‑by‑row, while `CopyColumns` does the same column‑by‑column. Running both guarantees that the entire rectangular block is duplicated, which is essential when you need to **copy columns between sheets** that have different column widths or hidden columns. + +--- + +## Step 6 – Save the Workbook + +Finally, write the changes back to disk. This step completes the **how to copy worksheet** process. + +```csharp +// Save the workbook with the newly copied sheet +workbook.Save(destinationPath); +``` + +*Verification tip:* Open `Destination.xlsx` and check that the `"Copy"` sheet looks identical to the original, pivot tables are functional, and column widths match. If anything looks off, revisit the `CopyOptions` settings. + +--- + +## Edge Cases & Common Variations + +### Copying Multiple Worksheets + +If you need to duplicate several sheets, wrap the above logic in a `foreach` loop: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + Worksheet newWs = workbook.Worksheets.Add(ws.Name + "_Copy"); + // Re‑use sourceRange/destinationRange or calculate per sheet + // Then call CopyRows/CopyColumns as shown earlier +} +``` + +### Preserving Formulas Across Different Workbooks + +When the source and destination workbooks have different named ranges, set `copyOptions` to `PasteType.Formulas` in addition to `All`: + +```csharp +copyOptions.PasteType = PasteType.All | PasteType.Formulas; +``` + +### Large Ranges and Performance + +For massive datasets (hundreds of thousands of rows), consider using `CopyRows` only and skipping `CopyColumns` if column widths are not critical. This can shave off a few seconds. + +--- + +## Full Working Example + +Below is the complete, ready‑to‑run program that embodies everything we’ve discussed. Paste it into a console app, adjust the file paths, and hit **F5**. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // ---------- Step 1: Load the source workbook ---------- + string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; + string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + Workbook workbook = new Workbook(sourcePath); + + // ---------- Step 2: Add a new worksheet (add new worksheet code) ---------- + Worksheet sourceSheet = workbook.Worksheets[0]; + Worksheet copySheet = workbook.Worksheets.Add("Copy"); + + // ---------- Step 3: Define the copy cell range ---------- + CellArea sourceRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + CellArea destinationRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + + // ---------- Step 4: Set copy options (preserve copy worksheet pivot table) ---------- + CopyOptions copyOptions = new CopyOptions + { + PasteType = PasteType.All, + PasteSpecial = true + }; + + // ---------- Step 5: Copy rows and columns (copy columns between sheets) ---------- + sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + + sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); + + // ---------- Step 6: Save the workbook ---------- + workbook.Save(destinationPath); + } +} +``` + +**Expected result:** Opening `Destination.xlsx` shows a sheet named **Copy** that mirrors the first sheet of `Source.xlsx`—including any pivot tables, formatting, and column widths. The original file remains untouched. + +--- + +## Frequently Asked Questions + +**Q: Does this work with .xlsx files created by Excel 2019?** +A: Absolutely. Aspose.Cells supports all modern Excel formats, so the same code works for `.xlsx`, `.xlsm`, and even older `.xls` files + +{{< /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/english/net/excel-custom-number-date-formatting/_index.md b/cells/english/net/excel-custom-number-date-formatting/_index.md index 072ad59089..f7f83f3f76 100644 --- a/cells/english/net/excel-custom-number-date-formatting/_index.md +++ b/cells/english/net/excel-custom-number-date-formatting/_index.md @@ -36,6 +36,10 @@ This tutorial will equip you with the skills to import your datasets while maint Learn how to check Excel cell values against custom number formats using Aspose.Cells for .NET with this step-by-step tutorial. ### [Specify Formula Fields When Importing Data to Excel Sheet](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) Learn how to import data into Excel sheets with specified formula fields using Aspose.Cells for .NET in this detailed tutorial. +### [Format Number with Separator in C# – Complete Aspose.Cells Guide](./format-number-with-separator-in-c-complete-aspose-cells-guid/) +Learn how to format numbers with separators in C# using Aspose.Cells, with a complete step-by-step guide. +### [format date iso from Excel – Complete C# Guide](./format-date-iso-from-excel-complete-c-guide/) +Learn how to convert Excel dates to ISO format in C# using Aspose.Cells, with a complete step-by-step guide. {{< /blocks/products/pf/tutorial-page-section >}} @@ -43,4 +47,4 @@ Learn how to import data into Excel sheets with specified formula fields using A {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/english/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md b/cells/english/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..29da6ba5e9 --- /dev/null +++ b/cells/english/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md @@ -0,0 +1,217 @@ +--- +category: general +date: 2026-03-30 +description: Learn how to format date iso while you read Excel datetime values and + extract datetime excel data using Aspose.Cells in C#. +draft: false +keywords: +- format date iso +- read excel datetime +- extract datetime excel +- Aspose.Cells date parsing +- Japanese era dates +language: en +og_description: format date iso from Excel data using Aspose.Cells. This guide shows + how to read Excel datetime, extract datetime excel values, and output ISO dates. +og_title: format date iso from Excel – Step‑by‑Step C# Tutorial +tags: +- C# +- Excel +- DateTime +- Aspose.Cells +title: format date iso from Excel – Complete C# Guide +url: /net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# format date iso from Excel – Complete C# Guide + +Ever needed to **format date iso** when pulling dates out of an Excel sheet? Maybe you’re juggling Japanese era dates, or you just want a clean `yyyy‑MM‑dd` string for an API payload. In this tutorial you’ll see exactly how to **read Excel datetime** cells, **extract datetime Excel** values, and turn them into ISO‑8601 format—no guesswork required. + +We’ll walk through a real‑world example that uses Aspose.Cells, explains why each line matters, and shows you the final output you can copy‑paste into your project. By the end, you’ll be able to handle quirky era strings like “令和3年5月1日” and produce a standard ISO date, ready for databases, JSON, or wherever you need it. + +## Prerequisites + +- .NET 6.0 or later (the code works with .NET Framework as well) +- Aspose.Cells for .NET (free trial or licensed version) +- Basic familiarity with C# and Excel concepts +- Visual Studio or any C# editor you like + +No additional NuGet packages are required beyond Aspose.Cells, so the setup is pretty straightforward. + +--- + +## Step 1: Create a Workbook and Target the First Worksheet + +The first thing you do is spin up a new `Workbook` object. This gives you an in‑memory representation of an Excel file, which you can then manipulate or read from. + +```csharp +using Aspose.Cells; +using System.Globalization; + +// Step 1: Initialize a new workbook and grab the first worksheet +Workbook workbook = new Workbook(); // creates an empty .xlsx +Worksheet worksheet = workbook.Worksheets[0]; // the default sheet is "Sheet1" +``` + +*Why this matters:* +Creating the workbook programmatically lets you avoid dealing with physical files during testing. It also ensures the worksheet reference is always valid—no null‑reference surprises later when you try to **read Excel datetime** values. + +--- + +## Step 2: Write a Japanese Era Date String into a Cell + +Our goal is to demonstrate parsing a non‑Gregorian date. We’ll place the era string directly into cell **A1**. + +```csharp +// Step 2: Insert a Japanese era date string into cell A1 +worksheet.Cells["A1"].PutValue("令和3年5月1日"); +``` + +*Pro tip:* If you’re pulling data from an existing workbook, you’d skip the `PutValue` call and just reference the cell that already contains the date. The key is that the cell holds a **string** that represents a date in the Japanese lunisolar calendar. + +--- + +## Step 3: Configure a Culture That Understands the Japanese Lunisolar Calendar + +.NET’s `CultureInfo` class lets you specify how dates should be interpreted. By swapping the default Gregorian calendar for `JapaneseLunisolarCalendar`, you give the parser the context it needs. + +```csharp +// Step 3: Set up a culture using the Japanese lunisolar calendar +CultureInfo japaneseCulture = new CultureInfo("ja-JP"); +japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); +``` + +*Why we do this:* +If you tried to parse “令和3年5月1日” with the default culture, .NET would throw a `FormatException`. Swapping in the lunisolar calendar tells the runtime exactly how to map “令和3年” (the 3rd year of the Reiwa era) to the Gregorian year 2021. + +--- + +## Step 4: Parse the Cell Value as a `DateTime` Using the Configured Culture + +Now comes the heart of the operation—turning that era string into a proper `DateTime` object. Aspose.Cells provides a convenient `GetDateTime` overload that accepts a `CultureInfo`. + +```csharp +// Step 4: Retrieve the cell value as a DateTime, respecting the Japanese culture +DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); +``` + +*What’s happening under the hood:* +`GetDateTime` reads the raw string, applies the supplied culture’s calendar rules, and returns a `DateTime` that represents the same moment in the Gregorian calendar. This is the moment where you **extract datetime Excel** data in a form you can work with in .NET. + +--- + +## Step 5: Output the Parsed Date in ISO 8601 Format + +Finally, we format the `DateTime` as an ISO string—`yyyy‑MM‑dd`—which is universally accepted by APIs, databases, and front‑end frameworks. + +```csharp +// Step 5: Print the date in ISO format (e.g., 2021-05-01) +Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // Output: 2021-05-01 +``` + +*Why ISO?* +ISO 8601 eliminates ambiguity. “05/01/2021” could be May 1st or January 5th depending on locale. `2021-05-01` is crystal clear, which is why we **format date iso** in almost every integration scenario. + +--- + +## Full Working Example + +Below is the complete, ready‑to‑run program. Copy it into a console app project, add the Aspose.Cells reference, and hit **F5**. + +```csharp +using Aspose.Cells; +using System; +using System.Globalization; + +class Program +{ + static void Main() + { + // 1️⃣ Create workbook and select the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("令和3年5月1日"); + + // 3️⃣ Set up Japanese lunisolar culture + CultureInfo japaneseCulture = new CultureInfo("ja-JP"); + japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); + + // 4️⃣ Parse the cell value as DateTime using the culture + DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); + + // 5️⃣ Output the date in ISO format + Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // 2021-05-01 + } +} +``` + +**Expected output** + +``` +2021-05-01 +``` + +Run it once, and you’ll see the ISO‑formatted date printed to the console. That’s the entire pipeline from **read Excel datetime** to **format date iso**. + +--- + +## Handling Common Edge Cases + +### 1. Cells Containing Real Excel Date Numbers + +Sometimes Excel stores dates as serial numbers (e.g., `44204`). In that case, you don’t need a culture; just call `GetDateTime()` without parameters: + +```csharp +DateTime serialDate = worksheet.Cells["B2"].GetDateTime(); // B2 holds a numeric date +Console.WriteLine(serialDate.ToString("yyyy-MM-dd")); +``` + +### 2. Blank or Invalid Cells + +If a cell is empty or contains an unparsable string, `GetDateTime` will throw. Wrap the call in a `try/catch` or check `IsDateTime` first: + +```csharp +if (worksheet.Cells["C3"].Type == CellValueType.IsDateTime) +{ + DateTime safeDate = worksheet.Cells["C3"].GetDateTime(); + Console.WriteLine(safeDate.ToString("yyyy-MM-dd")); +} +else +{ + Console.WriteLine("Cell C3 does not contain a valid date."); +} +``` + +### 3. Different Era Formats + +Other Japanese eras (Heisei, Showa) follow the same pattern. The same `JapaneseLunisolarCalendar` will handle them automatically, so you don’t need extra logic—just feed the string. + +--- + +## Pro Tips & Gotchas + +- **Performance:** When processing large spreadsheets, reuse a single `CultureInfo` instance instead of creating a new one inside a loop. +- **Thread Safety:** `CultureInfo` objects are read‑only after you set the calendar, so they’re safe to share across threads. +- **Aspose.Cells Licensing:** If you’re using the free trial, remember that some features may be limited after the trial period expires. The date parsing shown here works fine in both trial and licensed modes. +- **Time Zones:** The `DateTime` you get is **unspecified** (no time zone). If you need UTC, call `DateTime.SpecifyKind(parsedDate, DateTimeKind.Utc)` or convert using `TimeZoneInfo`. + +--- + +## Conclusion + +We’ve covered everything you need to **format date iso** from an Excel workbook using C#. Starting from a raw Japanese era string, we **read Excel datetime**, set up the proper culture, **extract datetime excel** data, and finally output a clean ISO‑8601 string. The approach works for any date representation Excel might throw at you, whether it’s a serial number, a locale‑specific string, or a traditional era format. + +Next steps? Try looping over a whole column of dates, write the ISO results back into a new sheet, or feed them straight into a JSON payload for a web service. If you’re curious about other calendar systems (Hebrew, Islamic), Aspose.Cells and .NET’s `CultureInfo` make those experiments just as easy. + +Got questions or a tricky date format you can’t crack? Drop a comment below, and happy coding! + +{{< /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/english/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md b/cells/english/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md new file mode 100644 index 0000000000..e7322a2351 --- /dev/null +++ b/cells/english/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md @@ -0,0 +1,251 @@ +--- +category: general +date: 2026-03-30 +description: Learn how to format number with separator using Aspose.Cells in C#. Includes + set custom number format, add thousands separator, format decimal places, and how + to format cell. +draft: false +keywords: +- format number with separator +- set custom number format +- add thousands separator +- format decimal places +- how to format cell +language: en +og_description: Format number with separator in C#. This guide shows how to set custom + number format, add thousands separator, format decimal places, and how to format + cell using Aspose.Cells. +og_title: Format Number with Separator in C# – Aspose.Cells Tutorial +tags: +- C# +- Aspose.Cells +- Number Formatting +title: Format Number with Separator in C# – Complete Aspose.Cells Guide +url: /net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Format Number with Separator in C# – Complete Aspose.Cells Guide + +Ever needed to **format number with separator** in a spreadsheet but weren’t sure which API call to use? You're not the only one—developers constantly wrestle with thousands separators, decimal places, and custom patterns when exporting data. + +Good news: Aspose.Cells makes it a piece of cake. In this tutorial we’ll walk through a real‑world example that **sets a custom number format**, **adds a thousands separator**, **formats decimal places**, and shows **how to format cell** output as a string. By the end you’ll have a ready‑to‑run snippet you can drop into any .NET project. + +## What This Guide Covers + +* The exact NuGet package you need and how to install it. +* Step‑by‑step code that creates a workbook, writes a numeric value, and applies a custom format. +* Why `ExportTableOptions.ExportAsString` is the preferred way to retrieve a formatted value. +* Common pitfalls—like forgetting to enable `ExportAsString` or using the wrong format mask. +* How to tweak the format mask if you need a different number of decimal places or a different separator style. + +No external documentation links are required; everything you need is right here. Let’s dive in. + +--- + +## Prerequisites + +| Requirement | Reason | +|-------------|--------| +| .NET 6.0 or later | Aspose.Cells 23.10+ targets .NET Standard 2.0+, so .NET 6 is safe and current. | +| Visual Studio 2022 (or any C# IDE) | Makes debugging and package management painless. | +| Aspose.Cells for .NET NuGet package | Provides the `Workbook`, `Worksheet`, and `ExportTableOptions` classes we’ll use. | + +You can install the package via the Package Manager Console: + +```powershell +Install-Package Aspose.Cells +``` + +That’s it—no extra DLLs, no COM interop, just a single NuGet reference. + +--- + +## Step 1: Initialise a New Workbook (How to Format Cell) + +The first thing we do is create a fresh `Workbook` instance. Think of it as an empty Excel file ready to receive data. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Create a new workbook – this is where we’ll format the cell. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Why this matters:** `Workbook` is the entry point for every operation in Aspose.Cells. By grabbing the first worksheet (`Worksheets[0]`) we get a clean canvas without having to name a sheet. + +--- + +## Step 2: Write a Numeric Value into the Target Cell + +Next, we put a raw number into cell **A1**. The value itself isn’t formatted yet—it’s just a double. + +```csharp + // Step 2: Insert a raw numeric value. + worksheet.Cells["A1"].PutValue(12345.6789); +``` + +> **Pro tip:** Use `PutValue` instead of `PutString` when you intend to apply numeric formatting later. This preserves the underlying data type, allowing Excel‑compatible calculations. + +--- + +## Step 3: Set Custom Number Format (Add Thousands Separator & Format Decimal Places) + +Now comes the heart of the tutorial: defining a format mask that tells Aspose.Cells how to display the number. The mask `#,##0.00` does three things: + +1. **`#,##0`** – adds a thousands separator (comma by default). +2. **`.00`** – forces exactly two decimal places. + +If you need a different number of decimals, just change the number of `0`s after the decimal point. + +```csharp + // Step 3: Configure the custom number format. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, // Return the value as a formatted string. + NumberFormat = "#,##0.00" // Add thousands separator and fix to 2 decimals. + }; +``` + +> **Why we use `ExportAsString`**: By default, `ExportString` returns the raw value. Setting `ExportAsString = true` forces the API to apply the `NumberFormat` mask before converting to text. This is essential when you need the exact string representation for reports, JSON payloads, or UI display. + +--- + +## Step 4: Export the Formatted Text (How to Format Cell) + +With the options ready, we call `ExportString` on the same cell. The method respects the mask we just defined and hands back a nicely formatted string. + +```csharp + // Step 4: Export the formatted value. + string formattedCellText = worksheet.Cells["A1"].ExportString(exportOptions); + + // Step 5: Show the result. + Console.WriteLine(formattedCellText); // Expected output: 12,345.68 + } +} +``` + +Running the program prints **`12,345.68`** to the console—exactly the format we asked for. + +> **Edge case:** If the source number has more than two decimal places, the mask rounds it. If you need truncation instead of rounding, you’ll have to pre‑process the value with `Math.Truncate` before calling `PutValue`. + +--- + +## Step 5: Tweaking the Format – Common Variations + +### 5.1 Change Decimal Precision + +Want three decimal places? Just replace the mask: + +```csharp +NumberFormat = "#,##0.000" // → 12,345.679 +``` + +### 5.2 Use a Different Thousands Separator + +Some locales prefer a space or a period. You can embed the character directly: + +```csharp +NumberFormat = "# ##0.00" // Uses a non‑breaking space as separator. +``` + +Or rely on the workbook’s culture settings: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("de-DE"); +NumberFormat = "#.##0,00"; // German style: 12.345,68 +``` + +### 5.3 Prefix or Suffix (Currency, Percent) + +Add a dollar sign or a percent sign right in the mask: + +```csharp +NumberFormat = "$#,##0.00"; // → $12,345.68 +NumberFormat = "0.00%"; // → 1,234,568.00% +``` + +> **Note:** The mask is case‑sensitive. `$` and `%` are literal symbols; they don’t affect the underlying numeric value. + +--- + +## Step 6: Full Working Example (Copy‑Paste Ready) + +Below is the complete program you can copy into a new console app. It includes all the steps, comments, and the final output verification. + +```csharp +using System; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write raw numeric value to A1. + worksheet.Cells["A1"].PutValue(12345.6789); + + // 3️⃣ Define custom format: thousands separator + two decimals. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + NumberFormat = "#,##0.00" + }; + + // 4️⃣ Export the formatted string. + string result = worksheet.Cells["A1"].ExportString(exportOptions); + + // 5️⃣ Display the outcome. + Console.WriteLine(result); // Output: 12,345.68 + + // Optional: keep console open. + Console.WriteLine("Press any key to exit..."); + Console.ReadKey(); + } +} +``` + +Run the program (`dotnet run` from the terminal or press F5 in Visual Studio) and you’ll see the formatted number printed exactly as shown. + +--- + +## Frequently Asked Questions (FAQ) + +**Q: Does this work with older versions of Excel?** +A: Yes. The format mask follows Excel’s native number‑format syntax, so any version that understands `#,##0.00` will render the same string. + +**Q: What if I need to format a range of cells?** +A: Loop over the desired range and apply the same `ExportTableOptions` to each cell, or set the `Style.Custom` property on the range and then call `ExportString` on a single cell. + +**Q: Can I export directly to CSV with these formats applied?** +A: Absolutely. Use `Workbook.Save("output.csv", SaveFormat.CSV);` after setting the format on each cell. Aspose.Cells respects the cell’s `Style` when generating CSV. + +--- + +## Conclusion + +We’ve just shown how to **format number with separator** in C# using Aspose.Cells, covering everything from **set custom number format** to **add thousands separator**, **format decimal places**, and the essential **how to format cell** for string export. The code is fully self‑contained, works with .NET 6+, and can be adapted for any locale or precision requirement. + +Next, you might explore: + +* Applying the same technique to dates and times (`NumberFormat = "dd‑MMM‑yyyy"`). +* Automating bulk exports where each column needs a different mask. +* Integrating the formatted strings into PDF reports with Aspose.Words. + +Give those a try, and you’ll quickly become the go‑to person for spreadsheet formatting in your team. Happy coding! (Image: ![Screenshot showing formatted number with separator in Aspose.Cells](image-placeholder.png){alt="Formatted number with separator displayed in Aspose.Cells output"} ) + +{{< /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/english/net/excel-data-import-export/_index.md b/cells/english/net/excel-data-import-export/_index.md index 5742bbfcc6..f3cbbd4e9a 100644 --- a/cells/english/net/excel-data-import-export/_index.md +++ b/cells/english/net/excel-data-import-export/_index.md @@ -32,6 +32,10 @@ Next up is another common challenge: inserting DataTable rows into Excel without Learn how to import data into Excel with custom DB Num formatting using Aspose.Cells for .NET in this easy-to-follow tutorial. ### [Shift First Row Down When Inserting DataTable Rows in Excel](./shift-first-row-down-when-inserting-cells-datatable-rows-in-excel/) Learn to insert DataTable rows in Excel without shifting the first row down using Aspose.Cells for .NET. Step-by-step guide for effortless automation. +### [Create Excel Workbook C# – Insert JSON and Save as XLSX](./create-excel-workbook-c-insert-json-and-save-as-xlsx/) +Learn how to create an Excel workbook in C#, insert JSON data, and save it as an XLSX file using Aspose.Cells for .NET. +### [Create Excel Workbook C# – Apply Currency Format and Import DataTable](./create-excel-workbook-c-apply-currency-format-and-import-dat/) +Learn how to create an Excel workbook in C#, apply currency formatting, and import a DataTable using Aspose.Cells for .NET. {{< /blocks/products/pf/tutorial-page-section >}} @@ -39,4 +43,4 @@ Learn to insert DataTable rows in Excel without shifting the first row down usin {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/english/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md b/cells/english/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md new file mode 100644 index 0000000000..723c1f2490 --- /dev/null +++ b/cells/english/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md @@ -0,0 +1,284 @@ +--- +category: general +date: 2026-03-30 +description: Create Excel workbook C# with currency formatting. Learn how to import + a DataTable, add number format Excel, and apply currency format column in minutes. +draft: false +keywords: +- create excel workbook c# +- format cells currency +- import datatable to excel +- add number format excel +- apply currency format column +language: en +og_description: Create Excel workbook C# and instantly format cells as currency. This + step‑by‑step tutorial shows how to import a DataTable to Excel and add number format + Excel for a column. +og_title: Create Excel Workbook C# – Currency Formatting Guide +tags: +- Aspose.Cells +- C# +- Excel automation +title: Create Excel Workbook C# – Apply Currency Format and Import DataTable +url: /net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Create Excel Workbook C# – Apply Currency Format and Import DataTable + +Ever needed to **create Excel workbook C#** that already looks like a polished report? Maybe you’re pulling sales numbers from a database and you want the price column to show as dollars without fiddling with Excel manually. Sound familiar? You’re not alone—most developers hit this snag when they first automate Excel exports. + +In this guide we’ll walk through a complete, ready‑to‑run solution that **creates an Excel workbook C#**, imports a `DataTable`, and **formats the Price column as currency**. By the end you’ll have a file called `StyledTable.xlsx` that you can open and see nicely formatted numbers. No extra post‑processing required. + +> **What you’ll learn** +> - How to set up Aspose.Cells in a .NET project +> - How to **import datatable to excel** with a style array +> - How to **add number format excel** for a specific column +> - Tips for handling more columns or different locales + +> **Prerequisites** +> - .NET 6+ (or .NET Framework 4.6+) installed +> - Aspose.Cells for .NET NuGet package (`Install-Package Aspose.Cells`) +> - Basic familiarity with C# and DataTables + +--- + +## Step 1: Prepare the DataTable (import datatable to excel) + +First, we need some sample data. In a real‑world app you’d likely fill this table from a DB query, but a hard‑coded example keeps things simple. + +```csharp +using System.Data; + +// Create a DataTable with two columns: Product (string) and Price (double) +DataTable dataTable = new DataTable(); +dataTable.Columns.Add("Product", typeof(string)); +dataTable.Columns.Add("Price", typeof(double)); + +// Add a few rows – you can add as many as you like +dataTable.Rows.Add("Apple", 1.23); +dataTable.Rows.Add("Banana", 0.78); +dataTable.Rows.Add("Cherry", 2.50); +``` + +*Why this matters*: The `DataTable` is the bridge between your business data and the Excel file. Aspose.Cells can import it directly, preserving column names and data types. + +--- + +## Step 2: Spin Up a New Workbook (create excel workbook c#) + +Now we create the actual Excel file object. Think of it as the blank canvas you’ll paint on. + +```csharp +using Aspose.Cells; + +// Instantiate a fresh workbook – this is the core of create excel workbook c# +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0). You could also add more sheets later. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Pro tip:** If you need multiple sheets, call `workbook.Worksheets.Add()` and give each a meaningful name. + +--- + +## Step 3: Define a Currency Style (format cells currency) + +Aspose.Cells lets you craft a `Style` object that describes how cells should look. For currency we use the built‑in number format ID 164 (`"$#,##0.00"`). + +```csharp +// Create a new style object for the price column +Style priceStyle = workbook.CreateStyle(); +priceStyle.Number = 164; // Built‑in currency format "$#,##0.00" +``` + +*Why not just set the format string?* Using the built‑in ID ensures compatibility across Excel versions and avoids locale‑specific quirks. + +--- + +## Step 4: Build the Style Array (apply currency format column) + +When importing a `DataTable`, you can pass an array of `Style` objects—one per column. `null` means “use the default style”. Here we apply `priceStyle` only to the second column. + +```csharp +// Column 0 (Product) gets the default style, Column 1 (Price) gets the currency style +Style[] columnStyles = { null, priceStyle }; +``` + +If you later add more columns, just extend the array accordingly. The length of `columnStyles` must match the number of columns you’re importing, otherwise Aspose will throw an exception. + +--- + +## Step 5: Import the DataTable with Styles (import datatable to excel) + +Now the magic happens—our `DataTable` lands in the worksheet, and the price column instantly shows as currency. + +```csharp +// Parameters: +// - dataTable: source data +// - true: include column headers +// - startRow: 0 (top of sheet) +// - startColumn: 0 (first column) +// - columnStyles: style array defined above +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +*What if you have more than two columns?* Just expand `columnStyles` so each column gets the appropriate style (or `null` for default). This is the cleanest way to **add number format excel** selectively. + +--- + +## Step 6: Save the Workbook (create excel workbook c#) + +Finally, we write the file to disk. Choose any folder you have write access to. + +```csharp +// Save the workbook as an XLSX file +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +Open `StyledTable.xlsx` in Excel and you should see: + +| Product | Price | +|---------|-------| +| Apple | $1.23 | +| Banana | $0.78 | +| Cherry | $2.50 | + +The **Price** column is already formatted as currency—no extra steps needed. + +--- + +## Edge Cases & Variations + +### More Columns, Different Formats + +If you need to **format cells currency** for several columns (e.g., Cost, Tax, Total), create a separate `Style` for each and populate `columnStyles` accordingly: + +```csharp +Style costStyle = workbook.CreateStyle(); +costStyle.Number = 164; // currency + +Style taxStyle = workbook.CreateStyle(); +taxStyle.Number = 164; + +// Assuming columns: Product, Cost, Tax, Total +Style[] styles = { null, costStyle, taxStyle, priceStyle }; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, styles); +``` + +### Locale‑Specific Currency + +For Euro or British Pound, use different built‑in IDs (e.g., 165 for `€#,##0.00`). Alternatively, set a custom format string: + +```csharp +priceStyle.Custom = "€#,##0.00"; +``` + +### Large Data Sets + +Aspose.Cells can handle millions of rows, but memory consumption grows with style objects. Reuse a single `Style` instance for all currency columns to keep the footprint low. + +### Missing Styles + +If `columnStyles` is shorter than the number of columns, Aspose will apply the default style to the remaining columns. This is handy when you only care about a few columns. + +--- + +## Full Working Example (All Steps Combined) + +Below is the complete program you can copy‑paste into a console app. It includes all the pieces we discussed, plus a few helpful comments. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // Step 1: Build sample DataTable (import datatable to excel) + // ------------------------------------------------- + DataTable dataTable = new DataTable(); + dataTable.Columns.Add("Product", typeof(string)); + dataTable.Columns.Add("Price", typeof(double)); + dataTable.Rows.Add("Apple", 1.23); + dataTable.Rows.Add("Banana", 0.78); + dataTable.Rows.Add("Cherry", 2.50); + // You can add as many rows as you like here. + + // ------------------------------------------------- + // Step 2: Create a new workbook (create excel workbook c#) + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // Step 3: Define a currency style (format cells currency) + // ------------------------------------------------- + Style priceStyle = workbook.CreateStyle(); + priceStyle.Number = 164; // "$#,##0.00" – built‑in currency format + + // ------------------------------------------------- + // Step 4: Build the style array (apply currency format column) + // ------------------------------------------------- + // First column gets default style (null), second column uses priceStyle. + Style[] columnStyles = { null, priceStyle }; + + // ------------------------------------------------- + // Step 5: Import the DataTable with the style array + // ------------------------------------------------- + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // ------------------------------------------------- + // Step 6: Save the workbook to disk + // ------------------------------------------------- + string outputPath = @"YOUR_DIRECTORY\StyledTable.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } +} +``` + +**Expected result:** Opening `StyledTable.xlsx` shows the `Price` column with a dollar sign and two decimal places, exactly as the `format cells currency` instruction demanded. + +--- + +## Frequently Asked Questions + +**Q: Does this work with .NET Core?** +A: Absolutely. Aspose.Cells is .NET‑standard compliant, so you can target .NET 5, .NET 6, or later without changes. + +**Q: What if my DataTable has 10 columns but I only want to format column 5?** +A: Create a `Style[]` of length 10, fill positions 0‑4 and 6‑9 with `null`, and put your custom style at index 4 (zero‑based). Aspose will respect each entry. + +**Q: Can I hide the header row?** +A: After import, set `worksheet.Cells.Rows[0].Hidden = true;` or simply pass `false` for the `includeColumnNames` parameter in `ImportDataTable`. + +--- + +## Conclusion + +We’ve just **created an Excel workbook C#**, imported a `DataTable`, and **applied a currency format column** using Aspose.Cells. The primary steps—preparing data, defining a style, building a style array, importing with `ImportDataTable`, and saving—cover the core of most Excel‑automation tasks. + +From here you might explore: + +- **add number format excel** for dates or percentages +- Exporting multiple worksheets in a single file +- Using **format cells currency** with locale‑specific symbols +- Automating chart creation based on the same data + +Give those a try, and you’ll quickly become the go‑to person for Excel reporting in your team. Got a twist you’d like to share? Drop a comment below—happy coding! + +![create excel workbook c# screenshot](image.png "create excel workbook c#") + +{{< /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/english/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md b/cells/english/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md new file mode 100644 index 0000000000..b62b51cf84 --- /dev/null +++ b/cells/english/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-03-30 +description: Create Excel workbook C# quickly by inserting JSON data and saving workbook + as XLSX. Learn how to generate Excel from JSON, write JSON to Excel, and insert + JSON into Excel. +draft: false +keywords: +- create excel workbook c# +- save workbook as xlsx +- generate excel from json +- write json to excel +- insert json into excel +language: en +og_description: Create Excel workbook C# quickly by inserting JSON data and saving + workbook as XLSX. Follow this step‑by‑step guide to generate Excel from JSON. +og_title: Create Excel Workbook C# – Insert JSON and Save as XLSX +tags: +- Aspose.Cells +- C# +- Excel automation +title: Create Excel Workbook C# – Insert JSON and Save as XLSX +url: /net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Create Excel Workbook C# – Insert JSON and Save as XLSX + +Ever needed to **create Excel workbook C#** and dump some JSON straight into a cell? You're not the only one—developers often face the same puzzle when they have API payloads or configuration files that need to land in a spreadsheet for reporting or sharing. + +The good news is that with Aspose.Cells you can do it in a handful of lines, **save workbook as XLSX**, and keep the whole process type‑safe. In this tutorial we’ll **generate Excel from JSON**, **write JSON to Excel**, and show you the exact steps to **insert JSON into Excel** without any fiddly string concatenations. + +## What This Guide Covers + +We'll walk through: + +1. Setting up a fresh workbook. +2. Adding a Smart Marker that expects JSON. +3. Feeding a JSON array to the marker. +4. Tweaking `SmartMarkerOptions` so the JSON stays in one cell. +5. Saving the file as an XLSX workbook. + +By the end you’ll have a ready‑to‑use `JsonSingleCell.xlsx` file and a solid pattern you can reuse for any JSON‑to‑Excel scenario. No external services, just plain C# and the Aspose.Cells library. + +**Prerequisites** + +- .NET 6+ (or .NET Framework 4.6+). +- Visual Studio 2022 or any C#‑compatible IDE. +- NuGet package `Aspose.Cells` (free trial or licensed version). + +If you’ve got those, let’s dive in—no extra setup required. + +--- + +## Step 1: Create a New Workbook in C# + +The first thing you need is a blank workbook object. Think of it as a fresh Excel file waiting for data. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is your empty Excel file +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; +``` + +**Why this matters:** +`Workbook` is the entry point for all Excel operations. By creating it first, you ensure that the subsequent **save workbook as xlsx** call has a concrete object to serialize. + +> **Pro tip:** If you plan to work with multiple sheets, you can add them now with `workbook.Worksheets.Add()`. + +--- + +## Step 2: Place a Smart Marker that Expects JSON + +Smart Markers are placeholders Aspose.Cells replaces at runtime. Here we tell it to look for a JSON string named `data`. + +```csharp +// Put a Smart Marker in cell A1 – {{data:json}} tells Aspose to expect JSON +worksheet.Cells["A1"].PutValue("{{data:json}}"); +``` + +**Why this matters:** +The `:json` suffix tells the engine that the incoming value is JSON, not plain text. This is the key to **write json to excel** without manual parsing. + +--- + +## Step 3: Define the JSON Array + +Now we craft the JSON we want to insert. For demonstration we’ll use a simple list of people. + +```csharp +// Sample JSON array – could come from an API, file, or DB +string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; +``` + +**Edge case:** +If your JSON contains double quotes, make sure they’re escaped (as shown) or use a verbatim string (`@"..."`) to avoid compile errors. + +--- + +## Step 4: Configure Smart Marker Options – Keep the Array Whole + +By default, Aspose would try to expand the array across rows. We want the whole JSON string to stay inside a single cell, which is perfect for **insert json into excel** scenarios where the consumer will parse the JSON later. + +```csharp +SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions +{ + // Treat the whole array as a single cell value + ArrayAsSingle = true +}; +``` + +**Why this matters:** +`ArrayAsSingle = true` prevents row expansion, giving you a clean, single‑cell JSON blob. This is essential when the spreadsheet is a transport format rather than a report. + +--- + +## Step 5: Process the Smart Marker with the JSON Data + +We now bind the JSON to the marker and let Aspose do the heavy lifting. + +```csharp +// Process the marker – the anonymous object maps "data" to our JSON string +worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); +``` + +**What happens under the hood:** +Aspose evaluates the placeholder `{{data:json}}`, serializes the `jsonData` string, and writes it into cell A1 respecting the options we set. + +--- + +## Step 6: Save the Workbook as an XLSX File + +Finally, we write the workbook to disk. This is where **save workbook as xlsx** comes into play. + +```csharp +// Save the workbook – the extension determines the format (XLSX here) +workbook.Save("JsonSingleCell.xlsx"); +``` + +**Result:** +Open `JsonSingleCell.xlsx` in Excel, and you’ll see the JSON array exactly as we defined it, sitting neatly in cell A1. + +--- + +## Full, Runnable Example + +Below is the complete program you can copy‑paste into a console app. It includes all the steps above and runs out of the box (assuming the Aspose.Cells NuGet package is installed). + +```csharp +using System; +using Aspose.Cells; + +namespace JsonToExcelDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add a Smart Marker that expects JSON + worksheet.Cells["A1"].PutValue("{{data:json}}"); + + // 3️⃣ Define the JSON array + string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; + + // 4️⃣ Configure options – keep array as a single cell value + SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions + { + ArrayAsSingle = true + }; + + // 5️⃣ Process the marker with the JSON payload + worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); + + // 6️⃣ Save the workbook as XLSX + workbook.Save("JsonSingleCell.xlsx"); + + Console.WriteLine("Excel file created successfully! Check JsonSingleCell.xlsx."); + } + } +} +``` + +**Expected output in Excel** + +| A | +|---| +| `[{"Name":"John","Age":30},{"Name":"Jane","Age":28}]` | + +That single cell now holds a perfectly valid JSON array ready for downstream processing. + +--- + +## Common Questions & Edge Cases + +### What if I need the JSON spread across rows? + +Set `ArrayAsSingle = false` (the default). Aspose will create a row for each array element, mapping object properties to columns. This is handy when you want a tabular view instead of a raw JSON string. + +### Can I use a JSON file instead of a hard‑coded string? + +Absolutely. Read the file into a string: + +```csharp +string jsonData = File.ReadAllText("people.json"); +``` + +Then pass `jsonData` to the same `Process` call. The rest of the pipeline stays unchanged. + +### Does this work with large JSON payloads? + +Yes, but keep an eye on memory usage. For massive arrays, consider streaming the data or writing directly to rows (`ArrayAsSingle = false`) to avoid a single gigantic cell that Excel may struggle with. + +### Is the generated XLSX compatible with older Excel versions? + +The `.xlsx` format is based on Office Open XML and works with Excel 2007 onward. If you need the legacy `.xls` format, change the save call: + +```csharp +workbook.Save("JsonSingleCell.xls", SaveFormat.Excel97To2003); +``` + +--- + +## Pro Tips for Working with JSON and Excel + +- **Validate JSON first** – use `System.Text.Json.JsonDocument.Parse(jsonData)` to catch malformed input early. +- **Escape special characters** – if your JSON contains line breaks, they’ll appear as literal `\n` in the cell; you can replace them with `Environment.NewLine` before processing. +- **Reuse Smart Markers** – you can place multiple markers in the same sheet, each pointing to a different JSON property. +- **Combine with formulas** – once the JSON is in a cell, you can use Excel’s `FILTERXML` (in newer versions) to parse it on the fly. + +--- + +## Conclusion + +You now know how to **create excel workbook c#**, embed a JSON payload, and **save workbook as xlsx** using Aspose.Cells. This pattern lets you **generate excel from json**, **write json to excel**, and **insert json into excel** with just a few lines of code, making data exchange between services and analysts painless. + +Ready for the next step? Try converting the JSON array into a proper table (set `ArrayAsSingle = false`) or explore styling the sheet after insertion. The same approach works for CSV, XML, or even custom objects—just adjust the Smart Marker type. + +Happy coding, and feel free to experiment! If you hit any snags, drop a comment below or check out Aspose’s official docs for deeper dives into Smart Markers. + +{{< /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/english/net/excel-workbook/_index.md b/cells/english/net/excel-workbook/_index.md index 218f2099fa..33e4ba26fc 100644 --- a/cells/english/net/excel-workbook/_index.md +++ b/cells/english/net/excel-workbook/_index.md @@ -75,6 +75,7 @@ So why not embrace this chance to enhance your Excel skills? Each tutorial not o | [Adjust Compression Level](./adjust-compression-level/) | Learn how to adjust compression levels for Excel files using Aspose.Cells for .NET. Optimize your file sizes efficiently with this step-by-step guide. | | [Allow Leading Apostrophe](./allow-leading-apostrophe/) | Effortlessly manage leading apostrophes in Excel with Aspose.Cells for .NET. This comprehensive tutorial guides you step-by-step through the process. | | [Create Shared Workbook](./create-shared-workbook/) | Learn how to create a shared workbook using Aspose.Cells for .NET with this simple step-by-step guide. Perfect for enhancing team collaboration. | +| [Create master sheet in C# – Complete Aspose.Cells Guide](./create-master-sheet-in-c-complete-aspose-cells-guide/) | Learn how to create a master sheet in C# using Aspose.Cells for .NET with this comprehensive step-by-step guide. | | [Detect Link Types](./detect-link-types/) | Learn how to detect hyperlink types in Excel using Aspose.Cells for .NET. Easy steps and code examples included. | | [Extract Embedded Mol File](./extract-embedded-mol-file/) | Learn how to easily extract embedded MOL files from an Excel workbook using Aspose.Cells for .NET. | | [Filter Defined Names While Loading Workbook](./filter-defined-names-while-loading-workbook/) | Learn how to filter defined names while loading a workbook with Aspose.Cells for .NET in this comprehensive guide. | @@ -93,4 +94,4 @@ So why not embrace this chance to enhance your Excel skills? Each tutorial not o {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/english/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md b/cells/english/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md new file mode 100644 index 0000000000..b8abe8c554 --- /dev/null +++ b/cells/english/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md @@ -0,0 +1,244 @@ +--- +category: general +date: 2026-03-30 +description: Create master sheet using Aspose.Cells in C#. Learn how to create Excel + workbook C#, allow duplicate sheet names and save workbook as XLSX in a few steps. +draft: false +keywords: +- create master sheet +- create excel workbook c# +- save workbook as xlsx +- allow duplicate sheet names +language: en +og_description: Create master sheet with Aspose.Cells in C#. This guide shows how + to create Excel workbook C#, allow duplicate sheet names, and save workbook as XLSX. +og_title: Create master sheet in C# – Complete Aspose.Cells Guide +tags: +- Aspose.Cells +- C# +- Excel automation +title: Create master sheet in C# – Complete Aspose.Cells Guide +url: /net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Create master sheet in C# – Complete Aspose.Cells Guide + +Ever needed to **create master sheet** in an Excel file but weren’t sure how to handle a bunch of detail sheets that share the same base name? You’re not alone. In many reporting scenarios you end up with dozens of detail tabs, and the default behavior of most libraries is to throw an exception when two sheets would end up with the same name. + +Luckily, Aspose.Cells makes it a piece of cake to **create master sheet**, configure the engine to **allow duplicate sheet names**, and then **save workbook as XLSX**—all from clean C# code. In this tutorial we’ll walk through a fully runnable example, explain why each line matters, and give you a handful of tips you can copy straight into your own projects. + +> **What you’ll walk away with** +> * How to **create Excel workbook C#**‑style using Aspose.Cells. +> * How to embed a smart‑marker that spawns a detail sheet for each data row. +> * How to set `DetailSheetNewName = DuplicateAllowed` so the library automatically appends a numeric suffix. +> * How to **save workbook as XLSX** on disk without any extra steps. + +No external documentation required—everything you need is right here. + +--- + +## Prerequisites + +Before we dive in, make sure you have: + +| Requirement | Why it matters | +|-------------|----------------| +| .NET 6.0 or later (or .NET Framework 4.7+) | Aspose.Cells 23.x+ targets these runtimes. | +| Visual Studio 2022 (or any C# IDE) | For easy project creation and debugging. | +| Aspose.Cells for .NET NuGet package (`Install-Package Aspose.Cells`) | The library that powers all the smart‑marker magic. | +| Basic C# knowledge | You’ll understand the syntax without a crash‑course. | + +If you’re missing any of these, just add them now—there’s no point in continuing with a half‑baked environment. + +--- + +## Step 1: Create master sheet with Aspose.Cells + +The first thing we do is **create Excel workbook C#** style by instantiating a `Workbook` object. This object already contains a default worksheet, which we’ll rename to “Master” and treat as the template for all detail pages. + +```csharp +using Aspose.Cells; + +// Step 1: Initialise a new workbook – this automatically gives us one sheet +Workbook workbook = new Workbook(); + +// Grab the first (and only) worksheet that comes with a fresh workbook +Worksheet masterSheet = workbook.Worksheets[0]; + +// Give it a meaningful name – this will be our master sheet +masterSheet.Name = "Master"; +``` + +*Why rename the sheet?* +A default name like “Sheet1” doesn’t convey intent, and later when you scan the file you’ll want the master tab instantly recognizable. Naming also prevents accidental collisions when you later add more sheets. + +--- + +## Step 2: Prepare the smart‑marker that will spawn detail sheets + +Smart‑markers are placeholders that Aspose.Cells replaces with data at runtime. By putting `{{#detail:DataSheetName}}` in cell **A1**, we tell the engine: “For every record in the data source, create a new sheet whose name comes from the `DataSheetName` field.” + +```csharp +// Step 2: Insert a smart‑marker into cell A1. +// The marker #detail tells Aspose.Cells to generate a new sheet per data row. +masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); +``` + +Think of the marker as a tiny instruction card stuck on the worksheet. When the processor runs, it reads the card, pulls the appropriate value from the data source, and then clones the master sheet into a new tab. + +--- + +## Step 3: Build the data source – duplicate sheet names on purpose + +In real life you might pull this from a database, but for the demo we’ll use an in‑memory array of anonymous objects. Notice both items use the same base name `"Detail"`; this is the scenario where **allow duplicate sheet names** becomes crucial. + +```csharp +// Step 3: Create a data source with two items that share the same base sheet name. +var dataSource = new[] +{ + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } +}; +``` + +If you tried this without any special options, Aspose.Cells would raise an exception on the second iteration because a sheet called “Detail” already exists. That’s why the next step matters. + +--- + +## Step 4: Enable duplicate sheet names + +Aspose.Cells exposes `SmartMarkerOptions.DetailSheetNewName`. Setting it to `DetailSheetNewName.DuplicateAllowed` tells the engine to automatically append a numeric suffix (e.g., “Detail_1”) whenever a name clash occurs. + +```csharp +// Step 4: Configure SmartMarker options to permit duplicate sheet names. +var smartMarkerOptions = new SmartMarkerOptions +{ + // This makes the library rename clashes to "Detail_1", "Detail_2", etc. + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed +}; +``` + +*Why not just give each row a unique name manually?* +Because often the source data doesn't guarantee uniqueness, especially when users input free‑form text. Letting the library handle the suffix removes a whole class of bugs. + +--- + +## Step 5: Process the smart‑markers and generate the detail sheets + +Now we call `SmartMarkers.Process`, passing both the data source and the options we just configured. The method walks through each item, clones the master sheet, and renames the clone according to the `DataSheetName` field (plus a suffix if needed). + +```csharp +// Step 5: Run the smart‑marker processor – this creates the detail sheets. +masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); +``` + +After this line executes you’ll have three tabs in the workbook: + +1. **Master** – the original template. +2. **Detail** – first generated sheet (no suffix needed). +3. **Detail_1** – second generated sheet (suffix added automatically). + +You can verify this by opening the file in Excel; you’ll see the two detail sheets side‑by‑side. + +--- + +## Step 6: Save workbook as XLSX file + +Finally, we persist the file to disk. The `Save` method automatically chooses the XLSX format when you give it a `.xlsx` extension. + +```csharp +// Step 6: Persist the workbook – this is the moment we finally “save workbook as XLSX”. +string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; +workbook.Save(outputPath); +``` + +**Pro tip:** If you need to stream the file directly to a web response (e.g., ASP.NET Core), use `workbook.Save(stream, SaveFormat.Xlsx)` instead of a file path. + +--- + +## Full Working Example + +Below is the complete, ready‑to‑run program. Copy‑paste it into a console app, hit F5, and open the generated file to see the result. + +```csharp +using System; +using Aspose.Cells; + +namespace MasterSheetDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook and rename the default sheet to "Master" + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert a smart‑marker that will generate a detail sheet per data row + masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); + + // 3️⃣ Prepare a data source where two rows share the same sheet name + var dataSource = new[] + { + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } + }; + + // 4️⃣ Allow duplicate sheet names – the library will add "_1", "_2", … + var smartMarkerOptions = new SmartMarkerOptions + { + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed + }; + + // 5️⃣ Process the smart‑markers; this creates the detail sheets + masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); + + // 6️⃣ Save the workbook as an XLSX file + string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Expected outcome:** Open `DuplicateDetailSheets.xlsx` and you’ll see three worksheets—`Master`, `Detail`, and `Detail_1`. Each detail sheet is an exact copy of the master, ready for you to fill with row‑specific data later. + +--- + +## Common Questions & Edge Cases + +### What if I need more than two duplicate sheets? + +No problem. The same `DuplicateAllowed` setting will keep appending incremental numbers (`Detail_2`, `Detail_3`, …) until every row has its own tab. + +### Can I customize the suffix format? + +Out of the box, Aspose.Cells uses an underscore followed by a numeric index. If you need a different pattern (e.g., “Detail‑A”, “Detail‑B”), you’ll have to post‑process the workbook after `Process` runs, iterating over `workbook.Worksheets` and renaming as you see fit. + +### Does this approach work with large data sets (hundreds of rows)? + +Yes, but keep an eye on memory usage. Each generated sheet is a full copy of the master, so a massive number of rows can inflate the file size quickly. If you only need a few rows per sheet, consider using `SmartMarkerOptions.RemoveEmptyRows = true` to trim excess cells. + +### Is the generated file truly an XLSX file? + +Absolutely. The `Save` method writes the Open XML package that Excel expects. You can even open the file with LibreOffice or Google Sheets without any conversion. + +--- + +## Tips for Production‑Ready Code + +| Tip | Why it matters | +|-----|----------------| +| **Dispose `Workbook + +{{< /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/english/net/formulas-functions/_index.md b/cells/english/net/formulas-functions/_index.md index 830f9c24c1..ee761c103d 100644 --- a/cells/english/net/formulas-functions/_index.md +++ b/cells/english/net/formulas-functions/_index.md @@ -102,6 +102,12 @@ Learn how to specify the language of your Excel files using Aspose.Cells .NET. E ### [Update Excel Power Query Formulas with Aspose.Cells .NET](./update-power-query-formulas-aspose-cells-net) Learn how to programmatically update Power Query formulas in Excel workbooks using Aspose.Cells for .NET. Master data source management for dynamic reporting. +### [How to Use WRAPCOLS in C# – Create Excel Workbook with Wrap Functions](./how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/) +Learn how to apply the WRAPCOLS function in C# using Aspose.Cells to create Excel workbooks with wrapped column data. + +### [Create Excel Workbook C# – Lambda, SEQUENCE & EXPAND Guide](./create-excel-workbook-c-lambda-sequence-expand-guide/) +Learn how to create Excel workbooks in C# using Lambda functions, SEQUENCE and EXPAND formulas with Aspose.Cells for .NET. + ## Understanding Excel Formula Types Excel formulas come in various forms, each with unique characteristics that Aspose.Cells can manage: diff --git a/cells/english/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md b/cells/english/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md new file mode 100644 index 0000000000..2f972447f3 --- /dev/null +++ b/cells/english/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md @@ -0,0 +1,212 @@ +--- +category: general +date: 2026-03-30 +description: Create Excel workbook C# using Aspose.Cells. Learn to apply lambda function + Excel, sequence function Excel, expand array Excel, and save workbook as xlsx. +draft: false +keywords: +- create excel workbook c# +- lambda function excel +- save workbook as xlsx +- sequence function excel +- expand array excel +language: en +og_description: Create Excel workbook C# quickly. This guide shows how to use lambda + function Excel, sequence function Excel, expand array Excel, and save workbook as + xlsx. +og_title: Create Excel Workbook C# – Lambda, SEQUENCE & EXPAND Guide +tags: +- Aspose.Cells +- C# +- Excel automation +title: Create Excel Workbook C# – Lambda, SEQUENCE & EXPAND Guide +url: /net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Create Excel Workbook C# – Lambda, SEQUENCE & EXPAND Guide + +Ever needed to **create Excel workbook C#** for an automated report, but weren’t sure which API calls to use? You’re not alone—many developers hit the same wall when they first dive into programmatic Excel generation. In this guide you’ll see a complete, runnable example that covers everything from the new **SEQUENCE function Excel** to the powerful **LAMBDA function Excel**, and even how to **expand array Excel** results. + +We’ll also show you the exact steps to **save workbook as xlsx** so you can hand the file off to anyone who uses Excel. By the end of this tutorial you’ll have a solid, production‑ready snippet that you can drop into any .NET project. No vague “see the docs” links—just code that works today. + +## What You’ll Need + +- **.NET 6.0 or later** – the example targets .NET 6, but any recent version works. +- **Aspose.Cells for .NET** – install via NuGet (`Install-Package Aspose.Cells`). +- A basic understanding of C# syntax (variables, objects, and lambda expressions). +- An IDE you’re comfortable with (Visual Studio, Rider, or VS Code). + +That’s it. No extra COM interop, no Office installed on the server—Aspose.Cells handles everything in memory. + +## Create Excel Workbook C# – Step‑by‑Step Implementation + +Below we break the process into bite‑size steps. Each step has a clear header, a short code excerpt, and an explanation of **why** we’re doing it. Feel free to copy the full block at the end and run it as a console app. + +### Step 1 – Initialize a New Workbook + +First things first: we need a blank workbook object that represents the Excel file in memory. + +```csharp +using Aspose.Cells; + +// Step 1: Create a new workbook and get the first worksheet +Workbook workbook = new Workbook(); // empty workbook +Worksheet sheet = workbook.Worksheets[0]; // default first sheet +``` + +*Why this matters:* `Workbook` is the entry point for all Aspose.Cells operations. By grabbing the first `Worksheet` we get a canvas where we can write formulas, values, or formatting. + +> **Pro tip:** If you need multiple sheets, just call `workbook.Worksheets.Add()` and keep a reference to each. + +### Step 2 – Use the SEQUENCE function Excel to Generate Data + +The **sequence function excel** creates a dynamic array of numbers without any VBA. We’ll place it in cell `A1` and let Excel expand it automatically. + +```csharp +// Step 2: Generate a 5‑row, 1‑column array from a SEQUENCE +sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; // 1..3 padded with blanks +``` + +*Why this matters:* `SEQUENCE(3)` yields `[1,2,3]`. Wrapping it with `EXPAND` forces the result into a 5‑row range, filling the extra rows with blanks. This demonstrates both **sequence function excel** and **expand array excel** in one go. + +### Step 3 – Aggregate Numbers with LAMBDA function Excel + +Now let’s showcase the **lambda function excel** capability. We’ll sum the numbers 1‑5 using the new `REDUCE` function, which internally relies on a lambda. + +```csharp +// Step 3: Aggregate a sequence (sum 1..5) using REDUCE/LAMBDA +sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; // result = 15 +``` + +*Why this matters:* `REDUCE` iterates over the array produced by `SEQUENCE(5)`, feeding each element (`b`) into the lambda alongside the accumulator (`a`). The lambda `a+b` adds them up, leaving `15` in `B1`. This is a clean, formula‑only way to perform reductions without looping in C#. + +### Step 4 – Apply Trigonometric Functions Directly in Cells + +Excel’s built‑in math functions are handy for quick calculations. We’ll put a cotangent and a hyperbolic cotangent in adjacent cells. + +```csharp +// Step 4: Trigonometric functions directly in Excel cells +sheet["C1"].Formula = "COT(PI()/4)"; // evaluates to 1 +sheet["D1"].Formula = "COTH(1)"; // hyperbolic cotangent of 1 +``` + +*Why this matters:* Demonstrates that you can mix classic math functions with the newer dynamic‑array formulas. No need to compute these values in C# unless you have a specific performance reason. + +### Step 5 – Calculate All Formulas + +Aspose.Cells doesn’t automatically evaluate formulas when you set them. You have to ask it to calculate. + +```csharp +// Step 5: Force calculation so that cells store the results +workbook.CalculateFormula(); +``` + +*Why this matters:* After this call, each cell’s `Value` property contains the evaluated result, ready to be saved or read back. + +### Step 6 – Save the Workbook as Xlsx + +Finally, we persist the workbook to disk using the **save workbook as xlsx** pattern. + +```csharp +// Step 6: Save the workbook to an Excel file (XLSX format) +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + +workbook.Save(outputPath); +Console.WriteLine($"Workbook saved to: {outputPath}"); +``` + +*Why this matters:* The `Save` method automatically detects the file extension. By using “.xlsx” we ensure the file is compatible with modern Excel versions. The path points to the desktop for easy access during testing. + +### Full Working Example + +Below is the complete program you can paste into a new console project. It includes all the steps above, plus a tiny verification block that prints the calculated values to the console. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialize workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + + // SEQUENCE + EXPAND + sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; + + // REDUCE with LAMBDA + sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; + + // Trig functions + sheet["C1"].Formula = "COT(PI()/4)"; + sheet["D1"].Formula = "COTH(1)"; + + // Calculate formulas + workbook.CalculateFormula(); + + // Verify results (optional) + Console.WriteLine("A1‑A5 (expanded SEQUENCE):"); + for (int i = 0; i < 5; i++) + { + Console.WriteLine($" Row {i + 1}: {sheet.Cells[i, 0].Value ?? "blank"}"); + } + Console.WriteLine($"B1 (sum 1‑5): {sheet["B1"].Value}"); + Console.WriteLine($"C1 (cot(π/4)): {sheet["C1"].Value}"); + Console.WriteLine($"D1 (coth(1)): {sheet["D1"].Value}"); + + // Save workbook + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + workbook.Save(outputPath); + Console.WriteLine($"Workbook saved to: {outputPath}"); + } +} +``` + +**Expected output in the console** + +``` +A1‑A5 (expanded SEQUENCE): + Row 1: 1 + Row 2: 2 + Row 3: 3 + Row 4: blank + Row 5: blank +B1 (sum 1‑5): 15 +C1 (cot(π/4)): 1 +D1 (coth(1)): 1.31303528549933 +Workbook saved to: C:\Users\YourName\Desktop\NewFunctions.xlsx +``` + +And when you open *NewFunctions.xlsx* you’ll see the same numbers laid out in the first four columns. + +![create excel workbook c# screenshot of the resulting spreadsheet](/images/create-excel-workbook-csharp.png) + +## Edge Cases, Tips, and Common Questions + +- **What if I need more than one sheet?** + Just call `workbook.Worksheets.Add()` and repeat the formula assignments on each new `Worksheet` object. + +- **Can I use older Excel versions?** + The dynamic‑array functions (`SEQUENCE`, `EXPAND`, `REDUCE`) require Excel 365 or Excel 2021+. If you target older versions, stick to classic formulas or compute the values in C# before writing them. + +- **Performance concerns?** + For thousands of rows, setting formulas on a range and then calling `CalculateFormula` is usually faster than looping and assigning values one‑by‑one. + +- **Saving to a stream instead of a file?** + `work + +{{< /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/english/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md b/cells/english/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md new file mode 100644 index 0000000000..0df55ada7e --- /dev/null +++ b/cells/english/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md @@ -0,0 +1,212 @@ +--- +category: general +date: 2026-03-30 +description: Learn how to use WRAPCOLS in C# to create an Excel workbook, add data + to Excel, and force formula calculation while also using WRAPROWS. +draft: false +keywords: +- how to use wrapcols +- create excel workbook c# +- add data to excel +- force formula calculation +- how to use wraprows +language: en +og_description: Discover how to use WRAPCOLS in C# to build an Excel workbook, add + data, force formula calculation and leverage WRAPROWS for array formulas. +og_title: How to Use WRAPCOLS in C# – Complete Guide +tags: +- Aspose.Cells +- C# +- Excel Automation +title: How to Use WRAPCOLS in C# – Create Excel Workbook with Wrap Functions +url: /net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# How to Use WRAPCOLS in C# – Create Excel Workbook with Wrap Functions + +Ever wondered **how to use WRAPCOLS** when you’re automating Excel with C#? You’re not alone—many developers hit a wall when they need to turn a horizontal range into a vertical array without writing a ton of code. The good news is that Aspose.Cells makes it a piece of cake. + +In this tutorial we’ll walk through a complete, runnable example that shows **how to use WRAPCOLS**, how to **create Excel workbook C#**‑style, how to **add data to Excel**, and even how to **force formula calculation** so the results appear instantly. We’ll also sprinkle in **how to use WRAPROWS** for the opposite transformation. By the end you’ll have a ready‑to‑run program and a clear understanding of why each step matters. + +--- + +![How to use WRAPCOLS in C# example](alt="Screenshot showing Excel workbook after using WRAPCOLS in C#") + +## What This Guide Covers + +* Setting up a fresh workbook with Aspose.Cells. +* Populating cells programmatically (**add data to Excel**). +* Applying the `WRAPCOLS` function to turn a row into a column. +* Using `WRAPROWS` to flip a column back into a row (**how to use wraprows**). +* Forcing the engine to evaluate formulas right away (**force formula calculation**). +* Saving the file and checking the output. + +No external documentation required—everything you need lives right here. + +--- + +## How to Use WRAPCOLS in C# – Step‑by‑Step Implementation + +Below is the full source file. Feel free to copy‑paste it into a new console project, add the Aspose.Cells NuGet package, and hit **F5**. + +```csharp +// ------------------------------------------------------------ +// How to Use WRAPCOLS in C# – Complete Example +// ------------------------------------------------------------ +using System; +using Aspose.Cells; + +namespace WrapFunctionsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a fresh workbook (this is how we **create excel workbook c#** style) + Workbook workbook = new Workbook(); + + // 2️⃣ Grab the first worksheet – it's created by default + Worksheet sheet = workbook.Worksheets[0]; + + // 3️⃣ **Add data to Excel**: place two numbers side‑by‑side + sheet.Cells["A1"].PutValue(1); // first value + sheet.Cells["B1"].PutValue(2); // second value + + // 4️⃣ **How to use WRAPCOLS** – turn the horizontal range A1:B1 into a vertical array + // The second argument (1) tells WRAPCOLS to create 1 column per element. + sheet["C1"].Formula = "WRAPCOLS(A1:B1, 1)"; + + // 5️⃣ **How to use WRAPROWS** – the opposite; turn the same range into a horizontal array + // Here we ask for 2 rows per element, which produces a single row with both values. + sheet["C2"].Formula = "WRAPROWS(A1:B1, 2)"; + + // 6️⃣ **Force formula calculation** so the workbook reflects the results immediately + workbook.CalculateFormula(); + + // 7️⃣ Save the workbook to disk – change the path to a folder you own + string outputPath = @"WrapFunctions.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + Console.WriteLine("Check cells C1 and C2 for the WRAPCOLS / WRAPROWS results."); + } + } +} +``` + +### Why Each Line Matters + +| Step | Explanation | +|------|-------------| +| **1️⃣ Create a fresh workbook** | This is the foundation. Aspose.Cells treats a `Workbook` object as the entire Excel file, so you’re effectively **creating an Excel workbook C#** style. | +| **2️⃣ Grab the first worksheet** | A new workbook always contains at least one worksheet (`Worksheets[0]`). Accessing it early avoids null‑reference surprises. | +| **3️⃣ Add data to Excel** | By using `PutValue` we **add data to Excel** without worrying about cell formatting. The numbers `1` and `2` are our test data for the wrap functions. | +| **4️⃣ How to use WRAPCOLS** | `WRAPCOLS(A1:B1, 1)` tells Excel to take the range `A1:B1` and spill its values vertically, one per row. The result lands in `C1` and spills downwards (`C1`, `C2`, …). | +| **5️⃣ How to use WRAPROWS** | `WRAPROWS(A1:B1, 2)` does the opposite: it creates a horizontal spill, fitting the two values into a single row starting at `C2`. | +| **6️⃣ Force formula calculation** | By default, Aspose.Cells may defer calculation until the file is opened in Excel. Calling `CalculateFormula()` **forces formula calculation** so you can read the results immediately after saving. | +| **7️⃣ Save the workbook** | The final step writes everything to disk. Open the resulting `WrapFunctions.xlsx` to see the outcome. | + +--- + +## Create Excel Workbook C# – Setting Up the Environment + +Before you run the code, make sure you have the right tools: + +1. **.NET 6.0+** – The latest LTS version works best. +2. **Visual Studio 2022** (or VS Code with the C# extension). +3. **Aspose.Cells for .NET** – Install via NuGet: + ```bash + dotnet add package Aspose.Cells + ``` +4. A writeable folder for the output file. + +These prerequisites are minimal; no COM interop or Office installation is required, which is why Aspose.Cells is a popular choice for server‑side Excel generation. + +--- + +## Add Data to Excel – Best Practices + +When you **add data to Excel** programmatically, consider these tips: + +* **Use `PutValue`** for raw numbers or strings; it automatically detects the data type. +* **Avoid hard‑coding cell addresses** in large projects—use loops or named ranges for scalability. +* **Set cell styles sparingly**; each style change incurs overhead. If you need formatting, create a single style object and apply it to multiple cells. + +In our tiny example we only insert two numbers, but the same pattern scales to thousands of rows. + +--- + +## How to Use WRAPROWS – Horizontal Array Example + +If you need the opposite of `WRAPCOLS`, `WRAPROWS` is your go‑to. The syntax is: + +``` +WRAPROWS(source_range, [rows_per_item]) +``` + +* `source_range` – the range you want to transform. +* `rows_per_item` – optional; tells Excel how many rows each element occupies. In our demo we used `2` to force both values onto a single row. + +You can experiment by changing the second argument: + +```csharp +// Example: split each value into its own column, three rows per item +sheet["D1"].Formula = "WRAPROWS(A1:B1, 3)"; +``` + +Open the workbook and you’ll see the values spill across three columns, each column containing the original numbers repeated as needed. + +--- + +## Force Formula Calculation – When and Why + +You might wonder, “Do I really need to call `CalculateFormula()`?” The answer is **yes**, if: + +* You plan to read calculated values **programmatically** after saving. +* You want to guarantee the file opens in Excel with the correct results already displayed. +* You’re running in a **headless environment** (e.g., a web API) where no user will manually trigger a recalculation. + +Skipping this step won’t break the workbook, but the cells will show the formula text (`=WRAPCOLS(...)`) instead of the computed values until Excel recalculates. + +--- + +## Expected Output – What to Look For + +After running the program and opening `WrapFunctions.xlsx`: + +| Cell | Formula | Displayed Value | +|------|---------|-----------------| +| **C1** | `=WRAPCOLS(A1:B1, 1)` | `1` (in C1) and `2` (in C2) – a vertical list | +| **C2** | `=WRAPROWS(A1:B1, 2)` | `1` in C2 and `2` in D2 – a horizontal list | + +So you’ll see a column of values starting at **C1** and a row of values starting at **C2**. This confirms both wrap functions behaved as expected. + +--- + +## Edge Cases & Variations + +| Scenario | What changes? | Suggested tweak | +|----------|---------------|-----------------| +| **Large range (A1:Z1)** | More values to spill vertically | Increase the second argument of `WRAPCOLS` if you want multiple columns per group. | +| **Non‑numeric data** | Strings are handled the same way | No code change; `PutValue` accepts any object. | +| **Dynamic range** | You don’t know the size at compile time | Use `sheet.Cells.MaxDataColumn` and `MaxDataRow` to build the address string. | +| **Multiple worksheets** | Need to apply wrap functions on different sheets | Reference the correct worksheet (`workbook.Worksheets["Sheet2"]`). | + +By anticipating these variations, you can adapt the core pattern to almost any automation scenario. + +--- + +## Pro Tips from the Trenches + +* **Pro tip:** Wrap the workbook creation in a `using` block if you’re targeting .NET Core 3.1+ to ensure all resources are released promptly. +* **Watch out for:** Setting the same formula in a large range without calling `CalculateFormula()` can cause performance bottlenecks. Batch‑process formulas when possible. +* **Tip:** If you need to read back the calculated values in code, call ` + +{{< /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/english/net/tables-and-lists/_index.md b/cells/english/net/tables-and-lists/_index.md index 7440579806..4bc5542707 100644 --- a/cells/english/net/tables-and-lists/_index.md +++ b/cells/english/net/tables-and-lists/_index.md @@ -39,6 +39,8 @@ One of the most powerful features of Aspose.Cells for .NET is its ability to rea ## Tables and Lists Tutorials ### [Create List Object in Excel using Aspose.Cells](./creating-list-object/) Create a list object in Excel using Aspose.Cells for .NET with this detailed guide. Master easy data management and calculations. +### [Create Table from Range in C# – Complete Aspose.Cells Tutorial](./create-table-from-range-in-c-complete-aspose-cells-tutorial/) +Create a table from a range in Excel using Aspose.Cells for .NET with this step‑by‑step C# tutorial. ### [Format List Object in Excel with Aspose.Cells](./formatting-list-object/) Learn how to format a list object in Excel using Aspose.Cells for .NET. Create and style tables with ease. ### [Convert Table to ODS using Aspose.Cells](./converting-table-to-ods/) @@ -58,4 +60,4 @@ Learn how to set comments for tables in Excel using Aspose.Cells for .NET with o {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/cells/english/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md b/cells/english/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md new file mode 100644 index 0000000000..e56116d605 --- /dev/null +++ b/cells/english/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md @@ -0,0 +1,230 @@ +--- +category: general +date: 2026-03-30 +description: Create table from range in C# with Aspose.Cells – add data to cells, + convert range to ListObject and save Excel without filter. +draft: false +keywords: +- create table from range +- create excel workbook c# +- add data to cells +- convert range to listobject +- save excel without filter +language: en +og_description: Create table from range in C# with Aspose.Cells. Learn how to add + data to cells, convert a range to a ListObject, and save Excel without filter. +og_title: Create Table from Range in C# – Complete Aspose.Cells Tutorial +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Create Table from Range in C# – Complete Aspose.Cells Tutorial +url: /net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Create Table from Range in C# – Complete Aspose.Cells Tutorial + +Ever needed to **create table from range** in C# but weren’t sure how to turn a plain data block into a fully‑featured Excel table? You’re not the only one. Whether you’re automating reports, generating scorecards, or just cleaning up data for downstream analysis, mastering this little trick can save you a lot of manual work. + +In this guide we’ll walk through the whole process: **create excel workbook c#**, **add data to cells**, **convert range to ListObject**, and finally **save excel without filter**. By the end you’ll have a ready‑to‑run snippet that you can drop into any .NET project that references Aspose.Cells. + +--- + +## Prerequisites + +- .NET 6+ (or .NET Framework 4.7.2+) installed +- Aspose.Cells for .NET (NuGet package `Aspose.Cells`) – the latest version at the time of writing (23.10) works perfectly. +- A basic understanding of C# syntax – no deep Excel interop knowledge required. + +If you’ve got those, let’s get started. + +--- + +## Step 1: Create an Excel Workbook in C# + +First up we need a fresh workbook object. Think of this as the empty Excel file that will eventually hold our table. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is equivalent to opening a blank .xlsx file. +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (default) worksheet. +``` + +> **Pro tip:** `Workbook()` without arguments creates a workbook with one default worksheet, which is perfect for quick demos. If you need multiple sheets, you can add them later with `workbook.Worksheets.Add()`. + +--- + +## Step 2: Add Data to Cells + +Now we’ll populate the sheet with a tiny data set – two columns (Name, Score) and three rows of values. This demonstrates **add data to cells** in a clean, readable way. + +```csharp +// Header row +worksheet.Cells["A1"].PutValue("Name"); +worksheet.Cells["B1"].PutValue("Score"); + +// Data rows +worksheet.Cells["A2"].PutValue("Alice"); +worksheet.Cells["B2"].PutValue(85); +worksheet.Cells["A3"].PutValue("Bob"); +worksheet.Cells["B3"].PutValue(92); +``` + +Why use `PutValue`? It automatically detects the data type (string vs. numeric) and formats the cell accordingly, sparing you from fiddling with `Style` objects for simple scenarios. + +> **Expected output:** After this step, if you open the workbook in Excel you’ll see a two‑column grid with headers “Name” and “Score”, followed by two rows of data. + +--- + +## Step 3: Convert the Range into a ListObject (Table) + +Here’s where the magic happens: turning that plain range into an Excel table (called a **ListObject** in the Aspose.Cells API). This not only adds visual styling but also enables built‑in features like sorting, filtering, and structured references. + +```csharp +// Define the range boundaries. +// startRow and startColumn are zero‑based indexes. +// rowCount includes the header row. +int startRow = 0; // Row 1 in Excel +int startColumn = 0; // Column A +int rowCount = 3; // Header + 2 data rows +int columnCount = 2; // Two columns: Name & Score + +// Add a ListObject to the worksheet and retrieve the object. +int listIndex = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); +ListObject table = worksheet.ListObjects[listIndex]; + +// Turn on the UI filter dropdowns so users can interact with the table. +table.ShowAutoFilter = true; +``` + +> **Why use a ListObject?** +> - **Structured references**: Formulas can refer to columns by name. +> - **Auto‑filter UI**: Users get dropdown arrows for quick filtering. +> - **Styling**: You can apply built‑in table styles with a single line later. + +--- + +## Step 4: Remove the AutoFilter UI (Save Excel Without Filter) + +Sometimes you need a clean sheet with no filter arrows – for example, when the workbook is a final report. Aspose.Cells 23.10 introduced a straightforward way to drop the filter UI entirely. + +```csharp +// Remove the filter UI completely. +table.AutoFilter = null; // Clears the underlying filter object. +table.ShowAutoFilter = false; // Hides the dropdown arrows. +``` + +Notice we’re not deleting the data; we’re just turning off the visual filter controls. This satisfies the **save excel without filter** requirement. + +--- + +## Step 5: Save the Workbook + +Finally, write the workbook to disk. The file will contain the table but without any filter UI. + +```csharp +// Choose a folder you have write access to. +string outputPath = @"C:\Temp\NoAutoFilter.xlsx"; +workbook.Save(outputPath); +``` + +Open `NoAutoFilter.xlsx` in Excel – you’ll see the table styled with default formatting, but no filter arrows. The data is intact, and the file is ready for distribution. + +--- + +![Screenshot showing create table from range in Excel using Aspose.Cells](image.png "Create table from range screenshot") + +*Image alt text:* **Screenshot showing create table from range in Excel using Aspose.Cells** – visual proof that the table exists without filter dropdowns. + +--- + +## Full, Runnable Example + +Below is the complete program you can copy‑paste into a console app. It includes all the steps above, plus a couple of extra comments for clarity. + +```csharp +using System; +using Aspose.Cells; + +namespace AsposeTableDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add data to cells – this is the “add data to cells” part. + worksheet.Cells["A1"].PutValue("Name"); + worksheet.Cells["B1"].PutValue("Score"); + worksheet.Cells["A2"].PutValue("Alice"); + worksheet.Cells["B2"].PutValue(85); + worksheet.Cells["A3"].PutValue("Bob"); + worksheet.Cells["B3"].PutValue(92); + + // 3️⃣ Convert the range into a ListObject (i.e., create table from range). + int startRow = 0, startColumn = 0, rowCount = 3, columnCount = 2; + int listIdx = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); + ListObject table = worksheet.ListObjects[listIdx]; + table.ShowAutoFilter = true; // optional UI filter + + // 4️⃣ Remove the AutoFilter UI – “save excel without filter”. + table.AutoFilter = null; + table.ShowAutoFilter = false; + + // 5️⃣ Save the workbook. + string filePath = @"C:\Temp\NoAutoFilter.xlsx"; + workbook.Save(filePath); + + Console.WriteLine($"Workbook saved to {filePath}"); + } + } +} +``` + +Run the program, then open `C:\Temp\NoAutoFilter.xlsx`. You’ll see a nicely formatted table, no filter arrows, and the data we entered. That’s the entire **create excel workbook c#** workflow in under 60 lines of code. + +--- + +## Frequently Asked Questions & Edge Cases + +**Q: What if my data range isn’t contiguous?** +A: Aspose.Cells requires a rectangular range for `ListObjects.Add`. If you have non‑contiguous data, build a temporary range first (e.g., copy the pieces into a new worksheet) and then convert that range. + +**Q: Can I apply a custom table style?** +A: Absolutely. After creating the `ListObject`, set `table.TableStyleType = TableStyleType.TableStyleMedium9;` (or any of the 65 built‑in styles). This is a nice way to make the table match your corporate branding. + +**Q: How do I keep the filter but hide the arrows?** +A: The filter logic lives in `table.AutoFilter`. Setting `ShowAutoFilter = false` only hides the UI; the underlying filter remains. So you can still programmatically filter rows later. + +**Q: What about large datasets (10k+ rows)?** +A: The same API works, but consider turning off automatic calculations (`workbook.CalcEngine = false`) before bulk inserts for performance, then enable it after. + +--- + +## Wrap‑Up + +We’ve just covered how to **create table from range** in C# using Aspose.Cells, step by step—from **create excel workbook c#**, through **add data to cells**, to **convert range to ListObject**, and finally **save excel without filter**. The code is complete, runnable, and ready for production. + +Next, you might want to explore: + +- Adding conditional formatting to highlight top scores. +- Exporting the workbook to PDF with `workbook.Save("Report.pdf", SaveFormat.Pdf);`. +- Using `table.Columns["Score"].DataBodyRange.Sort` to programmatically sort the table. + +Feel free to experiment with different data sets, table styles, or even multiple worksheets. The API is flexible enough to handle anything from a tiny scoreboard to a massive financial ledger. + +Got questions or run into a snag? Drop a comment below or ping me on GitHub. Happy coding, and enjoy turning raw ranges into polished Excel tables! + +{{< /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/french/net/conversion-to-pdf/_index.md b/cells/french/net/conversion-to-pdf/_index.md index 1953cc3c78..84b1df4305 100644 --- a/cells/french/net/conversion-to-pdf/_index.md +++ b/cells/french/net/conversion-to-pdf/_index.md @@ -34,6 +34,8 @@ Mais ce n'est pas tout ! Vous souhaitez convertir des graphiques Excel en PDF ? Convertissez facilement vos feuilles de calcul Excel en PDF avec Aspose.Cells pour .NET ! Suivez notre guide étape par étape pour une expérience fluide. ### [Convertir un graphique en PDF dans .NET](./convert-chart-to-pdf/) Apprenez à convertir des graphiques Excel en PDF dans .NET avec Aspose.Cells grâce à ce guide étape par étape ! Idéal pour les programmeurs de tous niveaux. +### [Enregistrer un classeur au format PDF avec Aspose.Cells – Guide complet étape par étape](./save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/) +Apprenez à enregistrer un classeur Excel en PDF avec Aspose.Cells grâce à ce guide complet et détaillé. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/french/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md b/cells/french/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md new file mode 100644 index 0000000000..08f44e5ae0 --- /dev/null +++ b/cells/french/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md @@ -0,0 +1,247 @@ +--- +category: general +date: 2026-03-30 +description: Apprenez à enregistrer un classeur au format PDF en utilisant Aspose.Cells. + Ce tutoriel couvre également l'exportation d'une feuille de calcul au format PDF, + comment exporter Excel en PDF et créer un PDF à partir d'une feuille de calcul. +draft: false +keywords: +- save workbook as pdf +- export worksheet to pdf +- how to export excel to pdf +- save excel as pdf +- create pdf from worksheet +language: fr +og_description: Enregistrez facilement le classeur au format PDF. Ce guide montre + comment exporter une feuille de calcul en PDF, comment exporter Excel en PDF et + créer un PDF à partir d’une feuille de calcul en utilisant C#. +og_title: Enregistrer le classeur au format PDF avec Aspose.Cells – Guide complet +tags: +- Aspose.Cells +- C# +- PDF generation +title: Enregistrer le classeur au format PDF avec Aspose.Cells – Guide complet étape + par étape +url: /fr/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Enregistrer le classeur en pdf – Guide complet étape par étape + +Vous avez déjà eu besoin de **save workbook as pdf** mais vous n'étiez pas sûr de la bibliothèque qui garderait vos nombres intacts ? Vous n'êtes pas seul. Dans de nombreux projets, nous devons transformer des données Excel en un PDF soigné, et le faire correctement permet d'économiser des heures de débogage. + +Dans ce tutoriel, nous parcourrons le code exact dont vous avez besoin pour **save workbook as pdf** avec Aspose.Cells, et en cours de route nous vous montrerons également comment **export worksheet to pdf**, répondre aux questions *how to export excel to pdf*, et démontrer une méthode propre pour **create pdf from worksheet** avec des paramètres de précision personnalisés. + +À la fin du guide, vous disposerez d’une application console C# prête à l’emploi qui génère un PDF contenant uniquement les chiffres significatifs qui vous intéressent. Aucun superflu, juste une solution solide, prête pour la production. + +--- + +## Ce que vous apprendrez + +- Comment configurer un nouveau `Workbook` et cibler sa première feuille de calcul. +- La méthode exacte pour **save workbook as pdf** tout en préservant la précision numérique. +- Pourquoi la propriété `SignificantDigits` est importante lorsque vous **export worksheet to pdf**. +- Pièges courants lorsque vous essayez de **how to export excel to pdf** et comment les éviter. +- Méthodes rapides pour **save excel as pdf** avec différentes options de page, et comment **create pdf from worksheet** programmatique. + +### Prérequis + +- .NET 6.0 ou supérieur (le code fonctionne également avec .NET Framework 4.5+). +- Une licence Aspose.Cells valide (ou une licence temporaire gratuite pour les tests). +- Visual Studio 2022 ou tout IDE compatible C#. + +Si vous avez ces bases, plongeons‑nous. + +--- + +## Étape 1 – Installer Aspose.Cells et initialiser le classeur + +Tout d'abord : vous avez besoin du package NuGet Aspose.Cells. Ouvrez un terminal dans le dossier de votre projet et exécutez : + +```bash +dotnet add package Aspose.Cells +``` + +Une fois le package installé, créez un nouvel objet `Workbook`. C’est l’objet que vous utiliserez finalement pour **save workbook as pdf**. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialise a fresh workbook – think of it as a blank Excel file. + Workbook workbook = new Workbook(); + + // Grab the first worksheet (index 0). This is where we’ll put our data. + Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Pourquoi cette étape ?* +Créer le classeur vous fournit une toile vierge, et sélectionner la première feuille de calcul garantit que vous travaillez sur un emplacement connu. Ignorer cela peut entraîner des erreurs de *null reference* lorsque vous essayez plus tard de **export worksheet to pdf**. + +--- + +## Étape 2 – Insérer des données à haute précision + +Nous allons maintenant insérer un nombre qui possède plus de décimales que nous ne souhaitons réellement afficher dans le PDF. Cela montre comment le paramètre `SignificantDigits` coupe la sortie. + +```csharp + // Place a high‑precision number in cell A1. + worksheet.Cells["A1"].PutValue(1234.56789); +``` + +Si vous exécutez le programme maintenant et appelez simplement `workbook.Save("output.pdf")`, le PDF affichera le nombre complet `1234.56789`. C’est acceptable dans certains cas, mais il faut souvent arrondir à un nombre spécifique de chiffres significatifs — surtout pour les rapports financiers. + +--- + +## Étape 3 – Configurer les options d’enregistrement PDF + +Aspose.Cells vous offre un contrôle fin via `PdfSaveOptions`. La propriété qui nous intéresse est `SignificantDigits`. La définir à `4` indique au moteur de ne conserver que quatre chiffres significatifs lorsqu’il **save workbook as pdf**. + +```csharp + // Configure PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 // This trims the number to 1235 in the PDF. + }; +``` + +*Pourquoi utiliser `SignificantDigits` ?* +Lorsque vous **create pdf from worksheet**, vous devez souvent respecter les règles d’arrondi réglementaires. Cette option effectue l’arrondi pour vous, vous évitant de formater chaque cellule manuellement. + +--- + +## Étape 4 – Exporter la feuille de calcul en PDF avec les options + +Voici le moment de vérité : nous **save workbook as pdf** réellement en utilisant les options que nous venons de définir. + +```csharp + // Save the workbook as a PDF using the configured options. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + } +} +``` + +L’exécution du programme générera un fichier nommé `SignificantDigits.pdf` dans le dossier de sortie de votre projet. Ouvrez‑le et vous verrez `1235` dans la cellule A1 – le nombre a été arrondi à quatre chiffres significatifs. + +*Point clé :* La méthode `Save` prend à la fois le chemin du fichier et le `PdfSaveOptions`. Si vous omettez les options, vous reviendrez au comportement par défaut, qui peut ne pas répondre à vos exigences de précision. + +--- + +## Étape 5 – Vérifier la sortie et résoudre les problèmes courants + +### Résultat attendu + +- Un PDF d’une page nommé `SignificantDigits.pdf`. +- La cellule A1 affiche `1235` (quatre chiffres significatifs). +- Aucun feuille supplémentaire ou contenu caché n’apparaît. + +### Questions fréquemment posées + +| Question | Réponse | +|----------|--------| +| **Et si j’ai besoin de plus d’une feuille de calcul ?** | Parcourez `workbook.Worksheets` et appliquez les mêmes `PdfSaveOptions` lors de l’enregistrement de chaque feuille individuellement, ou définissez `OnePagePerSheet = true` dans les options. | +| **Puis‑je conserver le format numérique original ?** | Oui – définissez `PdfSaveOptions.AllColumnsInOnePage = true` et laissez les règles de formatage d’Excel s’en charger, mais rappelez‑vous que `SignificantDigits` remplacera toujours la précision numérique. | +| **Cela fonctionne‑t‑il avec des fichiers .xlsx déjà existants ?** | Absolument. Remplacez `new Workbook()` par `new Workbook("input.xlsx")` et le reste du code reste identique. | +| **Que faire si le PDF est vide ?** | Vérifiez que le classeur contient réellement des données et que vous enregistrez dans un répertoire accessible en écriture. Assurez‑vous également que la licence Aspose.Cells est correctement appliquée ; une version d’essai non licenciée peut limiter la sortie. | + +### Astuce pro + +Si vous devez **save excel as pdf** avec une orientation de page spécifique, définissez `pdfSaveOptions.PageSetup.Orientation = PageOrientation.Landscape;` avant d’appeler `Save`. Cette petite modification vous évite souvent de devoir ajuster manuellement le PDF par la suite. + +--- + +## Variantes : Exporter plusieurs feuilles ou paramètres de page personnalisés + +### Exporter toutes les feuilles en un seul appel + +```csharp +PdfSaveOptions allSheetsOptions = new PdfSaveOptions +{ + SignificantDigits = 4, + OnePagePerSheet = true // Each worksheet gets its own page. +}; + +workbook.Save("AllSheets.pdf", allSheetsOptions); +``` + +### Exporter une seule feuille en PDF + +Si vous ne souhaitez exporter qu’une feuille spécifique en **export worksheet to pdf**, utilisez la méthode `ToPdf` de l’objet `Worksheet` : + +```csharp +Worksheet sheet = workbook.Worksheets["Sheet2"]; +sheet.ToPdf("Sheet2.pdf", pdfSaveOptions); +``` + +### Ajuster les marges de page + +```csharp +pdfSaveOptions.PageSetup.TopMargin = 20; +pdfSaveOptions.PageSetup.BottomMargin = 20; +``` + +Ces ajustements vous permettent d’affiner le document final sans post‑traitement. + +--- + +## Exemple complet fonctionnel + +Voici le programme complet, prêt à copier‑coller, qui intègre tout ce dont nous avons parlé. Enregistrez‑le sous `Program.cs` et exécutez `dotnet run`. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and select the first worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Insert a high‑precision number. + worksheet.Cells["A1"].PutValue(1234.56789); + + // 3️⃣ Set PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 + }; + + // 4️⃣ Save the workbook as PDF. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + + // Optional: Export another sheet with custom settings. + // Worksheet sheet2 = workbook.Worksheets.Add("Report"); + // sheet2.Cells["B2"].PutValue(9876.54321); + // sheet2.ToPdf("Report.pdf", pdfSaveOptions); + } +} +``` + +**Résultat :** Ouvrez `SignificantDigits.pdf` – vous verrez la valeur arrondie `1235`. La taille du fichier est modeste, et la mise en page correspond à la feuille Excel originale. + +--- + +## Conclusion + +Nous venons de vous montrer comment **save workbook as pdf** avec Aspose.Cells, couvrant tout, de la configuration de base aux options avancées comme **export worksheet to pdf**, **how to export excel to pdf**, et **create pdf from worksheet** avec un contrôle numérique précis. + +L’approche est simple, ne nécessite que quelques lignes de C#, et fonctionne sur toutes les versions de .NET. Ensuite, vous pourriez explorer l’ajout d’en‑têtes/pieds de page, l’insertion d’images, ou la génération de PDF à partir de modèles — chacun s’appuyant sur la base que vous avez maintenant. + +Vous avez une variante que vous aimeriez essayer ? Peut‑être devez‑vous protéger le PDF par mot de passe ou fusionner plusieurs PDF. Ce sont des extensions naturelles, et l’API Aspose.Cells vous couvre. Plongez‑vous, expérimentez, et laissez la bibliothèque faire le gros du travail. + +*Bon codage ! Si vous rencontrez des problèmes, laissez un commentaire ci‑dessous et nous les résoudrons ensemble.* + +![save workbook as pdf screenshot](/images/save-workbook-as-pdf.png){alt="exemple de save workbook as pdf montrant le fichier PDF généré"} + +{{< /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/french/net/converting-excel-files-to-other-formats/_index.md b/cells/french/net/converting-excel-files-to-other-formats/_index.md index 82c3efb822..6f5588b09b 100644 --- a/cells/french/net/converting-excel-files-to-other-formats/_index.md +++ b/cells/french/net/converting-excel-files-to-other-formats/_index.md @@ -44,26 +44,40 @@ Aspose.Cells pour .NET simplifie les transformations de documents, permettant au ## Tutoriels sur la conversion de fichiers Excel vers d'autres formats ### [Conversion programmatique de fichiers CSV en JSON dans .NET](./converting-csv-to-json/) Apprenez à convertir un fichier CSV en JSON dans .NET avec Aspose.Cells. Guide étape par étape pour la transformation des données avec des exemples de code faciles à suivre. + ### [Conversion d'un fichier Excel en DOCX par programmation dans .NET](./converting-excel-file-to-docx/) Découvrez comment convertir par programmation des fichiers Excel en DOCX avec Aspose.Cells pour .NET grâce à ce guide étape par étape. Idéal pour la création de rapports et le partage de données. + ### [Conversion d'un fichier Excel en HTML avec info-bulle dans .NET](./converting-excel-file-to-html-with-tooltip/) Convertissez Excel en HTML avec des info-bulles grâce à Aspose.Cells pour .NET en quelques étapes simples. Améliorez vos applications web avec des données Excel interactives en toute simplicité. + ### [Conversion d'un fichier Excel en Markdown par programmation dans .NET](./converting-excel-file-to-markdown/) Découvrez comment convertir des fichiers Excel au format Markdown avec Aspose.Cells pour .NET grâce à ce guide détaillé et étape par étape. Optimisez votre productivité grâce à une conversion de fichiers simplifiée. + ### [Conversion d'un fichier Excel en PDF (A-1a) par programmation dans .NET](./converting-excel-file-to-pdf-a-1a/) Apprenez à convertir des fichiers Excel au format PDF/A-1a pour l'archivage avec Aspose.Cells pour .NET. Guide étape par étape avec exemples de code inclus. + ### [Conversion programmatique de JSON en CSV dans .NET](./converting-json-to-csv/) Apprenez à convertir du JSON en CSV par programmation dans .NET avec Aspose.Cells. Suivez notre guide étape par étape pour une transformation fluide des données. + ### [Conversion d'un fichier Excel en PPTX par programmation dans .NET](./converting-excel-file-to-pptx/) Apprenez à convertir un fichier Excel en présentation PowerPoint (PPTX) par programmation à l'aide d'Aspose.Cells pour .NET avec ce guide étape par étape. + +### [Créer une présentation PowerPoint à partir d'Excel – Guide étape par étape en C#](./create-powerpoint-from-excel-step-by-step-c-guide/) +Apprenez à générer une présentation PowerPoint à partir d'un classeur Excel en C# avec Aspose.Cells, étape par étape. + ### [Spécification du CrossType HTML dans la sortie HTML par programmation dans .NET](./specifying-html-crosstype-in-output-html/) Apprenez à spécifier le CrossType HTML dans Aspose.Cells pour .NET. Suivez notre tutoriel étape par étape pour convertir des fichiers Excel en HTML avec précision. + ### [Lecture programmatique d'une feuille de calcul numérique dans .NET](./reading-numbers-spreadsheet/) Apprenez à lire les feuilles de calcul Numbers et à les convertir en PDF à l'aide d'Aspose.Cells pour .NET dans ce didacticiel détaillé. + ### [Enregistrement d'un classeur au format de feuille de calcul Open XML strict dans .NET](./saving-workbook-to-strict-open-xml-spreadsheet-format/) Découvrez comment enregistrer un classeur au format de feuille de calcul Strict Open XML à l'aide d'Aspose.Cells pour .NET dans ce didacticiel détaillé. + ### [Suivi de la progression de la conversion des documents par programmation dans .NET](./tracking-document-conversion-progress/) description : Découvrez comment suivre la progression de la conversion de documents par programmation à l'aide d'Aspose.Cells pour .NET dans ce didacticiel détaillé. + ### [Suivi de la conversion des documents TIFF par programmation dans .NET](./tracking-document-conversion-progress-for-tiff/) Apprenez à suivre la progression de vos conversions TIFF par programmation avec Aspose.Cells pour .NET grâce à notre guide étape par étape. Améliorez vos compétences en gestion documentaire. diff --git a/cells/french/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md b/cells/french/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md new file mode 100644 index 0000000000..802e2e064d --- /dev/null +++ b/cells/french/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md @@ -0,0 +1,254 @@ +--- +category: general +date: 2026-03-30 +description: Créez PowerPoint à partir d’Excel rapidement avec Aspose.Cells et Aspose.Slides. + Apprenez à exporter la feuille de calcul en image et à enregistrer la présentation + au format PPTX en C#. +draft: false +keywords: +- create powerpoint from excel +- convert excel to powerpoint +- export worksheet as image +- save presentation as pptx +- export excel chart as picture +language: fr +og_description: Créer un PowerPoint à partir d’Excel en C# avec Aspose. Exporter la + feuille de calcul en image, conserver les formes éditables et enregistrer le résultat + au format PPTX. +og_title: Créer un PowerPoint à partir d'Excel – Tutoriel complet C# +tags: +- Aspose +- C# +- Office Automation +title: Créer PowerPoint à partir d’Excel – Guide C# étape par étape +url: /fr/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Créer un PowerPoint à partir d’Excel – Tutoriel complet en C# + +Vous avez déjà eu besoin de **créer un PowerPoint à partir d’Excel** sans savoir quelle bibliothèque pouvait garder vos graphiques modifiables ? Vous n’êtes pas seul. Dans de nombreux scénarios de reporting, vous souhaiterez transformer une feuille de calcul en diaporama sans perdre la possibilité d’ajuster les zones de texte plus tard. Ce guide vous montre exactement comment **convertir Excel en PowerPoint** en utilisant Aspose.Cells et Aspose.Slides, tout en expliquant comment **exporter la feuille de calcul en image** et enfin **enregistrer la présentation au format PPTX**. + +Nous passerons en revue chaque ligne de code, expliquerons *pourquoi* chaque paramètre est important, et discuterons même de ce qu’il faut faire si votre classeur contient des graphiques complexes que vous préférez exporter sous forme d’image. À la fin, vous disposerez d’une application console C# prête à l’emploi qui prend `ShapesDemo.xlsx` et génère `Result.pptx` – le tout avec des zones de texte éditables et des images nettes. + +## Ce dont vous avez besoin + +- .NET 6.0 ou version ultérieure (l’API fonctionne aussi avec le .NET Framework, mais .NET 6 est le meilleur compromis). +- Packages NuGet **Aspose.Cells** et **Aspose.Slides** (les licences d’essai gratuites suffisent pour les tests). +- Une connaissance de base de la syntaxe C# – si vous savez écrire un `Console.WriteLine`, vous êtes prêt. + +Pas d’interop COM supplémentaire, pas d’Office installé sur le serveur, et pas de copier‑coller manuel d’images. Tout est géré programmétiquement. + +--- + +## Créer un PowerPoint à partir d’Excel – Charger le classeur et définir les options d’exportation + +La première chose que nous faisons est d’ouvrir le fichier Excel et d’indiquer à Aspose.Cells comment nous voulons que la feuille soit rendue. L’objet `ImageOrPrintOptions` est où la magie opère : nous activons `ExportShapes` et `ExportEditableTextBoxes` afin que toutes les formes (y compris les graphiques) deviennent partie de la diapositive **et** restent éditables après la conversion. + +```csharp +using Aspose.Cells; +using Aspose.Slides; + +// 1️⃣ Load the Excel workbook +string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; +Workbook workbook = new Workbook(excelPath); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first sheet + +// 2️⃣ Configure image export – keep shapes editable +ImageOrPrintOptions imageOptions = new ImageOrPrintOptions +{ + OnePagePerSheet = true, // Export the whole sheet as one slide + ExportShapes = true, // Include shapes (charts, drawings) + ExportEditableTextBoxes = true // Make text boxes editable in PPTX +}; +``` + +**Pourquoi ces indicateurs ?** +- `OnePagePerSheet` empêche la feuille d’être découpée en plusieurs diapositives – vous obtenez une image unique, pleine taille. +- `ExportShapes` indique à Aspose.Cells de rasteriser les graphiques *et* les formes vectorielles, en préservant leur apparence. +- `ExportEditableTextBoxes` est le secret qui vous permet de double‑cliquer sur une zone de texte dans PowerPoint et de modifier le texte sans rouvrir Excel. + +> **Astuce pro :** Si vous avez seulement besoin d’une image statique d’un graphique, définissez `ExportShapes = false` et utilisez la méthode `ExportExcelChartAsPicture` plus tard (voir la section finale). + +--- + +## Convertir Excel en PowerPoint – Générer une image à partir de la feuille + +Avec les options prêtes, nous transformons maintenant la feuille en un `System.Drawing.Image`. Le `WorksheetToImageConverter` fait le gros du travail, en appliquant les paramètres que nous venons de définir. + +```csharp +// 3️⃣ Convert the worksheet to an image using the options above +WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); +System.Drawing.Image sheetImage = converter.ConvertToImage(0, imageOptions); +``` + +L’argument `0` indique la première page (nous n’en avons qu’une grâce à `OnePagePerSheet`). L’`sheetImage` résultante conserve le DPI d’origine, de sorte que votre diapositive ne paraîtra pas pixelisée même sur des écrans haute résolution. + +--- + +## Enregistrer la présentation au format PPTX – Insérer l’image dans une diapositive + +Nous créons maintenant un nouveau fichier PowerPoint, ajoutons une diapositive, et déposons le bitmap dessus. Aspose.Slides traite l’image comme une forme *picture frame*, que vous pouvez redimensionner ou déplacer comme n’importe quel objet natif de PowerPoint. + +```csharp +// 4️⃣ Create a new PowerPoint presentation +Presentation presentation = new Presentation(); +ISlide slide = presentation.Slides[0]; // The default blank slide + +// Add the Excel‑derived image as a picture frame +slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, // Simple rectangle container + 0, 0, // Top‑left corner (0,0) + sheetImage.Width, // Width of the picture + sheetImage.Height, // Height of the picture + sheetImage); // The bitmap we generated +``` + +> **Et si l’image est plus grande que la diapositive ?** +> PowerPoint découpera automatiquement tout ce qui dépasse les dimensions de la diapositive. Une solution rapide consiste à redimensionner l’image avant de l’insérer : + +```csharp +float scale = Math.Min(presentation.SlideSize.Size.Width / (float)sheetImage.Width, + presentation.SlideSize.Size.Height / (float)sheetImage.Height); +int newWidth = (int)(sheetImage.Width * scale); +int newHeight = (int)(sheetImage.Height * scale); +``` + +Vous pouvez alors passer `newWidth` et `newHeight` à `AddPictureFrame`. + +--- + +## Exporter la feuille de calcul en image – Enregistrer le fichier PPTX + +Enfin, nous persistons la présentation sur le disque. Le drapeau `SaveFormat.Pptx` garantit le format moderne OpenXML, qui fonctionne avec toutes les versions récentes de PowerPoint. + +```csharp +// 5️⃣ Save the presentation as a PPTX file +string pptxPath = "YOUR_DIRECTORY/Result.pptx"; +presentation.Save(pptxPath, SaveFormat.Pptx); +``` + +Lorsque vous ouvrez `Result.pptx`, vous verrez une seule diapositive qui ressemble exactement à votre feuille Excel, mais vous pourrez toujours cliquer sur n’importe quelle zone de texte et modifier son contenu directement dans PowerPoint. + +--- + +## Exporter le graphique Excel en image – Quand les images raster sont préférées + +Parfois, vous n’avez pas besoin de formes éditables ; un PNG de haute qualité d’un graphique suffit. Aspose.Cells peut exporter un graphique spécifique en image sans convertir toute la feuille : + +```csharp +// Example: Export the first chart on the sheet as a PNG +int chartIndex = 0; // Adjust if you have multiple charts +Chart chart = worksheet.Charts[chartIndex]; +ImageOrPrintOptions chartOptions = new ImageOrPrintOptions +{ + ImageFormat = ImageFormat.Png, + OnePagePerSheet = false +}; +chart.ToImage("chart.png", chartOptions); +``` + +Vous pouvez alors intégrer `chart.png` dans une diapositive de la même façon que nous avons ajouté `sheetImage`. Cette approche réduit la taille du fichier PPTX et est utile lorsque les données environnantes ne sont pas nécessaires sur la diapositive. + +--- + +## Pièges courants & comment les éviter + +| Problème | Pourquoi cela se produit | Solution | +|----------|--------------------------|----------| +| **Le texte apparaît flou** | Exporté à un DPI faible (96 par défaut). | Définir `imageOptions.Dpi = 300;` avant la conversion. | +| **Les formes disparaissent** | `ExportShapes` laissé à `false`. | S’assurer que `ExportShapes = true` lorsque vous avez besoin de graphiques éditables. | +| **Mauvaise correspondance de taille de diapositive** | Image plus grande que les dimensions de la diapositive. | Redimensionner l’image (voir l’extrait de code) ou modifier la taille de la diapositive via `presentation.SlideSize`. | +| **Exception de licence** | Utilisation de la version d’essai sans activation correcte. | Appeler `License license = new License(); license.SetLicense("Aspose.Total.lic");` tôt dans `Main`. | + +--- + +## Exemple complet fonctionnel (prêt à copier‑coller) + +Voici le programme complet, prêt à être placé dans un nouveau projet console. Remplacez `YOUR_DIRECTORY` par le dossier contenant votre fichier Excel. + +```csharp +using System; +using Aspose.Cells; +using Aspose.Slides; +using System.Drawing; + +namespace ExcelToPowerPointDemo +{ + class Program + { + static void Main(string[] args) + { + // ----------------------------------------------------------------- + // 1️⃣ Load the Excel workbook + // ----------------------------------------------------------------- + string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; + Workbook workbook = new Workbook(excelPath); + Worksheet worksheet = workbook.Worksheets[0]; + + // ----------------------------------------------------------------- + // 2️⃣ Set up export options – keep shapes editable + // ----------------------------------------------------------------- + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + OnePagePerSheet = true, + ExportShapes = true, + ExportEditableTextBoxes = true, + Dpi = 300 // High‑resolution output + }; + + // ----------------------------------------------------------------- + // 3️⃣ Convert worksheet to an image + // ----------------------------------------------------------------- + WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); + Image sheetImage = converter.ConvertToImage(0, imageOptions); + + // ----------------------------------------------------------------- + // 4️⃣ Create PowerPoint and add the image as a slide + // ----------------------------------------------------------------- + Presentation presentation = new Presentation(); + ISlide slide = presentation.Slides[0]; + slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, + 0, 0, + sheetImage.Width, + sheetImage.Height, + sheetImage); + + // ----------------------------------------------------------------- + // 5️⃣ Save the PPTX file + // ----------------------------------------------------------------- + string pptxPath = "YOUR_DIRECTORY/Result.pptx"; + presentation.Save(pptxPath, SaveFormat.Pptx); + + Console.WriteLine("✅ PowerPoint created successfully at: " + pptxPath); + } + } +} +``` + +**Sortie attendue :** +L’exécution du programme affiche `✅ PowerPoint created successfully at: YOUR_DIRECTORY/Result.pptx`. L’ouverture du PPTX montre une seule diapositive reproduisant la feuille Excel d’origine, avec des zones de texte éditables. + +--- + +## Récapitulatif & étapes suivantes + +Vous savez maintenant comment **créer un PowerPoint à partir d’Excel** en utilisant les API puissantes d’Aspose, comment **exporter la feuille de calcul en image**, et comment **enregistrer la présentation au format PPTX** tout en préservant l’éditabilité. Le même schéma fonctionne pour les classeurs multi‑feuilles — il suffit de boucler sur `workbook.Worksheets` et d’ajouter une nouvelle diapositive pour chacune. + +**Que pouvez‑vous explorer ensuite ?** + +- **Conversion par lots :** Parcourir un dossier de fichiers Excel et générer un diaporama par fichier. +- **Mises en page dynamiques :** Utiliser `slide.LayoutSlide` pour appliquer des modèles PowerPoint pré‑conçus. +- **Exportation de graphiques uniquement :** Combiner le fragment « Export Excel chart as picture » avec des espaces réservés de diapositive pour un deck plus léger. +- **Style avancé :** Appliquer des arrière‑plans de diapositive personnalisés, des transitions ou des animations via Aspose.Slides. + +N’hésitez pas à expérimenter — modifiez le DPI, remplacez `ShapeType.Ellipse` par un cadre circulaire, ou même intégrez plusieurs images par diapositive. Le ciel est la limite quand vous avez le contrôle programmatique sur + +{{< /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/french/net/document-properties/_index.md b/cells/french/net/document-properties/_index.md index d28464e6ee..d40fd281e6 100644 --- a/cells/french/net/document-properties/_index.md +++ b/cells/french/net/document-properties/_index.md @@ -35,6 +35,8 @@ Apprenez à accéder aux propriétés des documents dans Excel avec Aspose.Cells Découvrez comment accéder aux propriétés des documents dans Excel avec Aspose.Cells pour .NET grâce à notre guide étape par étape. Gérez efficacement vos feuilles de calcul. ### [Ajout de propriétés de document dans .NET](./adding-document-properties/) Découvrez comment ajouter des propriétés de document dans Excel à l’aide d’Aspose.Cells pour .NET avec ce guide détaillé étape par étape. +### [Comment enregistrer un fichier XLSB avec des propriétés personnalisées en C# – Guide étape par étape](./how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/) +Apprenez à enregistrer un classeur XLSB avec des propriétés personnalisées en C# grâce à notre guide détaillé étape par étape. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/french/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md b/cells/french/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md new file mode 100644 index 0000000000..ed266a5b58 --- /dev/null +++ b/cells/french/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md @@ -0,0 +1,235 @@ +--- +category: general +date: 2026-03-30 +description: Apprenez à enregistrer un fichier XLSB en C# tout en ajoutant une propriété + personnalisée, à le lire à nouveau, et à maîtriser l’enregistrement d’un classeur + au format XLSB avec Aspose.Cells. Code complet inclus. +draft: false +keywords: +- how to save xlsb +- add custom property +- how to add property +- how to read property +- save workbook as xlsb +language: fr +og_description: Comment enregistrer un fichier XLSB en C# ? Ce tutoriel vous montre + comment ajouter une propriété personnalisée, la lire, puis enregistrer le classeur + au format XLSB avec Aspose.Cells. +og_title: Comment enregistrer un fichier XLSB avec des propriétés personnalisées en + C# – Guide complet +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Comment enregistrer un fichier XLSB avec des propriétés personnalisées en C# + – Guide étape par étape +url: /fr/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Comment enregistrer un fichier XLSB avec des propriétés personnalisées en C# – Guide étape par étape + +Vous vous êtes déjà demandé **comment enregistrer un XLSB** tout en conservant des métadonnées supplémentaires attachées à une feuille de calcul ? Vous n'êtes pas le seul. Dans de nombreux scénarios d'entreprise, vous avez besoin d'un fichier Excel binaire qui porte toujours vos propres paires clé/valeur — pensez à un ID de contrat, un drapeau de traitement ou une étiquette de version. + +La bonne nouvelle, c’est qu’Aspose.Cells rend cela très simple. Dans ce guide, vous verrez exactement comment ajouter une propriété personnalisée, la persister, puis la lire, le tout en **enregistrant le classeur au format XLSB**. Pas de références vagues, juste un exemple complet et exécutable que vous pouvez intégrer à votre projet dès aujourd’hui. + +## Ce que vous allez retenir + +- Un nouveau fichier `.xlsb` créé à partir de zéro. +- La capacité d'**ajouter une propriété personnalisée** à une feuille de calcul. +- Un code qui montre **comment lire la propriété** après le rechargement du fichier. +- Des astuces sur les pièges que vous pourriez rencontrer en **enregistrant le classeur au format XLSB**. + +> **Prérequis :** .NET 6+ (ou .NET Framework 4.6+), Visual Studio (ou tout IDE C#), et la bibliothèque Aspose.Cells pour .NET installée via NuGet. Rien d’autre. + +--- + +## Étape 1 : Configurer le projet et créer un nouveau classeur + +Tout d'abord, obtenons un objet Workbook propre. + +```csharp +using Aspose.Cells; +using System; + +// Initialize a new workbook; this will be an in‑memory Excel file. +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0) – it’s created automatically. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Pourquoi c’est important :* `Workbook` est le point d’entrée de chaque opération dans Aspose.Cells. En partant d’une instance toute neuve, vous évitez tout état caché qui pourrait corrompre vos métadonnées personnalisées plus tard. + +--- + +## Étape 2 : **Ajouter une propriété personnalisée** à la feuille de calcul + +Nous allons maintenant attacher une paire clé/valeur qui n’existe que sur cette feuille. + +```csharp +// Add a user‑defined property called "MyProperty" with the value "CustomValue". +worksheet.CustomProperties.Add("MyProperty", "CustomValue"); +``` + +> **Astuce :** Les noms de propriétés sont sensibles à la casse. Si vous essayez plus tard de récupérer `"myproperty"` vous obtiendrez une `KeyNotFoundException`. Adoptez une convention de nommage — camelCase ou PascalCase — dès le départ. + +--- + +## Étape 3 : **Enregistrer le classeur au format XLSB** – Persistance de la propriété + +La magie opère lorsque vous écrivez le classeur au format binaire XLSB. + +```csharp +// Define the output path. Adjust the folder to something writable on your machine. +string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + +// Save the workbook; the custom property travels with the file. +workbook.Save(outputPath, SaveFormat.Xlsb); +``` + +*Ce que vous faites réellement :* L’énumération `SaveFormat.Xlsb` indique à Aspose.Cells de générer un fichier Excel binaire (plus rapide à ouvrir, plus petit sur le disque). Toutes les propriétés personnalisées au niveau de la feuille sont sérialisées automatiquement — aucune étape supplémentaire n’est requise. + +--- + +## Étape 4 : Recharger le fichier et **Comment lire la propriété** + +Vérifions que la propriété a survécu au aller‑retour. + +```csharp +// Load the just‑saved XLSB file back into memory. +Workbook reloadedWorkbook = new Workbook(outputPath); + +// Access the same worksheet (index 0) and fetch the property value. +string customValue = reloadedWorkbook.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); +``` + +Si tout s’est déroulé correctement, `customValue` contient maintenant `"CustomValue"`. + +--- + +## Étape 5 : Vérifier le résultat – Sortie console rapide + +Une petite vérification de bon sens aide pendant le développement. + +```csharp +Console.WriteLine($"Custom property value: {customValue}"); +``` + +Exécuter le programme devrait afficher : + +``` +Custom property value: CustomValue +``` + +Voir cette ligne signifie que vous avez maîtrisé **comment enregistrer un XLSB**, **ajouter une propriété personnalisée**, et **comment lire la propriété** — le tout dans un flux propre. + +--- + +## Exemple complet fonctionnel (prêt à copier‑coller) + +Voici le programme complet. Collez‑le dans une nouvelle application console, appuyez sur **F5**, et observez la console confirmer la valeur de la propriété. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // 1️⃣ Create a new workbook and get its first sheet + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // 2️⃣ Add a custom property (key/value) to the sheet + // ------------------------------------------------- + worksheet.CustomProperties.Add("MyProperty", "CustomValue"); + + // ------------------------------------------------- + // 3️⃣ Save the workbook as XLSB – the property is kept + // ------------------------------------------------- + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(outputPath, SaveFormat.Xlsb); + + // ------------------------------------------------- + // 4️⃣ Reload the saved file to demonstrate persistence + // ------------------------------------------------- + Workbook reloaded = new Workbook(outputPath); + + // ------------------------------------------------- + // 5️⃣ Retrieve the custom property's value + // ------------------------------------------------- + string customValue = reloaded.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); + + // ------------------------------------------------- + // 6️⃣ Display the retrieved value (optional) + // ------------------------------------------------- + Console.WriteLine($"Custom property value: {customValue}"); + } +} +``` + +> **Rappel :** Modifiez `outputPath` pour pointer vers un dossier où vous avez les droits d’écriture. Si vous êtes sous Linux/macOS, utilisez un chemin comme `"/tmp/WithCustomProp.xlsb"`. + +--- + +## Questions fréquentes et cas particuliers + +### Que se passe‑t‑il si la propriété existe déjà ? +Appeler `Add` avec une clé existante lève une `ArgumentException`. Utilisez `ContainsKey` ou encapsulez l’appel dans un `try/catch` si vous n’êtes pas sûr. + +```csharp +if (!worksheet.CustomProperties.ContainsKey("MyProperty")) +{ + worksheet.CustomProperties.Add("MyProperty", "AnotherValue"); +} +``` + +### Puis‑je stocker des valeurs non‑string ? +Absolument. La propriété `Value` accepte n’importe quel `object`. Pour des nombres, dates ou booléens, transmettez simplement le type approprié — Aspose.Cells gérera la conversion lors de la lecture. + +### La propriété survit‑elle lors de la conversion en XLSX ? +Oui. Les propriétés personnalisées font partie de la représentation XML de la feuille, elles persistent donc aux formats XLSX, XLS et XLSB. + +### Comment **ajouter une propriété** à plusieurs feuilles ? +Parcourez la collection `Worksheets` et appliquez le même appel `CustomProperties.Add` à chaque feuille dont vous avez besoin. + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + ws.CustomProperties.Add("ExportedBy", "MyApp"); +} +``` + +### Astuce de performance lors de **l’enregistrement de classeurs au format XLSB** en masse +Si vous générez des centaines de fichiers, réutilisez la même instance `Workbook` et appelez `Clear` après chaque enregistrement pour libérer la mémoire. De plus, définissez `Workbook.Settings.CalculateFormulaOnOpen = false` si vous n’avez pas besoin que les formules soient évaluées au chargement. + +--- + +## Conclusion + +Vous savez maintenant **comment enregistrer un XLSB** en C# tout en intégrant et en récupérant ultérieurement une propriété personnalisée grâce à Aspose.Cells. La solution complète — création du classeur, ajout d’une propriété, persistance avec **enregistrement du classeur au format XLSB**, rechargement et lecture de la valeur — tient en moins de 50 lignes de code. + +À partir d’ici, vous pourriez explorer : + +- Ajouter plusieurs propriétés personnalisées par feuille. +- Stocker des objets complexes sous forme de chaînes JSON. +- Chiffrer le fichier XLSB pour plus de sécurité. + +Testez ces idées, et vous deviendrez rapidement la référence en automatisation Excel dans votre équipe. Vous avez des questions ou un scénario difficile ? Laissez un commentaire ci‑dessous, et bon codage ! + +![Comment enregistrer un XLSB avec une propriété personnalisée](/images/how-to-save-xlsb.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/french/net/excel-copy-worksheet/_index.md b/cells/french/net/excel-copy-worksheet/_index.md index 7a5065b128..5622309e09 100644 --- a/cells/french/net/excel-copy-worksheet/_index.md +++ b/cells/french/net/excel-copy-worksheet/_index.md @@ -42,6 +42,7 @@ Aspose.Cells pour .NET offre de puissantes fonctionnalités pour manipuler des f | [Feuille de calcul Excel Copie](./excel-copy-worksheet/) | Apprenez à copier une feuille de calcul Excel avec Aspose.Cells pour .NET grâce à ce guide étape par étape facile à suivre. Idéal pour les développeurs .NET souhaitant automatiser leurs tâches Excel. | | [Copier des feuilles de calcul entre des classeurs Excel](./excel-copy-worksheets-between-workbooks/) | Apprenez à copier des feuilles de calcul entre des classeurs Excel avec Aspose.Cells pour .NET. Un guide étape par étape avec des exemples de code pour simplifier la gestion de vos feuilles de calcul. | | [Feuille de calcul Excel Move](./excel-move-worksheet/) | Apprenez à déplacer des feuilles de calcul dans Excel avec Aspose.Cells pour .NET grâce à notre guide étape par étape. Maîtrisez l'art de la programmation Excel. | +| [Comment copier une feuille de calcul en C# avec Aspose.Cells – Guide complet](./how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/) | Apprenez à copier une feuille de calcul en C# avec Aspose.Cells grâce à ce guide complet étape par étape. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/french/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md b/cells/french/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md new file mode 100644 index 0000000000..386becad3d --- /dev/null +++ b/cells/french/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md @@ -0,0 +1,290 @@ +--- +category: general +date: 2026-03-30 +description: Comment copier une feuille de calcul en C# avec Aspose.Cells – guide + étape par étape couvrant la copie d’une plage de cellules, la copie de colonnes + entre feuilles, la copie du tableau croisé dynamique d’une feuille et l’ajout de + code pour créer une nouvelle feuille. +draft: false +keywords: +- how to copy worksheet +- copy cell range +- copy columns between sheets +- copy worksheet pivot table +- add new worksheet code +language: fr +og_description: Apprenez à copier une feuille de calcul en C# avec Aspose.Cells. Ce + guide montre comment copier une plage de cellules, préserver les tableaux croisés + dynamiques, copier des colonnes entre feuilles et ajouter du code pour créer une + nouvelle feuille. +og_title: Comment copier une feuille de calcul en C# – Tutoriel complet Aspose.Cells +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Comment copier une feuille de calcul en C# avec Aspose.Cells – Guide complet +url: /fr/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Comment copier une feuille de calcul en C# avec Aspose.Cells – Guide complet + +Vous vous êtes déjà demandé **comment copier une feuille de calcul** en C# sans perdre un seul tableau croisé dynamique ou formule ? Vous n'êtes pas seul — de nombreux développeurs se heurtent à un mur lorsqu'ils doivent dupliquer une feuille tout en conservant tous les éléments. Dans ce tutoriel, nous parcourrons une solution pratique, de bout en bout, qui non seulement copie les données mais préserve également le **copy worksheet pivot table**, gère le **copy cell range**, et montre le **add new worksheet code** dont vous avez besoin. + +Nous couvrirons tout, du chargement du classeur source à l’enregistrement du fichier de destination, afin que vous puissiez copier des colonnes entre feuilles, préserver les objets et garder votre code propre. Pas de références vagues, juste un exemple complet et exécutable que vous pouvez intégrer dès aujourd'hui à votre projet. + +## Ce que couvre ce tutoriel + +- Chargement d’un fichier Excel existant avec Aspose.Cells +- Utilisation du **add new worksheet code** pour créer une feuille cible +- Définition d’un **copy cell range** qui inclut un tableau croisé dynamique +- Configuration de **CopyOptions** pour conserver les graphiques, formules et tableaux croisés dynamiques intacts +- Exécution du **copy columns between sheets** avec précision ligne par ligne +- Enregistrement du résultat et vérification que la feuille a été correctement copiée + +À la fin de ce guide, vous pourrez répondre en toute confiance à la question « how to copy worksheet », que vous automatisiez des rapports ou construisiez une interface utilisateur basée sur des feuilles de calcul. + +--- + +## Comment copier une feuille – Vue d’ensemble + +Avant de plonger dans le code, décrivons le flux à haut niveau. Pensez-y comme à une recette : + +1. **Load** le classeur source (`Source.xlsx`). +2. **Add** une nouvelle feuille pour accueillir la copie (`add new worksheet code`). +3. **Define** la zone que vous souhaitez dupliquer (`copy cell range`). +4. **Configure** les options de copie afin que le tableau croisé dynamique survive (`copy worksheet pivot table`). +5. **Copy** les lignes et colonnes (`copy columns between sheets`). +6. **Save** le nouveau classeur (`Destination.xlsx`). + +Voilà—six étapes, aucune magie. Chaque étape est expliquée ci‑dessous avec des extraits de code et le raisonnement qui les sous-tend. + +--- + +## Étape 1 – Charger le classeur source + +Première chose à faire : vous avez besoin d’une instance `Workbook` pointant vers le fichier que vous voulez dupliquer. Cette étape est essentielle car Aspose.Cells travaille directement avec le système de fichiers, pas avec l’interface Office. + +```csharp +using Aspose.Cells; + +// Path to the original file +string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; +string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + +// Load the workbook – this is the starting point for how to copy worksheet +Workbook workbook = new Workbook(sourcePath); +``` + +*Pourquoi c’est important :* Le chargement du fichier crée une représentation en mémoire de chaque feuille, cellule et objet. Sans cela, il n’y a rien à copier, et toute tentative d’utiliser le `add new worksheet code` plus tard échouerait parce que les données sources ne sont pas présentes. + +--- + +## Étape 2 – Ajouter une nouvelle feuille (add new worksheet code) + +Nous avons maintenant besoin d’un endroit où coller les données copiées. C’est là que le **add new worksheet code** entre en jeu. Vous pouvez nommer la feuille comme vous le souhaitez ; ici nous l’appelons `"Copy"`. + +```csharp +// Grab the first worksheet (the one we want to copy) +Worksheet sourceSheet = workbook.Worksheets[0]; + +// Add a fresh worksheet to receive the copy +Worksheet copySheet = workbook.Worksheets.Add("Copy"); +``` + +*Astuce :* Si vous prévoyez de copier plusieurs feuilles, appelez `Worksheets.Add` dans une boucle et attribuez à chaque feuille un nom unique. Ainsi vous évitez les collisions de noms et gardez votre classeur bien organisé. + +--- + +## Étape 3 – Définir le copy cell range + +Un **copy cell range** indique à Aspose.Cells exactement quelles lignes et colonnes dupliquer. Dans de nombreux scénarios réels, la plage comprend un tableau croisé dynamique, il faut donc être précis. + +```csharp +// Define the area that contains the pivot table (A1:G20) +CellArea sourceRange = new CellArea +{ + StartRow = 0, // Row 1 (zero‑based) + StartColumn = 0, // Column A + EndRow = 19, // Row 20 + EndColumn = 6 // Column G +}; + +// Destination range – we start at the same top‑left corner +CellArea destinationRange = new CellArea +{ + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 +}; +``` + +*Pourquoi nous en avons besoin :* En indiquant explicitement la plage, vous évitez de copier toute la feuille (ce qui peut être gourmand) et vous garantissez que le tableau croisé dynamique se trouve bien dans la zone copiée. C’est le cœur du **how to copy worksheet** lorsque vous ne devez copier qu’une partie de la feuille. + +--- + +## Étape 4 – Configurer les options de copie (preserve copy worksheet pivot table) + +Aspose.Cells propose un objet `CopyOptions` qui contrôle ce qui est collé. Pour conserver le tableau croisé dynamique, les graphiques et les formules, nous définissons `PasteType.All` et activons `PasteSpecial`. + +```csharp +CopyOptions copyOptions = new CopyOptions +{ + PasteType = PasteType.All, // Copy everything: values, formats, objects + PasteSpecial = true // Enable special paste to retain pivot tables +}; +``` + +*Explication :* `PasteType.All` est l’option la plus inclusive, tandis que `PasteSpecial` indique au moteur de traiter correctement les objets complexes—comme les tableaux croisés dynamiques. Omettre cette étape est un piège fréquent ; la feuille copiée perdrait ses fonctionnalités interactives. + +--- + +## Étape 5 – Copier les lignes et colonnes (copy columns between sheets) + +Place au travail lourd : déplacer réellement les données. Nous utiliserons `CopyRows` et `CopyColumns` pour gérer le **copy columns between sheets**. Faire les deux garantit que les cellules fusionnées et les largeurs de colonnes sont préservées. + +```csharp +// Copy rows from the source to the destination sheet +sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + +// Copy columns from the source to the destination sheet +sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); +``` + +*Ce qui se passe :* `CopyRows` déplace les données ligne par ligne, tandis que `CopyColumns` le fait colonne par colonne. Exécuter les deux assure que le bloc rectangulaire complet est dupliqué, ce qui est essentiel lorsque vous devez **copy columns between sheets** avec des largeurs de colonnes différentes ou des colonnes masquées. + +--- + +## Étape 6 – Enregistrer le classeur + +Enfin, écrivez les modifications sur le disque. Cette étape finalise le processus **how to copy worksheet**. + +```csharp +// Save the workbook with the newly copied sheet +workbook.Save(destinationPath); +``` + +*Conseil de vérification :* Ouvrez `Destination.xlsx` et vérifiez que la feuille `"Copy"` est identique à l’originale, que les tableaux croisés dynamiques fonctionnent et que les largeurs de colonnes correspondent. Si quelque chose semble incorrect, revoyez les paramètres de `CopyOptions`. + +--- + +## Cas particuliers et variantes courantes + +### Copier plusieurs feuilles de calcul + +Si vous devez dupliquer plusieurs feuilles, encapsulez la logique ci‑dessus dans une boucle `foreach` : + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + Worksheet newWs = workbook.Worksheets.Add(ws.Name + "_Copy"); + // Re‑use sourceRange/destinationRange or calculate per sheet + // Then call CopyRows/CopyColumns as shown earlier +} +``` + +### Préserver les formules entre différents classeurs + +Lorsque les classeurs source et destination possèdent des plages nommées différentes, définissez `copyOptions` sur `PasteType.Formulas` en plus de `All` : + +```csharp +copyOptions.PasteType = PasteType.All | PasteType.Formulas; +``` + +### Grandes plages et performances + +Pour des jeux de données massifs (des centaines de milliers de lignes), envisagez d’utiliser uniquement `CopyRows` et d’ignorer `CopyColumns` si les largeurs de colonnes ne sont pas critiques. Cela peut faire gagner quelques secondes. + +--- + +## Exemple complet fonctionnel + +Voici le programme complet, prêt à être exécuté, qui regroupe tout ce dont nous avons parlé. Collez‑le dans une application console, ajustez les chemins de fichiers, puis appuyez sur **F5**. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // ---------- Step 1: Load the source workbook ---------- + string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; + string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + Workbook workbook = new Workbook(sourcePath); + + // ---------- Step 2: Add a new worksheet (add new worksheet code) ---------- + Worksheet sourceSheet = workbook.Worksheets[0]; + Worksheet copySheet = workbook.Worksheets.Add("Copy"); + + // ---------- Step 3: Define the copy cell range ---------- + CellArea sourceRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + CellArea destinationRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + + // ---------- Step 4: Set copy options (preserve copy worksheet pivot table) ---------- + CopyOptions copyOptions = new CopyOptions + { + PasteType = PasteType.All, + PasteSpecial = true + }; + + // ---------- Step 5: Copy rows and columns (copy columns between sheets) ---------- + sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + + sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); + + // ---------- Step 6: Save the workbook ---------- + workbook.Save(destinationPath); + } +} +``` + +**Résultat attendu :** L’ouverture de `Destination.xlsx` montre une feuille nommée **Copy** qui reflète la première feuille de `Source.xlsx`—y compris les tableaux croisés dynamiques, le formatage et les largeurs de colonnes. Le fichier original reste intact. + +--- + +## Questions fréquentes + +**Q : Cela fonctionne-t-il avec des fichiers .xlsx créés par Excel 2019 ?** +R : Absolument. Aspose.Cells prend en charge tous les formats Excel modernes, donc le même code fonctionne pour `.xlsx`, `.xlsm`, et même les anciens fichiers `.xls`. + +{{< /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/french/net/excel-custom-number-date-formatting/_index.md b/cells/french/net/excel-custom-number-date-formatting/_index.md index 1c84a9d7d4..c77bc70530 100644 --- a/cells/french/net/excel-custom-number-date-formatting/_index.md +++ b/cells/french/net/excel-custom-number-date-formatting/_index.md @@ -36,6 +36,10 @@ Ce tutoriel vous permettra d'acquérir les compétences nécessaires pour import Apprenez à vérifier les valeurs des cellules Excel par rapport aux formats numériques personnalisés à l'aide d'Aspose.Cells pour .NET avec ce didacticiel étape par étape. ### [Spécifier les champs de formule lors de l'importation de données dans une feuille Excel](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) Découvrez comment importer des données dans des feuilles Excel avec des champs de formule spécifiés à l'aide d'Aspose.Cells pour .NET dans ce didacticiel détaillé. +### [Formater un nombre avec séparateur en C# – Guide complet Aspose.Cells](./format-number-with-separator-in-c-complete-aspose-cells-guid/) +Apprenez à formater des nombres avec séparateur en C# en utilisant Aspose.Cells grâce à ce guide complet. +### [Formater une date ISO depuis Excel – Guide complet C#](./format-date-iso-from-excel-complete-c-guide/) +Apprenez à convertir des dates Excel au format ISO en C# avec Aspose.Cells grâce à ce guide complet. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/french/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md b/cells/french/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..6a0fbb3689 --- /dev/null +++ b/cells/french/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md @@ -0,0 +1,219 @@ +--- +category: general +date: 2026-03-30 +description: Apprenez à formater les dates au format ISO tout en lisant les valeurs + datetime d’Excel et à extraire les données datetime d’Excel à l’aide d’Aspose.Cells + en C#. +draft: false +keywords: +- format date iso +- read excel datetime +- extract datetime excel +- Aspose.Cells date parsing +- Japanese era dates +language: fr +og_description: formater la date ISO à partir des données Excel avec Aspose.Cells. + Ce guide montre comment lire les dates/heure Excel, extraire les valeurs datetime + d’Excel et produire des dates ISO. +og_title: Format de date ISO à partir d’Excel – Tutoriel C# étape par étape +tags: +- C# +- Excel +- DateTime +- Aspose.Cells +title: Format de date ISO depuis Excel – Guide complet C# +url: /fr/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# formater date iso depuis Excel – Guide complet C# + +Vous avez déjà eu besoin de **formater date iso** en extrayant des dates d’une feuille Excel ? Peut‑être que vous devez gérer des dates d’ère japonaise, ou que vous voulez simplement une chaîne `yyyy‑MM‑dd` propre pour le corps d’une API. Dans ce tutoriel, vous verrez exactement comment **read Excel datetime** les cellules, **extract datetime Excel** les valeurs, et les transformer en format ISO‑8601 — sans aucune supposition. + +Nous parcourrons un exemple concret qui utilise Aspose.Cells, explique pourquoi chaque ligne est importante, et vous montre le résultat final que vous pouvez copier‑coller dans votre projet. À la fin, vous serez capable de gérer des chaînes d’ère particulières comme « 令和3年5月1日 » et de produire une date ISO standard, prête pour les bases de données, le JSON ou tout autre usage. + +## Prérequis + +- .NET 6.0 ou version ultérieure (le code fonctionne également avec .NET Framework) +- Aspose.Cells pour .NET (version d’essai gratuite ou version sous licence) +- Connaissances de base en C# et en concepts Excel +- Visual Studio ou tout éditeur C# de votre choix + +Aucun package NuGet supplémentaire n’est requis en dehors d’Aspose.Cells, donc l’installation est très simple. + +--- + +## Étape 1 : Créer un classeur et cibler la première feuille + +La première chose à faire est d’instancier un nouvel objet `Workbook`. Cela vous donne une représentation en mémoire d’un fichier Excel, que vous pouvez ensuite manipuler ou lire. + +```csharp +using Aspose.Cells; +using System.Globalization; + +// Step 1: Initialize a new workbook and grab the first worksheet +Workbook workbook = new Workbook(); // creates an empty .xlsx +Worksheet worksheet = workbook.Worksheets[0]; // the default sheet is "Sheet1" +``` + +*Pourquoi c’est important :* +Créer le classeur par programme vous évite de devoir gérer des fichiers physiques pendant les tests. Cela garantit également que la référence à la feuille est toujours valide — aucune surprise de référence nulle plus tard lorsque vous essayez de **read Excel datetime** les valeurs. + +--- + +## Étape 2 : Écrire une chaîne de date d’ère japonaise dans une cellule + +Notre objectif est de démontrer l’analyse d’une date non grégorienne. Nous placerons la chaîne d’ère directement dans la cellule **A1**. + +```csharp +// Step 2: Insert a Japanese era date string into cell A1 +worksheet.Cells["A1"].PutValue("令和3年5月1日"); +``` + +*Astuce :* Si vous extrayez les données d’un classeur existant, vous sauteriez l’appel `PutValue` et vous référeriez simplement à la cellule qui contient déjà la date. L’essentiel est que la cellule contienne une **string** représentant une date du calendrier lunisolaire japonais. + +--- + +## Étape 3 : Configurer une culture qui comprend le calendrier lunisolaire japonais + +La classe `CultureInfo` de .NET vous permet de spécifier comment les dates doivent être interprétées. En remplaçant le calendrier grégorien par défaut par `JapaneseLunisolarCalendar`, vous fournissez au parseur le contexte nécessaire. + +```csharp +// Step 3: Set up a culture using the Japanese lunisolar calendar +CultureInfo japaneseCulture = new CultureInfo("ja-JP"); +japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); +``` + +*Pourquoi faisons‑nous cela :* +Si vous essayiez d’analyser « 令和3年5月1日 » avec la culture par défaut, .NET lèverait une `FormatException`. En injectant le calendrier lunisolaire, le runtime sait exactement comment mapper « 令和3年 » (la 3ᵉ année de l’ère Reiwa) à l’année grégorienne 2021. + +--- + +## Étape 4 : Analyser la valeur de la cellule en `DateTime` avec la culture configurée + +Voici le cœur de l’opération — transformer cette chaîne d’ère en un véritable objet `DateTime`. Aspose.Cells propose une surcharge pratique de `GetDateTime` qui accepte un `CultureInfo`. + +```csharp +// Step 4: Retrieve the cell value as a DateTime, respecting the Japanese culture +DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); +``` + +*Ce qui se passe en coulisses :* +`GetDateTime` lit la chaîne brute, applique les règles du calendrier de la culture fournie, et renvoie un `DateTime` qui représente le même instant dans le calendrier grégorien. C’est le moment où vous **extract datetime Excel** les données sous une forme exploitable en .NET. + +--- + +## Étape 5 : Produire la date analysée au format ISO 8601 + +Enfin, nous formatons le `DateTime` en chaîne ISO — `yyyy‑MM‑dd` — qui est universellement accepté par les API, les bases de données et les frameworks front‑end. + +```csharp +// Step 5: Print the date in ISO format (e.g., 2021-05-01) +Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // Output: 2021-05-01 +``` + +*Pourquoi ISO ?* +ISO 8601 élimine toute ambiguïté. « 05/01/2021 » peut signifier le 1ᵉʳ mai ou le 5 janvier selon la locale. `2021-05-01` est parfaitement clair, c’est pourquoi nous **format date iso** dans presque tous les scénarios d’intégration. + +--- + +## Exemple complet fonctionnel + +Voici le programme complet, prêt à être exécuté. Copiez‑le dans un projet console, ajoutez la référence Aspose.Cells, puis appuyez sur **F5**. + +```csharp +using Aspose.Cells; +using System; +using System.Globalization; + +class Program +{ + static void Main() + { + // 1️⃣ Create workbook and select the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("令和3年5月1日"); + + // 3️⃣ Set up Japanese lunisolar culture + CultureInfo japaneseCulture = new CultureInfo("ja-JP"); + japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); + + // 4️⃣ Parse the cell value as DateTime using the culture + DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); + + // 5️⃣ Output the date in ISO format + Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // 2021-05-01 + } +} +``` + +**Sortie attendue** + +``` +2021-05-01 +``` + +Exécutez‑le une fois, et vous verrez la date formatée en ISO affichée dans la console. C’est toute la chaîne, de **read Excel datetime** à **format date iso**. + +--- + +## Gestion des cas limites courants + +### 1. Cellules contenant de vrais nombres de date Excel + +Parfois Excel stocke les dates sous forme de nombres sériels (par ex. `44204`). Dans ce cas, aucune culture n’est nécessaire ; il suffit d’appeler `GetDateTime()` sans paramètres : + +```csharp +DateTime serialDate = worksheet.Cells["B2"].GetDateTime(); // B2 holds a numeric date +Console.WriteLine(serialDate.ToString("yyyy-MM-dd")); +``` + +### 2. Cellules vides ou invalides + +Si une cellule est vide ou contient une chaîne non analysable, `GetDateTime` lèvera une exception. Enveloppez l’appel dans un `try/catch` ou vérifiez d’abord `IsDateTime` : + +```csharp +if (worksheet.Cells["C3"].Type == CellValueType.IsDateTime) +{ + DateTime safeDate = worksheet.Cells["C3"].GetDateTime(); + Console.WriteLine(safeDate.ToString("yyyy-MM-dd")); +} +else +{ + Console.WriteLine("Cell C3 does not contain a valid date."); +} +``` + +### 3. Formats d’ère différents + +Les autres ères japonaises (Heisei, Showa) suivent le même schéma. Le même `JapaneseLunisolarCalendar` les gérera automatiquement, vous n’avez donc pas besoin de logique supplémentaire — il suffit de fournir la chaîne. + +--- + +## Astuces pro & pièges à éviter + +- **Performance :** Lors du traitement de gros classeurs, réutilisez une même instance de `CultureInfo` au lieu d’en créer une nouvelle à chaque itération. +- **Sécurité des threads :** Les objets `CultureInfo` deviennent en lecture‑seule après la définition du calendrier, ils sont donc sûrs à partager entre threads. +- **Licence Aspose.Cells :** Si vous utilisez la version d’essai gratuite, rappelez‑vous que certaines fonctionnalités peuvent être limitées après l’expiration de la période d’essai. Le parsing de dates présenté ici fonctionne tant en mode essai qu’en mode sous licence. +- **Fuseaux horaires :** Le `DateTime` obtenu est **unspecified** (sans fuseau). Si vous avez besoin d’UTC, appelez `DateTime.SpecifyKind(parsedDate, DateTimeKind.Utc)` ou convertissez avec `TimeZoneInfo`. + +--- + +## Conclusion + +Nous avons couvert tout ce qu’il faut pour **format date iso** à partir d’un classeur Excel avec C#. En partant d’une chaîne d’ère japonaise brute, nous **read Excel datetime**, configurons la culture appropriée, **extract datetime excel**, puis produisons une chaîne ISO‑8601 propre. Cette approche fonctionne pour n’importe quelle représentation de date qu’Excel peut vous fournir, qu’il s’agisse d’un nombre sériel, d’une chaîne locale ou d’un format d’ère traditionnel. + +Et après ? Essayez de parcourir toute une colonne de dates, d’écrire les résultats ISO dans une nouvelle feuille, ou de les injecter directement dans un payload JSON pour un service web. Si vous êtes curieux des autres systèmes de calendrier (hébreu, islamique), Aspose.Cells et le `CultureInfo` de .NET rendent ces expériences tout aussi simples. + +Des questions ou un format de date récalcitrant ? Laissez un commentaire ci‑dessous, et bon codage ! + +{{< /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/french/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md b/cells/french/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md new file mode 100644 index 0000000000..9a1148c4a0 --- /dev/null +++ b/cells/french/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md @@ -0,0 +1,235 @@ +--- +category: general +date: 2026-03-30 +description: Apprenez à formater les nombres avec séparateur en utilisant Aspose.Cells + en C#. Comprend la définition d’un format numérique personnalisé, l’ajout d’un séparateur + de milliers, le formatage des décimales et la façon de formater une cellule. +draft: false +keywords: +- format number with separator +- set custom number format +- add thousands separator +- format decimal places +- how to format cell +language: fr +og_description: Formater un nombre avec séparateur en C#. Ce guide montre comment + définir un format de nombre personnalisé, ajouter un séparateur de milliers, formater + les décimales et comment formater une cellule à l’aide d’Aspose.Cells. +og_title: Formater un nombre avec séparateur en C# – Tutoriel Aspose.Cells +tags: +- C# +- Aspose.Cells +- Number Formatting +title: Formater les nombres avec séparateur en C# – Guide complet d’Aspose.Cells +url: /fr/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Formater un nombre avec séparateur en C# – Guide complet Aspose.Cells + +Vous avez déjà eu besoin de **formater un nombre avec séparateur** dans une feuille de calcul mais vous ne saviez pas quelle appel d'API utiliser ? Vous n'êtes pas le seul—les développeurs luttent constamment avec les séparateurs de milliers, les décimales et les modèles personnalisés lors de l'exportation de données. + +Bonne nouvelle : Aspose.Cells rend cela très simple. Dans ce tutoriel, nous parcourrons un exemple réel qui **définit un format numérique personnalisé**, **ajoute un séparateur de milliers**, **formate les décimales**, et montre **comment formater une cellule** en sortie sous forme de chaîne. À la fin, vous disposerez d’un extrait prêt à l’exécution que vous pourrez intégrer dans n’importe quel projet .NET. + +## Ce que couvre ce guide + +* Le package NuGet exact dont vous avez besoin et comment l'installer. +* Code étape par étape qui crée un classeur, écrit une valeur numérique et applique un format personnalisé. +* Pourquoi `ExportTableOptions.ExportAsString` est la méthode préférée pour récupérer une valeur formatée. +* Pièges courants—comme oublier d'activer `ExportAsString` ou utiliser le mauvais masque de format. +* Comment ajuster le masque de format si vous avez besoin d’un nombre différent de décimales ou d’un style de séparateur différent. + +Aucun lien vers une documentation externe n’est requis ; tout ce dont vous avez besoin se trouve ici. Plongeons‑y. + +--- + +## Prérequis + +| Exigence | Raison | +|-------------|--------| +| .NET 6.0 ou version ultérieure | Aspose.Cells 23.10+ cible .NET Standard 2.0+, donc .NET 6 est sûr et actuel. | +| Visual Studio 2022 (ou tout IDE C#) | Facilite le débogage et la gestion des packages. | +| Package NuGet Aspose.Cells pour .NET | Fournit les classes `Workbook`, `Worksheet` et `ExportTableOptions` que nous utiliserons. | + +Vous pouvez installer le package via la console du gestionnaire de packages : + +```powershell +Install-Package Aspose.Cells +``` + +C’est tout—pas de DLL supplémentaires, pas d’interop COM, juste une référence NuGet unique. + +## Étape 1 : Initialiser un nouveau classeur (Comment formater une cellule) + +La première chose que nous faisons est de créer une nouvelle instance de `Workbook`. Considérez‑la comme un fichier Excel vide prêt à recevoir des données. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Create a new workbook – this is where we’ll format the cell. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Pourquoi c’est important :** `Workbook` est le point d’entrée de chaque opération dans Aspose.Cells. En récupérant la première feuille de calcul (`Worksheets[0]`) nous obtenons une toile vierge sans avoir à nommer une feuille. + +## Étape 2 : Écrire une valeur numérique dans la cellule cible + +Ensuite, nous plaçons un nombre brut dans la cellule **A1**. La valeur elle‑même n’est pas encore formatée — c’est simplement un double. + +```csharp + // Step 2: Insert a raw numeric value. + worksheet.Cells["A1"].PutValue(12345.6789); +``` + +> **Astuce :** Utilisez `PutValue` au lieu de `PutString` lorsque vous avez l’intention d’appliquer un format numérique ultérieurement. Cela préserve le type de données sous‑jacent, permettant des calculs compatibles Excel. + +## Étape 3 : Définir un format numérique personnalisé (Ajouter un séparateur de milliers & formater les décimales) + +Voici le cœur du tutoriel : définir un masque de format qui indique à Aspose.Cells comment afficher le nombre. Le masque `#,##0.00` fait trois choses : + +1. **`#,##0`** – ajoute un séparateur de milliers (virgule par défaut). +2. **`.00`** – force exactement deux décimales. + +Si vous avez besoin d’un nombre différent de décimales, il suffit de modifier le nombre de `0` après le point décimal. + +```csharp + // Step 3: Configure the custom number format. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, // Return the value as a formatted string. + NumberFormat = "#,##0.00" // Add thousands separator and fix to 2 decimals. + }; +``` + +> **Pourquoi nous utilisons `ExportAsString`** : Par défaut, `ExportString` renvoie la valeur brute. Définir `ExportAsString = true` oblige l’API à appliquer le masque `NumberFormat` avant de convertir en texte. C’est essentiel lorsque vous avez besoin de la représentation exacte en chaîne pour les rapports, les charges JSON ou l’affichage UI. + +## Étape 4 : Exporter le texte formaté (Comment formater une cellule) + +Avec les options prêtes, nous appelons `ExportString` sur la même cellule. La méthode respecte le masque que nous venons de définir et renvoie une chaîne correctement formatée. + +```csharp + // Step 4: Export the formatted value. + string formattedCellText = worksheet.Cells["A1"].ExportString(exportOptions); + + // Step 5: Show the result. + Console.WriteLine(formattedCellText); // Expected output: 12,345.68 + } +} +``` + +L’exécution du programme affiche **`12,345.68`** dans la console—exactement le format que nous avons demandé. + +> **Cas limite :** Si le nombre source possède plus de deux décimales, le masque l’arrondit. Si vous avez besoin d’une troncature au lieu d’un arrondi, vous devrez pré‑traiter la valeur avec `Math.Truncate` avant d’appeler `PutValue`. + +## Étape 5 : Ajuster le format – Variations courantes + +### 5.1 Modifier la précision décimale + +Vous voulez trois décimales ? Remplacez simplement le masque : + +```csharp +NumberFormat = "#,##0.000" // → 12,345.679 +``` + +### 5.2 Utiliser un séparateur de milliers différent + +Certaines locales préfèrent un espace ou un point. Vous pouvez insérer le caractère directement : + +```csharp +NumberFormat = "# ##0.00" // Uses a non‑breaking space as separator. +``` + +Ou vous appuyer sur les paramètres de culture du classeur : + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("de-DE"); +NumberFormat = "#.##0,00"; // German style: 12.345,68 +``` + +### 5.3 Préfixe ou suffixe (Monnaie, Pourcentage) + +Ajoutez un signe dollar ou un signe pourcentage directement dans le masque : + +```csharp +NumberFormat = "$#,##0.00"; // → $12,345.68 +NumberFormat = "0.00%"; // → 1,234,568.00% +``` + +> **Remarque :** Le masque est sensible à la casse. `$` et `%` sont des symboles littéraux ; ils n’affectent pas la valeur numérique sous‑jacente. + +## Étape 6 : Exemple complet fonctionnel (Prêt à copier‑coller) + +Voici le programme complet que vous pouvez copier dans une nouvelle application console. Il inclut toutes les étapes, les commentaires et la vérification de la sortie finale. + +```csharp +using System; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write raw numeric value to A1. + worksheet.Cells["A1"].PutValue(12345.6789); + + // 3️⃣ Define custom format: thousands separator + two decimals. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + NumberFormat = "#,##0.00" + }; + + // 4️⃣ Export the formatted string. + string result = worksheet.Cells["A1"].ExportString(exportOptions); + + // 5️⃣ Display the outcome. + Console.WriteLine(result); // Output: 12,345.68 + + // Optional: keep console open. + Console.WriteLine("Press any key to exit..."); + Console.ReadKey(); + } +} +``` + +Exécutez le programme (`dotnet run` depuis le terminal ou appuyez sur F5 dans Visual Studio) et vous verrez le nombre formaté affiché exactement comme indiqué. + +## Questions fréquemment posées (FAQ) + +**Q : Cette méthode fonctionne‑t‑elle avec les versions plus anciennes d’Excel ?** +R : Oui. Le masque de format suit la syntaxe native des formats numériques d’Excel, donc toute version qui comprend `#,##0.00` rendra la même chaîne. + +**Q : Et si je dois formater une plage de cellules ?** +R : Parcourez la plage souhaitée et appliquez le même `ExportTableOptions` à chaque cellule, ou définissez la propriété `Style.Custom` sur la plage puis appelez `ExportString` sur une seule cellule. + +**Q : Puis‑je exporter directement en CSV avec ces formats appliqués ?** +R : Absolument. Utilisez `Workbook.Save("output.csv", SaveFormat.CSV);` après avoir défini le format sur chaque cellule. Aspose.Cells respecte le `Style` de la cellule lors de la génération du CSV. + +## Conclusion + +Nous venons de montrer comment **formater un nombre avec séparateur** en C# avec Aspose.Cells, couvrant tout, de **définir un format numérique personnalisé** à **ajouter un séparateur de milliers**, **formater les décimales**, et l’essentiel **comment formater une cellule** pour l’exportation en chaîne. Le code est entièrement autonome, fonctionne avec .NET 6+, et peut être adapté à n’importe quelle locale ou exigence de précision. + +Ensuite, vous pourriez explorer : + +* Appliquer la même technique aux dates et heures (`NumberFormat = "dd‑MMM‑yyyy"`). +* Automatiser les exportations en masse où chaque colonne nécessite un masque différent. +* Intégrer les chaînes formatées dans des rapports PDF avec Aspose.Words. + +Essayez-les, et vous deviendrez rapidement la référence en matière de formatage de feuilles de calcul dans votre équipe. Bon codage ! (Image: ![Capture d’écran montrant un nombre formaté avec séparateur dans Aspose.Cells](image-placeholder.png){alt="Nombre formaté avec séparateur affiché dans la sortie d’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/french/net/excel-data-import-export/_index.md b/cells/french/net/excel-data-import-export/_index.md index 1a81b4897b..2c52bd14a0 100644 --- a/cells/french/net/excel-data-import-export/_index.md +++ b/cells/french/net/excel-data-import-export/_index.md @@ -32,6 +32,10 @@ Voici un autre défi courant : insérer des lignes de DataTable dans Excel sans Apprenez à importer des données dans Excel avec un formatage DB Num personnalisé à l'aide d'Aspose.Cells pour .NET dans ce didacticiel facile à suivre. ### [Décaler la première ligne vers le bas lors de l'insertion de lignes de tableau de données dans Excel](./shift-first-row-down-when-inserting-cells-datatable-rows-in-excel/) Apprenez à insérer des lignes de DataTable dans Excel sans décaler la première ligne vers le bas grâce à Aspose.Cells pour .NET. Guide étape par étape pour une automatisation simplifiée. +### [Créer un classeur Excel en C# – Insérer du JSON et enregistrer au format XLSX](./create-excel-workbook-c-insert-json-and-save-as-xlsx/) +Apprenez à créer un classeur Excel en C#, insérer des données JSON et le sauvegarder au format XLSX avec Aspose.Cells. +### [Créer un classeur Excel en C# – Appliquer le format monétaire et importer un DataTable](./create-excel-workbook-c-apply-currency-format-and-import-dat/) +Apprenez à créer un classeur Excel en C#, appliquer un format monétaire aux cellules et importer un DataTable avec Aspose.Cells. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/french/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md b/cells/french/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md new file mode 100644 index 0000000000..5a00afa227 --- /dev/null +++ b/cells/french/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md @@ -0,0 +1,286 @@ +--- +category: general +date: 2026-03-30 +description: Créer un classeur Excel en C# avec format monétaire. Apprenez à importer + un DataTable, à ajouter un format numérique dans Excel et à appliquer le format + monétaire à une colonne en quelques minutes. +draft: false +keywords: +- create excel workbook c# +- format cells currency +- import datatable to excel +- add number format excel +- apply currency format column +language: fr +og_description: Créez un classeur Excel en C# et formatez instantanément les cellules + en devise. Ce tutoriel étape par étape montre comment importer un DataTable dans + Excel et ajouter un format numérique à une colonne. +og_title: Créer un classeur Excel C# – Guide de formatage des devises +tags: +- Aspose.Cells +- C# +- Excel automation +title: Créer un classeur Excel en C# – Appliquer le format monétaire et importer un + DataTable +url: /fr/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Créer un classeur Excel C# – Appliquer le format monétaire et importer un DataTable + +Vous avez déjà eu besoin de **créer un classeur Excel C#** qui ressemble déjà à un rapport soigné ? Peut‑être récupérez‑vous des chiffres de ventes depuis une base de données et vous voulez que la colonne prix s’affiche en dollars sans devoir bidouiller Excel manuellement. Ça vous parle ? Vous n’êtes pas seul — la plupart des développeurs rencontrent ce problème lorsqu’ils automatisent leurs exportations Excel pour la première fois. + +Dans ce guide, nous parcourrons une solution complète, prête à l’emploi, qui **crée un classeur Excel C#**, importe un `DataTable`, et **formate la colonne Price en monnaie**. À la fin, vous disposerez d’un fichier nommé `StyledTable.xlsx` que vous pourrez ouvrir et voir des nombres correctement formatés. Aucun post‑traitement supplémentaire n’est requis. + +> **Ce que vous allez apprendre** +> - Comment configurer Aspose.Cells dans un projet .NET +> - Comment **importer datatable to excel** avec un tableau de styles +> - Comment **add number format excel** pour une colonne spécifique +> - Astuces pour gérer davantage de colonnes ou des paramètres régionaux différents + +> **Prérequis** +> - .NET 6+ (ou .NET Framework 4.6+) installé +> - Package NuGet Aspose.Cells for .NET (`Install-Package Aspose.Cells`) +> - Familiarité de base avec C# et les DataTables + +--- + +## Étape 1 : Préparer le DataTable (import datatable to excel) + +Tout d’abord, nous avons besoin de quelques données d’exemple. Dans une application réelle, vous remplirez probablement ce tableau à partir d’une requête DB, mais un exemple codé en dur simplifie les choses. + +```csharp +using System.Data; + +// Create a DataTable with two columns: Product (string) and Price (double) +DataTable dataTable = new DataTable(); +dataTable.Columns.Add("Product", typeof(string)); +dataTable.Columns.Add("Price", typeof(double)); + +// Add a few rows – you can add as many as you like +dataTable.Rows.Add("Apple", 1.23); +dataTable.Rows.Add("Banana", 0.78); +dataTable.Rows.Add("Cherry", 2.50); +``` + +*Pourquoi c’est important* : le `DataTable` fait le lien entre vos données métier et le fichier Excel. Aspose.Cells peut l’importer directement, en conservant les noms de colonnes et les types de données. + +--- + +## Étape 2 : Créer un nouveau classeur (create excel workbook c#) + +Nous créons maintenant l’objet fichier Excel proprement dit. Pensez‑y comme à une toile vierge sur laquelle vous allez peindre. + +```csharp +using Aspose.Cells; + +// Instantiate a fresh workbook – this is the core of create excel workbook c# +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0). You could also add more sheets later. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Astuce :** Si vous avez besoin de plusieurs feuilles, appelez `workbook.Worksheets.Add()` et donnez à chacune un nom significatif. + +--- + +## Étape 3 : Définir un style monétaire (format cells currency) + +Aspose.Cells vous permet de créer un objet `Style` qui décrit l’apparence des cellules. Pour la monnaie, nous utilisons l’ID de format numérique intégré 164 (`"$#,##0.00"`). + +```csharp +// Create a new style object for the price column +Style priceStyle = workbook.CreateStyle(); +priceStyle.Number = 164; // Built‑in currency format "$#,##0.00" +``` + +*Pourquoi ne pas simplement définir la chaîne de format ?* Utiliser l’ID intégré garantit la compatibilité entre les versions d’Excel et évite les particularités liées aux paramètres régionaux. + +--- + +## Étape 4 : Construire le tableau de styles (apply currency format column) + +Lors de l’importation d’un `DataTable`, vous pouvez passer un tableau d’objets `Style` — un par colonne. `null` signifie « utiliser le style par défaut ». Ici, nous appliquons `priceStyle` uniquement à la deuxième colonne. + +```csharp +// Column 0 (Product) gets the default style, Column 1 (Price) gets the currency style +Style[] columnStyles = { null, priceStyle }; +``` + +Si vous ajoutez plus tard d’autres colonnes, il suffit d’étendre le tableau en conséquence. La longueur de `columnStyles` doit correspondre au nombre de colonnes que vous importez, sinon Aspose lèvera une exception. + +--- + +## Étape 5 : Importer le DataTable avec les styles (import datatable to excel) + +Le moment magique arrive — notre `DataTable` atterrit dans la feuille, et la colonne prix s’affiche immédiatement en monnaie. + +```csharp +// Parameters: +// - dataTable: source data +// - true: include column headers +// - startRow: 0 (top of sheet) +// - startColumn: 0 (first column) +// - columnStyles: style array defined above +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +*Et si vous avez plus de deux colonnes ?* Il suffit d’étendre `columnStyles` afin que chaque colonne reçoive le style approprié (ou `null` pour le style par défaut). C’est la façon la plus propre d’**add number format excel** sélectivement. + +--- + +## Étape 6 : Enregistrer le classeur (create excel workbook c#) + +Enfin, nous écrivons le fichier sur le disque. Choisissez n’importe quel dossier où vous avez les droits d’écriture. + +```csharp +// Save the workbook as an XLSX file +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +Ouvrez `StyledTable.xlsx` dans Excel et vous devriez voir : + +| Product | Price | +|---------|-------| +| Apple | $1.23 | +| Banana | $0.78 | +| Cherry | $2.50 | + +La colonne **Price** est déjà formatée en monnaie — aucune étape supplémentaire n’est nécessaire. + +--- + +## Cas limites et variantes + +### Plus de colonnes, formats différents + +Si vous devez **format cells currency** pour plusieurs colonnes (par ex. Cost, Tax, Total), créez un `Style` distinct pour chacune et remplissez `columnStyles` en conséquence : + +```csharp +Style costStyle = workbook.CreateStyle(); +costStyle.Number = 164; // currency + +Style taxStyle = workbook.CreateStyle(); +taxStyle.Number = 164; + +// Assuming columns: Product, Cost, Tax, Total +Style[] styles = { null, costStyle, taxStyle, priceStyle }; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, styles); +``` + +### Monnaie spécifique à un paramètre régional + +Pour l’euro ou la livre sterling, utilisez d’autres IDs intégrés (par ex. 165 pour `€#,##0.00`). Vous pouvez également définir une chaîne de format personnalisée : + +```csharp +priceStyle.Custom = "€#,##0.00"; +``` + +### Jeux de données volumineux + +Aspose.Cells peut gérer des millions de lignes, mais la consommation mémoire augmente avec les objets de style. Réutilisez une seule instance de `Style` pour toutes les colonnes monétaires afin de garder l’empreinte faible. + +### Styles manquants + +Si `columnStyles` est plus court que le nombre de colonnes, Aspose appliquera le style par défaut aux colonnes restantes. Cela est pratique lorsque vous ne vous souciez que de quelques colonnes. + +--- + +## Exemple complet (Toutes les étapes combinées) + +Voici le programme complet que vous pouvez copier‑coller dans une application console. Il regroupe tous les éléments présentés, avec quelques commentaires utiles. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // Step 1: Build sample DataTable (import datatable to excel) + // ------------------------------------------------- + DataTable dataTable = new DataTable(); + dataTable.Columns.Add("Product", typeof(string)); + dataTable.Columns.Add("Price", typeof(double)); + dataTable.Rows.Add("Apple", 1.23); + dataTable.Rows.Add("Banana", 0.78); + dataTable.Rows.Add("Cherry", 2.50); + // You can add as many rows as you like here. + + // ------------------------------------------------- + // Step 2: Create a new workbook (create excel workbook c#) + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // Step 3: Define a currency style (format cells currency) + // ------------------------------------------------- + Style priceStyle = workbook.CreateStyle(); + priceStyle.Number = 164; // "$#,##0.00" – built‑in currency format + + // ------------------------------------------------- + // Step 4: Build the style array (apply currency format column) + // ------------------------------------------------- + // First column gets default style (null), second column uses priceStyle. + Style[] columnStyles = { null, priceStyle }; + + // ------------------------------------------------- + // Step 5: Import the DataTable with the style array + // ------------------------------------------------- + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // ------------------------------------------------- + // Step 6: Save the workbook to disk + // ------------------------------------------------- + string outputPath = @"YOUR_DIRECTORY\StyledTable.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } +} +``` + +**Résultat attendu** : l’ouverture de `StyledTable.xlsx` montre la colonne `Price` avec le symbole dollar et deux décimales, exactement comme l’instruction **format cells currency** le demandait. + +--- + +## Foire aux questions + +**Q : Cela fonctionne‑t‑il avec .NET Core ?** +R : Absolument. Aspose.Cells est compatible .NET‑standard, vous pouvez donc cibler .NET 5, .NET 6 ou une version ultérieure sans modification. + +**Q : Et si mon DataTable possède 10 colonnes mais que je ne veux formater que la colonne 5 ?** +R : Créez un `Style[]` de longueur 10, remplissez les positions 0‑4 et 6‑9 avec `null`, et placez votre style personnalisé à l’indice 4 (index zéro‑based). Aspose respectera chaque entrée. + +**Q : Puis‑je masquer la ligne d’en‑tête ?** +R : Après l’importation, définissez `worksheet.Cells.Rows[0].Hidden = true;` ou passez simplement `false` au paramètre `includeColumnNames` de `ImportDataTable`. + +--- + +## Conclusion + +Nous venons de **créer un classeur Excel C#**, d’importer un `DataTable`, et d’**appliquer un format monétaire à une colonne** grâce à Aspose.Cells. Les étapes principales — préparation des données, définition d’un style, construction du tableau de styles, importation avec `ImportDataTable`, et sauvegarde — couvrent le cœur de la plupart des tâches d’automatisation Excel. + +À partir d’ici, vous pourriez explorer : + +- **add number format excel** pour les dates ou les pourcentages +- Exporter plusieurs feuilles dans un même fichier +- Utiliser **format cells currency** avec des symboles spécifiques à un paramètre régional +- Automatiser la création de graphiques à partir des mêmes données + +Essayez ces pistes, et vous deviendrez rapidement la référence Excel de votre équipe. Vous avez une variante à partager ? Laissez un commentaire ci‑dessous—bon codage ! + +![create excel workbook c# screenshot](image.png "create excel workbook c#") + +{{< /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/french/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md b/cells/french/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md new file mode 100644 index 0000000000..371580d657 --- /dev/null +++ b/cells/french/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md @@ -0,0 +1,235 @@ +--- +category: general +date: 2026-03-30 +description: Créez rapidement un classeur Excel en C# en insérant des données JSON + et en enregistrant le classeur au format XLSX. Apprenez comment générer un fichier + Excel à partir de JSON, écrire du JSON dans Excel et insérer du JSON dans Excel. +draft: false +keywords: +- create excel workbook c# +- save workbook as xlsx +- generate excel from json +- write json to excel +- insert json into excel +language: fr +og_description: Créez rapidement un classeur Excel en C# en insérant des données JSON + et en l’enregistrant au format XLSX. Suivez ce guide étape par étape pour générer + un fichier Excel à partir de JSON. +og_title: Créer un classeur Excel C# – Insérer du JSON et enregistrer en XLSX +tags: +- Aspose.Cells +- C# +- Excel automation +title: Créer un classeur Excel C# – Insérer du JSON et enregistrer en XLSX +url: /fr/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Créer un classeur Excel C# – Insérer du JSON et enregistrer en XLSX + +Vous avez déjà eu besoin de **create Excel workbook C#** et de déposer du JSON directement dans une cellule ? Vous n'êtes pas le seul—les développeurs rencontrent souvent le même problème lorsqu'ils ont des charges utiles d'API ou des fichiers de configuration qui doivent être placés dans une feuille de calcul pour le reporting ou le partage. + +Bonne nouvelle, avec Aspose.Cells vous pouvez le faire en quelques lignes, **save workbook as XLSX**, et garder tout le processus type‑safe. Dans ce tutoriel, nous allons **generate Excel from JSON**, **write JSON to Excel**, et vous montrer les étapes exactes pour **insert JSON into Excel** sans concaténations de chaînes compliquées. + +## Ce que couvre ce guide + +Nous allons parcourir : + +1. Configurer un nouveau classeur vierge. +2. Ajouter un Smart Marker qui attend du JSON. +3. Fournir un tableau JSON au marqueur. +4. Ajuster `SmartMarkerOptions` pour que le JSON reste dans une seule cellule. +5. Enregistrer le fichier en tant que classeur XLSX. + +À la fin, vous disposerez d'un fichier `JsonSingleCell.xlsx` prêt à l'emploi et d'un modèle solide que vous pourrez réutiliser pour n'importe quel scénario JSON‑to‑Excel. Aucun service externe, juste du C# pur et la bibliothèque Aspose.Cells. + +**Prérequis** + +- .NET 6+ (ou .NET Framework 4.6+). +- Visual Studio 2022 ou tout IDE compatible C#. +- Package NuGet `Aspose.Cells` (version d'essai gratuite ou version sous licence). + +Si vous avez tout cela, plongeons‑y—aucune configuration supplémentaire n'est requise. + +--- + +## Étape 1 : Créer un nouveau classeur en C# + +La première chose dont vous avez besoin est un objet workbook vierge. Considérez-le comme un nouveau fichier Excel en attente de données. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is your empty Excel file +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; +``` + +**Pourquoi c’est important :** +`Workbook` est le point d’entrée pour toutes les opérations Excel. En le créant d’abord, vous vous assurez que l’appel suivant **save workbook as xlsx** possède un objet concret à sérialiser. + +> **Astuce :** Si vous prévoyez de travailler avec plusieurs feuilles, vous pouvez les ajouter dès maintenant avec `workbook.Worksheets.Add()`. + +## Étape 2 : Placer un Smart Marker qui attend du JSON + +Les Smart Markers sont des espaces réservés que Aspose.Cells remplace à l’exécution. Ici, nous indiquons qu’il doit rechercher une chaîne JSON nommée `data`. + +```csharp +// Put a Smart Marker in cell A1 – {{data:json}} tells Aspose to expect JSON +worksheet.Cells["A1"].PutValue("{{data:json}}"); +``` + +**Pourquoi c’est important :** +Le suffixe `:json` indique au moteur que la valeur reçue est du JSON, pas du texte brut. C’est la clé pour **write json to excel** sans analyse manuelle. + +## Étape 3 : Définir le tableau JSON + +Nous créons maintenant le JSON que nous voulons insérer. Pour la démonstration, nous utiliserons une liste simple de personnes. + +```csharp +// Sample JSON array – could come from an API, file, or DB +string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; +``` + +**Cas particulier :** +Si votre JSON contient des guillemets doubles, assurez‑vous qu’ils sont échappés (comme montré) ou utilisez une chaîne verbatim (`@"..."`) pour éviter les erreurs de compilation. + +## Étape 4 : Configurer les options du Smart Marker – Conserver le tableau entier + +Par défaut, Aspose tenterait d’étendre le tableau sur plusieurs lignes. Nous voulons que toute la chaîne JSON reste dans une seule cellule, ce qui est parfait pour les scénarios **insert json into excel** où le consommateur analysera le JSON plus tard. + +```csharp +SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions +{ + // Treat the whole array as a single cell value + ArrayAsSingle = true +}; +``` + +**Pourquoi c’est important :** +`ArrayAsSingle = true` empêche l’expansion des lignes, vous offrant un blob JSON propre dans une seule cellule. C’est essentiel lorsque la feuille de calcul est un format de transport plutôt qu’un rapport. + +## Étape 5 : Traiter le Smart Marker avec les données JSON + +Nous associons maintenant le JSON au marqueur et laissons Aspose faire le travail lourd. + +```csharp +// Process the marker – the anonymous object maps "data" to our JSON string +worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); +``` + +**Ce qui se passe en coulisses :** +Aspose évalue l’espace réservé `{{data:json}}`, sérialise la chaîne `jsonData` et l’écrit dans la cellule A1 en respectant les options que nous avons définies. + +## Étape 6 : Enregistrer le classeur en fichier XLSX + +Enfin, nous écrivons le classeur sur le disque. C’est ici que **save workbook as xlsx** entre en jeu. + +```csharp +// Save the workbook – the extension determines the format (XLSX here) +workbook.Save("JsonSingleCell.xlsx"); +``` + +**Résultat :** +Ouvrez `JsonSingleCell.xlsx` dans Excel, et vous verrez le tableau JSON exactement comme nous l’avons défini, placé proprement dans la cellule A1. + +## Exemple complet et exécutable + +Ci‑dessous se trouve le programme complet que vous pouvez copier‑coller dans une application console. Il inclut toutes les étapes ci‑dessus et fonctionne immédiatement (en supposant que le package NuGet Aspose.Cells est installé). + +```csharp +using System; +using Aspose.Cells; + +namespace JsonToExcelDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add a Smart Marker that expects JSON + worksheet.Cells["A1"].PutValue("{{data:json}}"); + + // 3️⃣ Define the JSON array + string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; + + // 4️⃣ Configure options – keep array as a single cell value + SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions + { + ArrayAsSingle = true + }; + + // 5️⃣ Process the marker with the JSON payload + worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); + + // 6️⃣ Save the workbook as XLSX + workbook.Save("JsonSingleCell.xlsx"); + + Console.WriteLine("Excel file created successfully! Check JsonSingleCell.xlsx."); + } + } +} +``` + +**Sortie attendue dans Excel** + +| A | +|---| +| `[{"Name":"John","Age":30},{"Name":"Jane","Age":28}]` | + +Cette seule cellule contient maintenant un tableau JSON parfaitement valide, prêt pour le traitement en aval. + +## Questions fréquentes & cas particuliers + +### Et si je veux que le JSON soit réparti sur plusieurs lignes ? + +Définissez `ArrayAsSingle = false` (la valeur par défaut). Aspose créera une ligne pour chaque élément du tableau, en mappant les propriétés de l’objet aux colonnes. Cela est pratique lorsque vous souhaitez une vue tabulaire plutôt qu’une chaîne JSON brute. + +### Puis‑je utiliser un fichier JSON au lieu d’une chaîne codée en dur ? + +Absolument. Lisez le fichier dans une chaîne : + +```csharp +string jsonData = File.ReadAllText("people.json"); +``` + +Puis passez `jsonData` au même appel `Process`. Le reste du pipeline reste inchangé. + +### Cette méthode fonctionne‑t‑elle avec de gros chargements JSON ? + +Oui, mais surveillez l’utilisation de la mémoire. Pour des tableaux massifs, envisagez de diffuser les données ou d’écrire directement dans les lignes (`ArrayAsSingle = false`) afin d’éviter une seule cellule gigantesque que Excel pourrait avoir du mal à gérer. + +### Le XLSX généré est‑il compatible avec les anciennes versions d’Excel ? + +Le format `.xlsx` est basé sur Office Open XML et fonctionne avec Excel 2007 et versions ultérieures. Si vous avez besoin du format hérité `.xls`, modifiez l’appel d’enregistrement : + +```csharp +workbook.Save("JsonSingleCell.xls", SaveFormat.Excel97To2003); +``` + +## Astuces pro pour travailler avec JSON et Excel + +- **Validez le JSON d'abord** – utilisez `System.Text.Json.JsonDocument.Parse(jsonData)` pour détecter tôt les entrées malformées. +- **Échappez les caractères spéciaux** – si votre JSON contient des sauts de ligne, ils apparaîtront comme le littéral `\n` dans la cellule ; vous pouvez les remplacer par `Environment.NewLine` avant le traitement. +- **Réutilisez les Smart Markers** – vous pouvez placer plusieurs marqueurs dans la même feuille, chacun pointant vers une propriété JSON différente. +- **Combinez avec des formules** – une fois le JSON dans une cellule, vous pouvez utiliser `FILTERXML` d’Excel (dans les versions récentes) pour le parser à la volée. + +## Conclusion + +Vous savez maintenant comment **create excel workbook c#**, intégrer une charge JSON, et **save workbook as xlsx** avec Aspose.Cells. Ce modèle vous permet de **generate excel from json**, **write json to excel**, et **insert json into excel** en quelques lignes de code seulement, rendant l’échange de données entre services et analystes fluide. + +Prêt pour l’étape suivante ? Essayez de convertir le tableau JSON en une table propre (définissez `ArrayAsSingle = false`) ou explorez le style de la feuille après l’insertion. La même approche fonctionne pour CSV, XML, ou même des objets personnalisés—il suffit d’ajuster le type de Smart Marker. + +Bon codage, et n’hésitez pas à expérimenter ! Si vous rencontrez des problèmes, laissez un commentaire ci‑dessous ou consultez la documentation officielle d’Aspose pour approfondir les Smart Markers. + +{{< /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/french/net/excel-workbook/_index.md b/cells/french/net/excel-workbook/_index.md index d15679d7ed..cc05e69d20 100644 --- a/cells/french/net/excel-workbook/_index.md +++ b/cells/french/net/excel-workbook/_index.md @@ -86,6 +86,7 @@ Alors pourquoi ne pas saisir cette occasion d'améliorer vos compétences Excel | [Aperçu avant impression du cahier d'exercices](./workbook-print-preview/) | Apprenez à créer des aperçus avant impression pour vos fichiers Excel avec Aspose.Cells pour .NET. Découvrez les étapes de codage dans un tutoriel détaillé et facile à suivre. | | [Travailler avec les propriétés du type de contenu](./working-with-content-type-properties/) | Apprenez à utiliser Aspose.Cells pour .NET pour gérer les propriétés de type de contenu et optimiser la gestion des métadonnées Excel. Suivez ce guide simple et étape par étape. | | [Prise en charge de la signature Xades](./xades-signature-support/) | Découvrez comment ajouter des signatures Xades à vos fichiers Excel avec Aspose.Cells pour .NET grâce à ce guide étape par étape. Sécurisez vos documents. | +| [Créer une feuille maître en C# – Guide complet Aspose.Cells](./create-master-sheet-in-c-complete-aspose-cells-guide/) | Apprenez à créer une feuille maître dans Excel avec Aspose.Cells pour .NET en C# grâce à ce guide complet étape par étape. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/french/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md b/cells/french/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md new file mode 100644 index 0000000000..127fd0153a --- /dev/null +++ b/cells/french/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-03-30 +description: Créer une feuille maître avec Aspose.Cells en C#. Apprenez à créer un + classeur Excel en C#, autoriser les noms de feuilles en double et enregistrer le + classeur au format XLSX en quelques étapes. +draft: false +keywords: +- create master sheet +- create excel workbook c# +- save workbook as xlsx +- allow duplicate sheet names +language: fr +og_description: Créer une feuille maître avec Aspose.Cells en C#. Ce guide montre + comment créer un classeur Excel en C#, autoriser les noms de feuilles en double + et enregistrer le classeur au format XLSX. +og_title: Créer une feuille maître en C# – Guide complet d'Aspose.Cells +tags: +- Aspose.Cells +- C# +- Excel automation +title: Créer une feuille principale en C# – Guide complet d'Aspose.Cells +url: /fr/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Créer une feuille maître en C# – Guide complet Aspose.Cells + +Vous avez déjà eu besoin de **créer une feuille maître** dans un fichier Excel mais vous ne saviez pas comment gérer un ensemble de feuilles détaillées partageant le même nom de base ? Vous n'êtes pas seul. Dans de nombreux scénarios de reporting, vous vous retrouvez avec des dizaines d'onglets détaillés, et le comportement par défaut de la plupart des bibliothèques est de lever une exception lorsqu deux feuilles auraient le même nom. + +Heureusement, Aspose.Cells rend cela très simple pour **créer une feuille maître**, configurer le moteur afin d'**autoriser les noms de feuilles en double**, puis **enregistrer le classeur au format XLSX**—le tout depuis du code C# propre. Dans ce tutoriel, nous parcourrons un exemple entièrement exécutable, expliquerons pourquoi chaque ligne est importante, et vous fournirons une poignée d'astuces que vous pourrez copier directement dans vos propres projets. + +> **Ce que vous retiendrez** +> * Comment **créer un classeur Excel en C#**‑style avec Aspose.Cells. +> * Comment intégrer un smart‑marker qui génère une feuille détaillée pour chaque ligne de données. +> * Comment définir `DetailSheetNewName = DuplicateAllowed` afin que la bibliothèque ajoute automatiquement un suffixe numérique. +> * Comment **enregistrer le classeur au format XLSX** sur le disque sans étapes supplémentaires. + +Aucune documentation externe requise — tout ce dont vous avez besoin est ici. + +--- + +## Prérequis + +Avant de plonger, assurez‑vous d’avoir : + +| Exigence | Pourquoi c'est important | +|----------|--------------------------| +| .NET 6.0 ou version ultérieure (ou .NET Framework 4.7+) | Aspose.Cells 23.x+ cible ces runtimes. | +| Visual Studio 2022 (ou tout IDE C#) | Pour créer facilement le projet et déboguer. | +| Aspose.Cells for .NET package NuGet (`Install-Package Aspose.Cells`) | La bibliothèque qui alimente toute la magie du smart‑marker. | +| Connaissances de base en C# | Vous comprendrez la syntaxe sans cours intensif. | + +Si l’une de ces exigences vous manque, ajoutez‑la dès maintenant — il ne sert à rien de continuer avec un environnement à moitié configuré. + +--- + +## Étape 1 : Créer la feuille maître avec Aspose.Cells + +La première chose que nous faisons est **créer un classeur Excel en C#** en instanciant un objet `Workbook`. Cet objet contient déjà une feuille de calcul par défaut, que nous renommerons en « Master » et utiliserons comme modèle pour toutes les pages détaillées. + +```csharp +using Aspose.Cells; + +// Step 1: Initialise a new workbook – this automatically gives us one sheet +Workbook workbook = new Workbook(); + +// Grab the first (and only) worksheet that comes with a fresh workbook +Worksheet masterSheet = workbook.Worksheets[0]; + +// Give it a meaningful name – this will be our master sheet +masterSheet.Name = "Master"; +``` + +*Pourquoi renommer la feuille ?* +Un nom par défaut comme « Sheet1 » ne reflète pas l’intention, et plus tard, lorsque vous parcourrez le fichier, vous voudrez que l’onglet maître soit immédiatement reconnaissable. Le nommage évite également les collisions accidentelles lorsque vous ajoutez d’autres feuilles. + +--- + +## Étape 2 : Préparer le smart‑marker qui générera les feuilles détaillées + +Les smart‑markers sont des espaces réservés que Aspose.Cells remplace par des données à l’exécution. En plaçant `{{#detail:DataSheetName}}` dans la cellule **A1**, nous indiquons au moteur : « Pour chaque enregistrement de la source de données, créez une nouvelle feuille dont le nom provient du champ `DataSheetName`. » + +```csharp +// Step 2: Insert a smart‑marker into cell A1. +// The marker #detail tells Aspose.Cells to generate a new sheet per data row. +masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); +``` + +Considérez le marqueur comme une petite carte d’instructions collée sur la feuille de calcul. Lorsque le processeur s’exécute, il lit la carte, récupère la valeur appropriée dans la source de données, puis clone la feuille maître dans un nouvel onglet. + +--- + +## Étape 3 : Construire la source de données – noms de feuilles en double intentionnellement + +Dans la réalité, vous pourriez extraire ces données d’une base, mais pour la démo nous utiliserons un tableau en mémoire d’objets anonymes. Remarquez que les deux éléments utilisent le même nom de base `"Detail"` ; c’est le scénario où **autoriser les noms de feuilles en double** devient crucial. + +```csharp +// Step 3: Create a data source with two items that share the same base sheet name. +var dataSource = new[] +{ + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } +}; +``` + +Si vous essayiez cela sans options spéciales, Aspose.Cells lèverait une exception lors de la deuxième itération parce qu’une feuille nommée « Detail » existe déjà. C’est pourquoi l’étape suivante est importante. + +--- + +## Étape 4 : Activer les noms de feuilles en double + +Aspose.Cells expose `SmartMarkerOptions.DetailSheetNewName`. Le définir sur `DetailSheetNewName.DuplicateAllowed` indique au moteur d’ajouter automatiquement un suffixe numérique (par ex., « Detail_1 ») chaque fois qu’un conflit de nom survient. + +```csharp +// Step 4: Configure SmartMarker options to permit duplicate sheet names. +var smartMarkerOptions = new SmartMarkerOptions +{ + // This makes the library rename clashes to "Detail_1", "Detail_2", etc. + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed +}; +``` + +*Pourquoi ne pas simplement donner à chaque ligne un nom unique manuellement ?* +Parce que la source de données ne garantit souvent pas l’unicité, surtout lorsque les utilisateurs saisissent du texte libre. Laisser la bibliothèque gérer le suffixe élimine toute une classe de bugs. + +--- + +## Étape 5 : Traiter les smart‑markers et générer les feuilles détaillées + +Nous appelons maintenant `SmartMarkers.Process`, en passant à la fois la source de données et les options que nous venons de configurer. La méthode parcourt chaque élément, clone la feuille maître et renomme le clone selon le champ `DataSheetName` (plus un suffixe si nécessaire). + +```csharp +// Step 5: Run the smart‑marker processor – this creates the detail sheets. +masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); +``` + +Après l’exécution de cette ligne, vous disposerez de trois onglets dans le classeur : + +1. **Master** – le modèle original. +2. **Detail** – première feuille générée (pas de suffixe nécessaire). +3. **Detail_1** – deuxième feuille générée (suffixe ajouté automatiquement). + +Vous pouvez vérifier cela en ouvrant le fichier dans Excel ; vous verrez les deux feuilles détaillées côte à côte. + +--- + +## Étape 6 : Enregistrer le classeur au format XLSX + +Enfin, nous persistons le fichier sur le disque. La méthode `Save` choisit automatiquement le format XLSX lorsque vous lui fournissez une extension `.xlsx`. + +```csharp +// Step 6: Persist the workbook – this is the moment we finally “save workbook as XLSX”. +string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; +workbook.Save(outputPath); +``` + +**Astuce pro :** Si vous devez diffuser le fichier directement dans une réponse web (par ex., ASP.NET Core), utilisez `workbook.Save(stream, SaveFormat.Xlsx)` au lieu d’un chemin de fichier. + +--- + +## Exemple complet fonctionnel + +Voici le programme complet, prêt à être exécuté. Copiez‑collez‑le dans une application console, appuyez sur F5, puis ouvrez le fichier généré pour voir le résultat. + +```csharp +using System; +using Aspose.Cells; + +namespace MasterSheetDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook and rename the default sheet to "Master" + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert a smart‑marker that will generate a detail sheet per data row + masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); + + // 3️⃣ Prepare a data source where two rows share the same sheet name + var dataSource = new[] + { + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } + }; + + // 4️⃣ Allow duplicate sheet names – the library will add "_1", "_2", … + var smartMarkerOptions = new SmartMarkerOptions + { + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed + }; + + // 5️⃣ Process the smart‑markers; this creates the detail sheets + masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); + + // 6️⃣ Save the workbook as an XLSX file + string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Résultat attendu :** Ouvrez `DuplicateDetailSheets.xlsx` et vous verrez trois feuilles de calcul — `Master`, `Detail` et `Detail_1`. Chaque feuille détaillée est une copie exacte du maître, prête à être remplie avec les données spécifiques à chaque ligne plus tard. + +--- + +## Questions fréquentes & cas particuliers + +### Et si j’ai besoin de plus de deux feuilles en double ? + +Pas de problème. Le même paramètre `DuplicateAllowed` continuera d’ajouter des nombres incrémentiels (`Detail_2`, `Detail_3`, …) jusqu’à ce que chaque ligne possède son propre onglet. + +### Puis‑je personnaliser le format du suffixe ? + +Par défaut, Aspose.Cells utilise un souligné suivi d’un indice numérique. Si vous avez besoin d’un autre motif (par ex., « Detail‑A », « Detail‑B »), vous devrez post‑traiter le classeur après l’exécution de `Process`, en parcourant `workbook.Worksheets` et en renommant selon vos besoins. + +### Cette approche fonctionne‑t‑elle avec de grands ensembles de données (des centaines de lignes) ? + +Oui, mais surveillez l’utilisation de la mémoire. Chaque feuille générée est une copie complète du maître, donc un très grand nombre de lignes peut rapidement augmenter la taille du fichier. Si vous n’avez besoin que de quelques lignes par feuille, pensez à utiliser `SmartMarkerOptions.RemoveEmptyRows = true` pour éliminer les cellules superflues. + +### Le fichier généré est‑il réellement un fichier XLSX ? + +Absolument. La méthode `Save` écrit le package Open XML attendu par Excel. Vous pouvez même ouvrir le fichier avec LibreOffice ou Google Sheets sans aucune conversion. + +--- + +## Conseils pour un code prêt pour la production + +| Conseil | Pourquoi c'est important | +|--------|---------------------------| +| **Dispose `Workbook | + +{{< /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/french/net/formulas-functions/_index.md b/cells/french/net/formulas-functions/_index.md index 5f59d9b32b..91aa3c2e4b 100644 --- a/cells/french/net/formulas-functions/_index.md +++ b/cells/french/net/formulas-functions/_index.md @@ -102,6 +102,12 @@ Apprenez à spécifier la langue de vos fichiers Excel avec Aspose.Cells .NET. A ### [Mettre à jour les formules Excel Power Query avec Aspose.Cells .NET](./update-power-query-formulas-aspose-cells-net) Apprenez à mettre à jour par programmation les formules Power Query dans les classeurs Excel avec Aspose.Cells pour .NET. Maîtrisez la gestion des sources de données pour des rapports dynamiques. +### [Comment utiliser WRAPCOLS en C# – Créer un classeur Excel avec les fonctions Wrap](./how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/) +Apprenez à utiliser la fonction WRAPCOLS en C# pour créer des classeurs Excel avec des colonnes enveloppées automatiquement. + +### [Créer un classeur Excel C# – Guide Lambda, SEQUENCE et EXPAND](./create-excel-workbook-c-lambda-sequence-expand-guide/) +Apprenez à créer un classeur Excel en C# en utilisant les fonctions Lambda, SEQUENCE et EXPAND pour des calculs dynamiques. + ## Comprendre les types de formules Excel Les formules Excel se présentent sous différentes formes, chacune avec des caractéristiques uniques qu'Aspose.Cells peut gérer : diff --git a/cells/french/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md b/cells/french/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md new file mode 100644 index 0000000000..3e1ae67086 --- /dev/null +++ b/cells/french/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-30 +description: Créer un classeur Excel en C# avec Aspose.Cells. Apprenez à appliquer + la fonction LAMBDA d’Excel, la fonction SEQUENCE d’Excel, la fonction EXPAND d’Excel, + et à enregistrer le classeur au format xlsx. +draft: false +keywords: +- create excel workbook c# +- lambda function excel +- save workbook as xlsx +- sequence function excel +- expand array excel +language: fr +og_description: Créez rapidement un classeur Excel en C#. Ce guide montre comment + utiliser la fonction lambda Excel, la fonction séquence Excel, la fonction d'expansion + de tableau Excel, et enregistrer le classeur au format xlsx. +og_title: Créer un classeur Excel en C# – Guide Lambda, SEQUENCE et EXPAND +tags: +- Aspose.Cells +- C# +- Excel automation +title: Créer un classeur Excel en C# – Guide Lambda, SEQUENCE et EXPAND +url: /fr/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Créer un classeur Excel C# – Guide Lambda, SEQUENCE & EXPAND + +Vous avez déjà eu besoin de **créer un classeur Excel C#** pour un rapport automatisé, mais vous ne saviez pas quelles appels d’API utiliser ? Vous n’êtes pas seul — de nombreux développeurs rencontrent le même obstacle lorsqu’ils s’initient à la génération programmatique d’Excel. Dans ce guide, vous verrez un exemple complet et exécutable qui couvre tout, de la nouvelle **fonction SEQUENCE Excel** à la puissante **fonction LAMBDA Excel**, en passant par la façon d’**étendre les résultats de tableau Excel**. + +Nous vous montrerons également les étapes exactes pour **enregistrer le classeur au format xlsx** afin que vous puissiez remettre le fichier à quiconque utilise Excel. À la fin de ce tutoriel, vous disposerez d’un extrait de code solide, prêt pour la production, que vous pourrez intégrer à n’importe quel projet .NET. Pas de liens vagues « voir la documentation » — juste du code qui fonctionne dès aujourd’hui. + +## Ce dont vous avez besoin + +- **.NET 6.0 ou version ultérieure** – l’exemple cible .NET 6, mais toute version récente fonctionne. +- **Aspose.Cells for .NET** – installez via NuGet (`Install-Package Aspose.Cells`). +- Une compréhension de base de la syntaxe C# (variables, objets et expressions lambda). +- Un IDE avec lequel vous êtes à l’aise (Visual Studio, Rider ou VS Code). + +C’est tout. Aucun interop COM supplémentaire, aucun Office installé sur le serveur — Aspose.Cells gère tout en mémoire. + +## Créer un classeur Excel C# – Implémentation pas à pas + +Ci‑dessous, nous découpons le processus en étapes faciles à digérer. Chaque étape possède un titre clair, un court extrait de code et une explication du **pourquoi**. N’hésitez pas à copier le bloc complet à la fin et à l’exécuter comme application console. + +### Étape 1 – Initialiser un nouveau classeur + +Tout d’abord : nous avons besoin d’un objet classeur vierge qui représente le fichier Excel en mémoire. + +```csharp +using Aspose.Cells; + +// Step 1: Create a new workbook and get the first worksheet +Workbook workbook = new Workbook(); // empty workbook +Worksheet sheet = workbook.Worksheets[0]; // default first sheet +``` + +*Pourquoi c’est important :* `Workbook` est le point d’entrée pour toutes les opérations Aspose.Cells. En récupérant le premier `Worksheet`, nous obtenons une toile où nous pouvons écrire des formules, des valeurs ou appliquer du formatage. + +> **Astuce :** Si vous avez besoin de plusieurs feuilles, appelez simplement `workbook.Worksheets.Add()` et conservez une référence à chacune. + +### Étape 2 – Utiliser la fonction SEQUENCE Excel pour générer des données + +La **fonction SEQUENCE Excel** crée un tableau dynamique de nombres sans aucun VBA. Nous la placerons dans la cellule `A1` et laisserons Excel l’étendre automatiquement. + +```csharp +// Step 2: Generate a 5‑row, 1‑column array from a SEQUENCE +sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; // 1..3 padded with blanks +``` + +*Pourquoi c’est important :* `SEQUENCE(3)` renvoie `[1,2,3]`. L’envelopper avec `EXPAND` force le résultat dans une plage de 5 lignes, remplissant les lignes supplémentaires avec des cellules vides. Cela montre à la fois la **fonction SEQUENCE Excel** et **l’expansion de tableau Excel** en une seule fois. + +### Étape 3 – Agréger les nombres avec la fonction LAMBDA Excel + +Passons maintenant à la capacité de la **fonction LAMBDA Excel**. Nous additionnerons les nombres 1‑5 en utilisant la nouvelle fonction `REDUCE`, qui s’appuie en interne sur une lambda. + +```csharp +// Step 3: Aggregate a sequence (sum 1..5) using REDUCE/LAMBDA +sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; // result = 15 +``` + +*Pourquoi c’est important :* `REDUCE` parcourt le tableau produit par `SEQUENCE(5)`, en transmettant chaque élément (`b`) à la lambda avec l’accumulateur (`a`). La lambda `a+b` les additionne, laissant `15` dans `B1`. C’est une façon propre, uniquement avec des formules, d’effectuer des réductions sans boucle en C#. + +### Étape 4 – Appliquer des fonctions trigonométriques directement dans les cellules + +Les fonctions mathématiques intégrées d’Excel sont pratiques pour des calculs rapides. Nous placerons une cotangente et une cotangente hyperbolique dans des cellules adjacentes. + +```csharp +// Step 4: Trigonometric functions directly in Excel cells +sheet["C1"].Formula = "COT(PI()/4)"; // evaluates to 1 +sheet["D1"].Formula = "COTH(1)"; // hyperbolic cotangent of 1 +``` + +*Pourquoi c’est important :* Cela montre que vous pouvez mélanger les fonctions mathématiques classiques avec les nouvelles formules à tableau dynamique. Aucun besoin de calculer ces valeurs en C# sauf si vous avez une raison de performance précise. + +### Étape 5 – Calculer toutes les formules + +Aspose.Cells n’évalue pas automatiquement les formules lorsqu’on les définit. Vous devez lui demander de les calculer. + +```csharp +// Step 5: Force calculation so that cells store the results +workbook.CalculateFormula(); +``` + +*Pourquoi c’est important :* Après cet appel, la propriété `Value` de chaque cellule contient le résultat évalué, prêt à être enregistré ou relu. + +### Étape 6 – Enregistrer le classeur au format Xlsx + +Enfin, nous persistons le classeur sur le disque en utilisant le modèle **enregistrer le classeur au format xlsx**. + +```csharp +// Step 6: Save the workbook to an Excel file (XLSX format) +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + +workbook.Save(outputPath); +Console.WriteLine($"Workbook saved to: {outputPath}"); +``` + +*Pourquoi c’est important :* La méthode `Save` détecte automatiquement l’extension du fichier. En utilisant « .xlsx », nous nous assurons que le fichier est compatible avec les versions modernes d’Excel. Le chemin pointe vers le bureau pour un accès facile lors des tests. + +### Exemple complet fonctionnel + +Voici le programme complet que vous pouvez coller dans un nouveau projet console. Il inclut toutes les étapes ci‑dessus, ainsi qu’un petit bloc de vérification qui affiche les valeurs calculées dans la console. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialize workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + + // SEQUENCE + EXPAND + sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; + + // REDUCE with LAMBDA + sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; + + // Trig functions + sheet["C1"].Formula = "COT(PI()/4)"; + sheet["D1"].Formula = "COTH(1)"; + + // Calculate formulas + workbook.CalculateFormula(); + + // Verify results (optional) + Console.WriteLine("A1‑A5 (expanded SEQUENCE):"); + for (int i = 0; i < 5; i++) + { + Console.WriteLine($" Row {i + 1}: {sheet.Cells[i, 0].Value ?? "blank"}"); + } + Console.WriteLine($"B1 (sum 1‑5): {sheet["B1"].Value}"); + Console.WriteLine($"C1 (cot(π/4)): {sheet["C1"].Value}"); + Console.WriteLine($"D1 (coth(1)): {sheet["D1"].Value}"); + + // Save workbook + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + workbook.Save(outputPath); + Console.WriteLine($"Workbook saved to: {outputPath}"); + } +} +``` + +**Sortie attendue dans la console** + +``` +A1‑A5 (expanded SEQUENCE): + Row 1: 1 + Row 2: 2 + Row 3: 3 + Row 4: blank + Row 5: blank +B1 (sum 1‑5): 15 +C1 (cot(π/4)): 1 +D1 (coth(1)): 1.31303528549933 +Workbook saved to: C:\Users\YourName\Desktop\NewFunctions.xlsx +``` + +Et lorsque vous ouvrez *NewFunctions.xlsx*, vous verrez les mêmes nombres disposés dans les quatre premières colonnes. + +![créer classeur excel c# capture d’écran du tableau résultant](/images/create-excel-workbook-csharp.png) + +## Cas limites, astuces et questions fréquentes + +- **Et si j’ai besoin de plus d’une feuille ?** + Appelez simplement `workbook.Worksheets.Add()` et répétez les affectations de formules sur chaque nouvel objet `Worksheet`. + +- **Puis‑je utiliser des versions plus anciennes d’Excel ?** + Les fonctions à tableau dynamique (`SEQUENCE`, `EXPAND`, `REDUCE`) nécessitent Excel 365 ou Excel 2021+. Si vous ciblez des versions plus anciennes, utilisez les formules classiques ou calculez les valeurs en C# avant de les écrire. + +- **Problèmes de performance ?** + Pour des milliers de lignes, définir des formules sur une plage puis appeler `CalculateFormula` est généralement plus rapide que de boucler et d’assigner les valeurs une par une. + +- **Enregistrer dans un flux au lieu d’un fichier ?** + `work + +{{< /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/french/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md b/cells/french/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md new file mode 100644 index 0000000000..7333c2eb27 --- /dev/null +++ b/cells/french/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-30 +description: Apprenez à utiliser WRAPCOLS en C# pour créer un classeur Excel, ajouter + des données à Excel et forcer le calcul des formules tout en utilisant également + WRAPROWS. +draft: false +keywords: +- how to use wrapcols +- create excel workbook c# +- add data to excel +- force formula calculation +- how to use wraprows +language: fr +og_description: Découvrez comment utiliser WRAPCOLS en C# pour créer un classeur Excel, + ajouter des données, forcer le calcul des formules et exploiter WRAPROWS pour les + formules matricielles. +og_title: Comment utiliser WRAPCOLS en C# – Guide complet +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Comment utiliser WRAPCOLS en C# – Créer un classeur Excel avec les fonctions + d’enveloppement +url: /fr/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Comment utiliser WRAPCOLS en C# – Créer un classeur Excel avec les fonctions Wrap + +Vous vous êtes déjà demandé **comment utiliser WRAPCOLS** lorsque vous automatisez Excel avec C# ? Vous n'êtes pas seul—de nombreux développeurs se heurtent à un mur lorsqu'ils doivent transformer une plage horizontale en tableau vertical sans écrire des tonnes de code. La bonne nouvelle, c’est qu’Aspose.Cells rend cela très simple. + +Dans ce tutoriel, nous passerons en revue un exemple complet et exécutable qui montre **comment utiliser WRAPCOLS**, comment **créer un classeur Excel en C#**, comment **ajouter des données à Excel**, et même comment **forcer le calcul des formules** afin que les résultats apparaissent immédiatement. Nous ajouterons également **comment utiliser WRAPROWS** pour la transformation inverse. À la fin, vous disposerez d’un programme prêt à l’exécution et d’une compréhension claire de l’importance de chaque étape. + +--- + +![How to use WRAPCOLS in C# example](alt="Screenshot showing Excel workbook after using WRAPCOLS in C#") + +## Ce que couvre ce guide + +* Configurer un nouveau classeur avec Aspose.Cells. +* Remplir les cellules par programme (**add data to Excel**). +* Appliquer la fonction `WRAPCOLS` pour transformer une ligne en colonne. +* Utiliser `WRAPROWS` pour transformer une colonne en ligne (**how to use wraprows**). +* Forcer le moteur à évaluer les formules immédiatement (**force formula calculation**). +* Enregistrer le fichier et vérifier la sortie. + +Aucune documentation externe requise—tout ce dont vous avez besoin se trouve ici. + +--- + +## Comment utiliser WRAPCOLS en C# – Implémentation étape par étape + +Voici le fichier source complet. N'hésitez pas à le copier‑coller dans un nouveau projet console, ajouter le package NuGet Aspose.Cells, et appuyer sur **F5**. + +```csharp +// ------------------------------------------------------------ +// How to Use WRAPCOLS in C# – Complete Example +// ------------------------------------------------------------ +using System; +using Aspose.Cells; + +namespace WrapFunctionsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a fresh workbook (this is how we **create excel workbook c#** style) + Workbook workbook = new Workbook(); + + // 2️⃣ Grab the first worksheet – it's created by default + Worksheet sheet = workbook.Worksheets[0]; + + // 3️⃣ **Add data to Excel**: place two numbers side‑by‑side + sheet.Cells["A1"].PutValue(1); // first value + sheet.Cells["B1"].PutValue(2); // second value + + // 4️⃣ **How to use WRAPCOLS** – turn the horizontal range A1:B1 into a vertical array + // The second argument (1) tells WRAPCOLS to create 1 column per element. + sheet["C1"].Formula = "WRAPCOLS(A1:B1, 1)"; + + // 5️⃣ **How to use WRAPROWS** – the opposite; turn the same range into a horizontal array + // Here we ask for 2 rows per element, which produces a single row with both values. + sheet["C2"].Formula = "WRAPROWS(A1:B1, 2)"; + + // 6️⃣ **Force formula calculation** so the workbook reflects the results immediately + workbook.CalculateFormula(); + + // 7️⃣ Save the workbook to disk – change the path to a folder you own + string outputPath = @"WrapFunctions.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + Console.WriteLine("Check cells C1 and C2 for the WRAPCOLS / WRAPROWS results."); + } + } +} +``` + +### Pourquoi chaque ligne est importante + +| Étape | Explication | +|------|-------------| +| **1️⃣ Créer un nouveau classeur** | C’est la base. Aspose.Cells considère un objet `Workbook` comme l’ensemble du fichier Excel, vous **créez ainsi un classeur Excel en style C#**. | +| **2️⃣ Récupérer la première feuille de calcul** | Un nouveau classeur contient toujours au moins une feuille (`Worksheets[0]`). Y accéder dès le début évite les surprises de référence nulle. | +| **3️⃣ Add data to Excel** | En utilisant `PutValue`, nous **add data to Excel** sans se soucier du format des cellules. Les nombres `1` et `2` sont nos données de test pour les fonctions de wrap. | +| **4️⃣ Comment utiliser WRAPCOLS** | `WRAPCOLS(A1:B1, 1)` indique à Excel de prendre la plage `A1:B1` et de déverser ses valeurs verticalement, une par ligne. Le résultat se place en `C1` et se propage vers le bas (`C1`, `C2`, …). | +| **5️⃣ Comment utiliser WRAPROWS** | `WRAPROWS(A1:B1, 2)` fait l’inverse : il crée un déversement horizontal, plaçant les deux valeurs dans une seule ligne à partir de `C2`. | +| **6️⃣ Forcer le calcul des formules** | Par défaut, Aspose.Cells peut différer le calcul jusqu’à l’ouverture du fichier dans Excel. Appeler `CalculateFormula()` **force le calcul des formules** afin que vous puissiez lire les résultats immédiatement après l’enregistrement. | +| **7️⃣ Enregistrer le classeur** | L’étape finale écrit tout sur le disque. Ouvrez le fichier `WrapFunctions.xlsx` généré pour voir le résultat. | + +--- + +## Créer un classeur Excel en C# – Configuration de l’environnement + +Avant d’exécuter le code, assurez‑vous de disposer des bons outils : + +1. **.NET 6.0+** – La dernière version LTS fonctionne le mieux. +2. **Visual Studio 2022** (ou VS Code avec l’extension C#). +3. **Aspose.Cells for .NET** – Installez via NuGet : + ```bash + dotnet add package Aspose.Cells + ``` +4. Un dossier accessible en écriture pour le fichier de sortie. + +Ces prérequis sont minimes ; aucune interop COM ni installation d’Office n’est requise, ce qui fait d’Aspose.Cells un choix populaire pour la génération d’Excel côté serveur. + +--- + +## Ajouter des données à Excel – Bonnes pratiques + +Lorsque vous **add data to Excel** par programme, considérez ces conseils : + +* **Utilisez `PutValue`** pour les nombres bruts ou les chaînes ; il détecte automatiquement le type de données. +* **Évitez de coder en dur les adresses de cellules** dans les grands projets — utilisez des boucles ou des plages nommées pour l’évolutivité. +* **Appliquez les styles de cellule avec parcimonie** ; chaque changement de style engendre une surcharge. Si vous avez besoin de mise en forme, créez un seul objet style et appliquez‑le à plusieurs cellules. + +Dans notre petit exemple, nous n’insérons que deux nombres, mais le même schéma s’étend à des milliers de lignes. + +--- + +## Comment utiliser WRAPROWS – Exemple de tableau horizontal + +Si vous avez besoin de l’inverse de `WRAPCOLS`, `WRAPROWS` est votre solution. La syntaxe est : + +``` +WRAPROWS(source_range, [rows_per_item]) +``` + +* `source_range` – la plage que vous souhaitez transformer. +* `rows_per_item` – optionnel ; indique à Excel combien de lignes chaque élément occupe. Dans notre démonstration, nous avons utilisé `2` pour forcer les deux valeurs sur une seule ligne. + +Vous pouvez expérimenter en modifiant le deuxième argument : + +```csharp +// Example: split each value into its own column, three rows per item +sheet["D1"].Formula = "WRAPROWS(A1:B1, 3)"; +``` + +Ouvrez le classeur et vous verrez les valeurs se répandre sur trois colonnes, chaque colonne contenant les nombres originaux répétés selon les besoins. + +--- + +## Forcer le calcul des formules – Quand et pourquoi + +Vous pourriez vous demander, « Dois‑je vraiment appeler `CalculateFormula()` ? » La réponse est **oui**, si : + +* Vous prévoyez de lire les valeurs calculées **par programme** après l’enregistrement. +* Vous voulez garantir que le fichier s’ouvre dans Excel avec les résultats corrects déjà affichés. +* Vous exécutez dans un **environnement sans interface** (par ex., une API web) où aucun utilisateur ne déclenchera manuellement un recalcul. + +Ignorer cette étape ne cassera pas le classeur, mais les cellules afficheront le texte de la formule (`=WRAPCOLS(...)`) au lieu des valeurs calculées jusqu’à ce qu’Excel recalcule. + +--- + +## Résultat attendu – Ce qu’il faut rechercher + +Après avoir exécuté le programme et ouvert `WrapFunctions.xlsx` : + +| Cellule | Formule | Valeur affichée | +|---------|---------|-----------------| +| **C1** | `=WRAPCOLS(A1:B1, 1)` | `1` (dans C1) et `2` (dans C2) – une liste verticale | +| **C2** | `=WRAPROWS(A1:B1, 2)` | `1` dans C2 et `2` dans D2 – une liste horizontale | + +Vous verrez donc une colonne de valeurs commençant à **C1** et une ligne de valeurs commençant à **C2**. Cela confirme que les deux fonctions wrap se sont comportées comme prévu. + +--- + +## Cas limites et variations + +| Scénario | Qu’est‑ce qui change ? | Ajustement suggéré | +|----------|------------------------|--------------------| +| **Large range (A1:Z1)** | Plus de valeurs à déverser verticalement | Augmentez le deuxième argument de `WRAPCOLS` si vous voulez plusieurs colonnes par groupe. | +| **Non‑numeric data** | Les chaînes sont traitées de la même façon | Pas de changement de code ; `PutValue` accepte tout objet. | +| **Dynamic range** | Vous ne connaissez pas la taille à la compilation | Utilisez `sheet.Cells.MaxDataColumn` et `MaxDataRow` pour construire la chaîne d’adresse. | +| **Multiple worksheets** | Besoin d’appliquer les fonctions wrap sur différentes feuilles | Référencez la bonne feuille (`workbook.Worksheets["Sheet2"]`). | + +--- + +## Astuces pro du terrain + +* **Astuce pro :** Enveloppez la création du classeur dans un bloc `using` si vous ciblez .NET Core 3.1+ afin de garantir que toutes les ressources soient libérées rapidement. +* **Attention :** Appliquer la même formule sur une grande plage sans appeler `CalculateFormula()` peut entraîner des goulets d’étranglement de performance. Traitez les formules par lots lorsque c’est possible. +* **Tip:** If you need to read back the calculated values in code, call ` + +{{< /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/french/net/tables-and-lists/_index.md b/cells/french/net/tables-and-lists/_index.md index 31c64d3940..b3439fe8ea 100644 --- a/cells/french/net/tables-and-lists/_index.md +++ b/cells/french/net/tables-and-lists/_index.md @@ -51,6 +51,8 @@ Convertissez facilement des tableaux en plages dans Excel grâce à Aspose.Cells Exploitez toute la puissance d'Aspose.Cells pour .NET. Apprenez à lire et écrire des tables avec des sources de données de requête grâce à ce guide détaillé étape par étape. ### [Définir un commentaire sur un tableau ou une liste dans Excel](./setting-comment-of-table-or-list/) Apprenez à définir des commentaires pour les tableaux dans Excel à l’aide d’Aspose.Cells pour .NET avec notre guide étape par étape simple. +### [Créer un tableau à partir d'une plage en C# – Tutoriel complet Aspose.Cells](./create-table-from-range-in-c-complete-aspose-cells-tutorial/) +Apprenez à créer un tableau Excel à partir d'une plage de cellules en C# avec Aspose.Cells, étape par étape. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/french/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md b/cells/french/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md new file mode 100644 index 0000000000..4aeb06220e --- /dev/null +++ b/cells/french/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md @@ -0,0 +1,232 @@ +--- +category: general +date: 2026-03-30 +description: Créer un tableau à partir d’une plage en C# avec Aspose.Cells – ajouter + des données aux cellules, convertir la plage en ListObject et enregistrer le fichier + Excel sans filtre. +draft: false +keywords: +- create table from range +- create excel workbook c# +- add data to cells +- convert range to listobject +- save excel without filter +language: fr +og_description: Créer un tableau à partir d’une plage en C# avec Aspose.Cells. Apprenez + comment ajouter des données aux cellules, convertir une plage en ListObject et enregistrer + le fichier Excel sans filtre. +og_title: Créer un tableau à partir d’une plage en C# – Tutoriel complet Aspose.Cells +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Créer un tableau à partir d’une plage en C# – Tutoriel complet Aspose.Cells +url: /fr/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Créer un tableau à partir d’une plage en C# – Tutoriel complet Aspose.Cells + +Vous avez déjà eu besoin de **créer un tableau à partir d’une plage** en C# mais vous ne saviez pas comment transformer un bloc de données brut en un tableau Excel complet ? Vous n’êtes pas seul. Que vous automatisiez des rapports, génériez des tableaux de bord ou simplement nettoyiez des données pour une analyse ultérieure, maîtriser cette petite astuce peut vous faire économiser beaucoup de travail manuel. + +Dans ce guide, nous parcourrons l’ensemble du processus : **create excel workbook c#**, **add data to cells**, **convert range to ListObject**, et enfin **save excel without filter**. À la fin, vous disposerez d’un extrait prêt à l’emploi que vous pourrez insérer dans n’importe quel projet .NET faisant référence à Aspose.Cells. + +--- + +## Prérequis + +- .NET 6+ (ou .NET Framework 4.7.2+) installé +- Aspose.Cells for .NET (package NuGet `Aspose.Cells`) – la dernière version au moment de la rédaction (23.10) fonctionne parfaitement. +- Une compréhension de base de la syntaxe C# – aucune connaissance approfondie d’Interop Excel requise. + +Si vous avez tout cela, commençons. + +--- + +## Étape 1 : Créer un classeur Excel en C# + +Tout d’abord, nous avons besoin d’un nouvel objet workbook. Pensez‑y comme le fichier Excel vide qui contiendra finalement notre tableau. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is equivalent to opening a blank .xlsx file. +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (default) worksheet. +``` + +> **Astuce :** `Workbook()` sans arguments crée un classeur avec une feuille de calcul par défaut, ce qui est idéal pour les démonstrations rapides. Si vous avez besoin de plusieurs feuilles, vous pouvez les ajouter plus tard avec `workbook.Worksheets.Add()`. + +--- + +## Étape 2 : Ajouter des données aux cellules + +Nous allons maintenant remplir la feuille avec un petit jeu de données : deux colonnes (Name, Score) et trois lignes de valeurs. Cela montre **add data to cells** de façon claire et lisible. + +```csharp +// Header row +worksheet.Cells["A1"].PutValue("Name"); +worksheet.Cells["B1"].PutValue("Score"); + +// Data rows +worksheet.Cells["A2"].PutValue("Alice"); +worksheet.Cells["B2"].PutValue(85); +worksheet.Cells["A3"].PutValue("Bob"); +worksheet.Cells["B3"].PutValue(92); +``` + +Pourquoi utiliser `PutValue` ? Il détecte automatiquement le type de donnée (chaîne vs numérique) et formate la cellule en conséquence, vous évitant de manipuler des objets `Style` pour des scénarios simples. + +> **Résultat attendu :** Après cette étape, si vous ouvrez le classeur dans Excel, vous verrez une grille à deux colonnes avec les en‑têtes « Name » et « Score », suivies de deux lignes de données. + +--- + +## Étape 3 : Convertir la plage en ListObject (Table) + +C’est ici que la magie opère : transformer cette plage brute en un tableau Excel (appelé **ListObject** dans l’API Aspose.Cells). Cela ajoute non seulement un style visuel mais active également des fonctionnalités intégrées comme le tri, le filtrage et les références structurées. + +```csharp +// Define the range boundaries. +// startRow and startColumn are zero‑based indexes. +// rowCount includes the header row. +int startRow = 0; // Row 1 in Excel +int startColumn = 0; // Column A +int rowCount = 3; // Header + 2 data rows +int columnCount = 2; // Two columns: Name & Score + +// Add a ListObject to the worksheet and retrieve the object. +int listIndex = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); +ListObject table = worksheet.ListObjects[listIndex]; + +// Turn on the UI filter dropdowns so users can interact with the table. +table.ShowAutoFilter = true; +``` + +> **Pourquoi utiliser un ListObject ?** +> - **Références structurées** : les formules peuvent se référer aux colonnes par leur nom. +> - **Interface de filtre automatique** : les utilisateurs obtiennent des flèches déroulantes pour un filtrage rapide. +> - **Mise en forme** : vous pouvez appliquer des styles de tableau intégrés en une seule ligne plus tard. + +--- + +## Étape 4 : Supprimer l’interface de filtre automatique (Enregistrer Excel sans filtre) + +Parfois, vous avez besoin d’une feuille propre sans flèches de filtre – par exemple, lorsqu’il s’agit d’un rapport final. Aspose.Cells 23.10 a introduit une façon simple de supprimer complètement l’UI de filtre. + +```csharp +// Remove the filter UI completely. +table.AutoFilter = null; // Clears the underlying filter object. +table.ShowAutoFilter = false; // Hides the dropdown arrows. +``` + +Notez que nous ne supprimons pas les données ; nous désactivons simplement les contrôles visuels de filtre. Cela répond à l’exigence **save excel without filter**. + +--- + +## Étape 5 : Enregistrer le classeur + +Enfin, écrivez le classeur sur le disque. Le fichier contiendra le tableau mais sans aucune UI de filtre. + +```csharp +// Choose a folder you have write access to. +string outputPath = @"C:\Temp\NoAutoFilter.xlsx"; +workbook.Save(outputPath); +``` + +Ouvrez `NoAutoFilter.xlsx` dans Excel – vous verrez le tableau avec le formatage par défaut, mais aucune flèche de filtre. Les données sont intactes et le fichier est prêt à être distribué. + +--- + +![Capture d'écran montrant la création d'un tableau à partir d'une plage dans Excel avec Aspose.Cells](image.png "Capture d'écran de création de tableau à partir d'une plage") + +*Texte alternatif de l'image :* **Capture d'écran montrant la création d'un tableau à partir d'une plage dans Excel avec Aspose.Cells** – preuve visuelle que le tableau existe sans menus déroulants de filtre. + +--- + +## Exemple complet et exécutable + +Voici le programme complet que vous pouvez copier‑coller dans une application console. Il comprend toutes les étapes ci‑dessus, ainsi que quelques commentaires supplémentaires pour plus de clarté. + +```csharp +using System; +using Aspose.Cells; + +namespace AsposeTableDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add data to cells – this is the “add data to cells” part. + worksheet.Cells["A1"].PutValue("Name"); + worksheet.Cells["B1"].PutValue("Score"); + worksheet.Cells["A2"].PutValue("Alice"); + worksheet.Cells["B2"].PutValue(85); + worksheet.Cells["A3"].PutValue("Bob"); + worksheet.Cells["B3"].PutValue(92); + + // 3️⃣ Convert the range into a ListObject (i.e., create table from range). + int startRow = 0, startColumn = 0, rowCount = 3, columnCount = 2; + int listIdx = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); + ListObject table = worksheet.ListObjects[listIdx]; + table.ShowAutoFilter = true; // optional UI filter + + // 4️⃣ Remove the AutoFilter UI – “save excel without filter”. + table.AutoFilter = null; + table.ShowAutoFilter = false; + + // 5️⃣ Save the workbook. + string filePath = @"C:\Temp\NoAutoFilter.xlsx"; + workbook.Save(filePath); + + Console.WriteLine($"Workbook saved to {filePath}"); + } + } +} +``` + +Exécutez le programme, puis ouvrez `C:\Temp\NoAutoFilter.xlsx`. Vous verrez un tableau joliment formaté, sans flèches de filtre, et les données que nous avons saisies. Voilà l’ensemble du flux **create excel workbook c#** en moins de 60 lignes de code. + +--- + +## Questions fréquentes & cas particuliers + +**Q : Que faire si ma plage de données n’est pas contiguë ?** +R : Aspose.Cells nécessite une plage rectangulaire pour `ListObjects.Add`. Si vous avez des données non contiguës, créez d’abord une plage temporaire (par ex., copiez les morceaux dans une nouvelle feuille) puis convertissez cette plage. + +**Q : Puis‑je appliquer un style de tableau personnalisé ?** +R : Absolument. Après avoir créé le `ListObject`, définissez `table.TableStyleType = TableStyleType.TableStyleMedium9;` (ou n’importe lequel des 65 styles intégrés). C’est une bonne façon d’harmoniser le tableau avec votre charte graphique. + +**Q : Comment garder le filtre tout en masquant les flèches ?** +R : La logique du filtre réside dans `table.AutoFilter`. Mettre `ShowAutoFilter = false` masque uniquement l’UI ; le filtre sous‑jacent reste actif. Vous pouvez donc filtrer les lignes par programme ultérieurement. + +**Q : Et pour les gros jeux de données (10 k + lignes) ?** +R : La même API fonctionne, mais pensez à désactiver les calculs automatiques (`workbook.CalcEngine = false`) avant les insertions massives pour améliorer les performances, puis réactivez‑les après. + +--- + +## Conclusion + +Nous venons de couvrir comment **créer un tableau à partir d’une plage** en C# avec Aspose.Cells, étape par étape — de **create excel workbook c#**, en passant par **add data to cells**, jusqu’à **convert range to ListObject**, et enfin **save excel without filter**. Le code est complet, exécutable et prêt pour la production. + +Ensuite, vous pourriez explorer : + +- Ajouter une mise en forme conditionnelle pour mettre en évidence les meilleurs scores. +- Exporter le classeur en PDF avec `workbook.Save("Report.pdf", SaveFormat.Pdf);`. +- Utiliser `table.Columns["Score"].DataBodyRange.Sort` pour trier le tableau par programme. + +N’hésitez pas à expérimenter avec différents jeux de données, styles de tableau ou même plusieurs feuilles de calcul. L’API est suffisamment flexible pour gérer tout, d’un petit tableau de scores à un vaste registre financier. + +Des questions ou un problème ? Laissez un commentaire ci‑dessous ou contactez‑moi sur GitHub. Bon codage, et profitez de la transformation de plages brutes en tableaux Excel raffinés ! + +{{< /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/german/net/conversion-to-pdf/_index.md b/cells/german/net/conversion-to-pdf/_index.md index 8fca2876fb..ae56cd3956 100644 --- a/cells/german/net/conversion-to-pdf/_index.md +++ b/cells/german/net/conversion-to-pdf/_index.md @@ -34,6 +34,8 @@ Aber warten Sie, es gibt noch mehr! Was ist, wenn Sie Diagramme aus Ihren Excel- Konvertieren Sie Excel-Tabellen ganz einfach in PDF mit Aspose.Cells für .NET! Folgen Sie unserer Schritt-für-Schritt-Anleitung für ein nahtloses Erlebnis. ### [Konvertieren Sie Diagramme in .NET in PDF](./convert-chart-to-pdf/) Erfahren Sie in dieser Schritt-für-Schritt-Anleitung, wie Sie Excel-Diagramme mit Aspose.Cells in .NET in PDF konvertieren! Perfekt für Programmierer aller Erfahrungsstufen. +### [Arbeitsmappe als PDF speichern mit Aspose.Cells – Vollständige Schritt‑für‑Schritt‑Anleitung](./save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/) +Erfahren Sie, wie Sie mit Aspose.Cells eine Excel-Arbeitsmappe vollständig und unkompliziert als PDF speichern. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/german/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md b/cells/german/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md new file mode 100644 index 0000000000..28757f03d5 --- /dev/null +++ b/cells/german/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md @@ -0,0 +1,248 @@ +--- +category: general +date: 2026-03-30 +description: Erfahren Sie, wie Sie eine Arbeitsmappe mit Aspose.Cells als PDF speichern. + Dieses Tutorial behandelt außerdem das Exportieren von Arbeitsblättern als PDF, + wie man Excel in PDF exportiert und PDFs aus Arbeitsblättern erstellt. +draft: false +keywords: +- save workbook as pdf +- export worksheet to pdf +- how to export excel to pdf +- save excel as pdf +- create pdf from worksheet +language: de +og_description: Speichern Sie die Arbeitsmappe einfach als PDF. Dieser Leitfaden zeigt, + wie man ein Arbeitsblatt als PDF exportiert, wie man Excel als PDF exportiert und + wie man mit C# ein PDF aus einem Arbeitsblatt erstellt. +og_title: Arbeitsmappe als PDF mit Aspose.Cells speichern – Komplettanleitung +tags: +- Aspose.Cells +- C# +- PDF generation +title: Arbeitsmappe als PDF mit Aspose.Cells speichern – Vollständige Schritt‑für‑Schritt‑Anleitung +url: /de/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Arbeitsmappe als PDF speichern – Vollständige Schritt‑für‑Schritt‑Anleitung + +Haben Sie jemals **save workbook as pdf** benötigt, waren sich aber nicht sicher, welche Bibliothek Ihre Zahlen unverändert lässt? Sie sind nicht allein. In vielen Projekten müssen wir Excel‑Daten in ein gepflegtes PDF umwandeln, und das richtig zu machen spart Stunden an Fehlersuche. + +In diesem Tutorial gehen wir den genauen Code durch, den Sie benötigen, um **save workbook as pdf** mit Aspose.Cells zu realisieren, und zeigen Ihnen dabei, wie Sie **export worksheet to pdf** durchführen, beantworten Fragen zum *how to export excel to pdf* und demonstrieren eine saubere Methode, **create pdf from worksheet** mit benutzerdefinierten Präzisionseinstellungen zu erzeugen. + +Am Ende des Leitfadens haben Sie eine sofort ausführbare C#‑Konsolen‑App, die ein PDF mit nur den signifikanten Stellen erzeugt, die Sie benötigen. Kein unnötiger Schnickschnack, nur eine solide, produktionsreife Lösung. + +--- + +## Was Sie lernen werden + +- Wie man ein neues `Workbook` erstellt und das erste Arbeitsblatt auswählt. +- Die genaue Methode, um **save workbook as pdf** zu **save workbook as pdf**, während die numerische Präzision erhalten bleibt. +- Warum die Eigenschaft `SignificantDigits` wichtig ist, wenn Sie **export worksheet to pdf**. +- Häufige Stolperfallen beim **how to export excel to pdf** und wie man sie vermeidet. +- Schnelle Wege, **save excel as pdf** mit verschiedenen Seitenoptionen zu erledigen und wie man **create pdf from worksheet** programmgesteuert erzeugt. + +### Voraussetzungen + +- .NET 6.0 oder höher (der Code funktioniert auch mit .NET Framework 4.5+). +- Eine gültige Aspose.Cells‑Lizenz (oder eine kostenlose temporäre Lizenz zum Testen). +- Visual Studio 2022 oder eine beliebige C#‑kompatible IDE. + +Wenn Sie diese Grundlagen abgedeckt haben, legen wir los. + +--- + +## Schritt 1 – Aspose.Cells installieren und das Workbook initialisieren + +Zuerst benötigen Sie das Aspose.Cells‑NuGet‑Paket. Öffnen Sie ein Terminal im Projektordner und führen Sie aus: + +```bash +dotnet add package Aspose.Cells +``` + +Nachdem das Paket installiert ist, erstellen Sie ein neues `Workbook`‑Objekt. Dieses Objekt werden Sie schließlich **save workbook as pdf**. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialise a fresh workbook – think of it as a blank Excel file. + Workbook workbook = new Workbook(); + + // Grab the first worksheet (index 0). This is where we’ll put our data. + Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Warum dieser Schritt?* +Das Erstellen des Workbooks gibt Ihnen eine leere Leinwand, und die Auswahl des ersten Arbeitsblatts stellt sicher, dass Sie an einer bekannten Position arbeiten. Das Überspringen kann zu *null reference*‑Fehlern führen, wenn Sie später **export worksheet to pdf** versuchen. + +--- + +## Schritt 2 – Hochpräzise Daten einfügen + +Jetzt fügen wir eine Zahl ein, die mehr Dezimalstellen hat, als wir im PDF anzeigen wollen. Das demonstriert, wie die Einstellung `SignificantDigits` die Ausgabe kürzt. + +```csharp + // Place a high‑precision number in cell A1. + worksheet.Cells["A1"].PutValue(1234.56789); +``` + +Wenn Sie das Programm jetzt ausführen und einfach `workbook.Save("output.pdf")` aufrufen, zeigt das PDF die volle `1234.56789`. Das ist für manche Fälle in Ordnung, aber häufig muss man auf eine bestimmte Anzahl signifikanter Stellen runden – besonders bei Finanzberichten. + +--- + +## Schritt 3 – PDF‑Speicheroptionen konfigurieren + +Aspose.Cells bietet feinkörnige Kontrolle über `PdfSaveOptions`. Die für uns relevante Eigenschaft ist `SignificantDigits`. Auf `4` gesetzt, weist sie die Engine an, beim **save workbook as pdf** nur vier signifikante Stellen zu behalten. + +```csharp + // Configure PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 // This trims the number to 1235 in the PDF. + }; +``` + +*Warum `SignificantDigits` verwenden?* +Wenn Sie **create pdf from worksheet** erzeugen, müssen Sie häufig regulatorische Rundungsregeln einhalten. Diese Option übernimmt das Runden für Sie, sodass Sie jede Zelle nicht manuell formatieren müssen. + +--- + +## Schritt 4 – Arbeitsblatt mit den Optionen als PDF exportieren + +Jetzt kommt der entscheidende Moment: Wir **save workbook as pdf** tatsächlich mit den zuvor definierten Optionen. + +```csharp + // Save the workbook as a PDF using the configured options. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + } +} +``` + +Beim Ausführen des Programms wird eine Datei namens `SignificantDigits.pdf` im Ausgabeordner Ihres Projekts erzeugt. Öffnen Sie sie und Sie sehen `1235` in Zelle A1 – die Zahl wurde auf vier signifikante Stellen gerundet. + +*Wichtiger Hinweis:* Die `Save`‑Methode nimmt sowohl den Dateipfad als auch die `PdfSaveOptions` entgegen. Wenn Sie die Optionen weglassen, fällt das Verhalten auf die Standardeinstellungen zurück, die Ihre Präzisionsanforderungen möglicherweise nicht erfüllen. + +--- + +## Schritt 5 – Ausgabe überprüfen und häufige Probleme beheben + +### Erwartetes Ergebnis + +- Ein einseitiges PDF mit dem Namen `SignificantDigits.pdf`. +- Zelle A1 zeigt `1235` (vier signifikante Stellen). +- Keine zusätzlichen Arbeitsblätter oder versteckten Inhalte erscheinen. + +### Häufig gestellte Fragen + +| Frage | Antwort | +|----------|--------| +| **Was, wenn ich mehr als ein Arbeitsblatt brauche?** | Durchlaufen Sie `workbook.Worksheets` und wenden Sie dieselben `PdfSaveOptions` an, wenn Sie jedes Blatt einzeln speichern, oder setzen Sie `OnePagePerSheet = true` in den Optionen. | +| **Kann ich das ursprüngliche Zahlenformat beibehalten?** | Ja – setzen Sie `PdfSaveOptions.AllColumnsInOnePage = true` und lassen Sie die Excel‑Formatierungsregeln arbeiten, aber bedenken Sie, dass `SignificantDigits` die numerische Präzision weiterhin überschreibt. | +| **Funktioniert das mit bereits vorhandenen .xlsx‑Dateien?** | Absolut. Ersetzen Sie `new Workbook()` durch `new Workbook("input.xlsx")` und der Rest des Codes bleibt unverändert. | +| **Was, wenn das PDF leer ist?** | Prüfen Sie, ob das Workbook tatsächlich Daten enthält und ob Sie in ein beschreibbares Verzeichnis speichern. Stellen Sie außerdem sicher, dass die Aspose.Cells‑Lizenz korrekt angewendet wurde; eine nicht lizenzierte Testversion kann die Ausgabe einschränken. | + +### Profi‑Tipp + +Wenn Sie **save excel as pdf** mit einer bestimmten Seitenausrichtung benötigen, setzen Sie `pdfSaveOptions.PageSetup.Orientation = PageOrientation.Landscape;` bevor Sie `Save` aufrufen. Diese kleine Anpassung erspart Ihnen häufig nachträgliche Änderungen am PDF. + +--- + +## Varianten: Mehrere Blätter exportieren oder benutzerdefinierte Seiteneinstellungen + +### Alle Blätter in einem Aufruf exportieren + +```csharp +PdfSaveOptions allSheetsOptions = new PdfSaveOptions +{ + SignificantDigits = 4, + OnePagePerSheet = true // Each worksheet gets its own page. +}; + +workbook.Save("AllSheets.pdf", allSheetsOptions); +``` + +### Ein einzelnes Blatt als PDF exportieren + +Wenn Sie nur **export worksheet to pdf** für ein bestimmtes Blatt benötigen, verwenden Sie die `ToPdf`‑Methode des `Worksheet`‑Objekts: + +```csharp +Worksheet sheet = workbook.Worksheets["Sheet2"]; +sheet.ToPdf("Sheet2.pdf", pdfSaveOptions); +``` + +### Seitenränder anpassen + +```csharp +pdfSaveOptions.PageSetup.TopMargin = 20; +pdfSaveOptions.PageSetup.BottomMargin = 20; +``` + +Diese Anpassungen ermöglichen es Ihnen, das Enddokument fein abzustimmen, ohne nachträglich zu bearbeiten. + +--- + +## Vollständiges Beispiel + +Unten finden Sie das komplette, copy‑and‑paste‑bereite Programm, das alles enthält, was wir besprochen haben. Speichern Sie es als `Program.cs` und führen Sie `dotnet run` aus. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and select the first worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Insert a high‑precision number. + worksheet.Cells["A1"].PutValue(1234.56789); + + // 3️⃣ Set PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 + }; + + // 4️⃣ Save the workbook as PDF. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + + // Optional: Export another sheet with custom settings. + // Worksheet sheet2 = workbook.Worksheets.Add("Report"); + // sheet2.Cells["B2"].PutValue(9876.54321); + // sheet2.ToPdf("Report.pdf", pdfSaveOptions); + } +} +``` + +**Ergebnis:** Öffnen Sie `SignificantDigits.pdf` – Sie sehen den gerundeten Wert `1235`. Die Dateigröße ist gering und das Layout entspricht dem ursprünglichen Excel‑Blatt. + +--- + +## Fazit + +Wir haben Ihnen gezeigt, wie Sie **save workbook as pdf** mit Aspose.Cells durchführen, von der Grundkonfiguration bis zu erweiterten Optionen wie **export worksheet to pdf**, **how to export excel to pdf** und **create pdf from worksheet** mit präziser Zahlenkontrolle. + +Der Ansatz ist unkompliziert, erfordert nur wenige Zeilen C# und funktioniert über .NET‑Versionen hinweg. Als Nächstes könnten Sie Kopf‑/Fußzeilen hinzufügen, Bilder einbetten oder PDFs aus Vorlagen generieren – alles baut auf dem Fundament auf, das Sie jetzt besitzen. + +Haben Sie eine Idee, die Sie ausprobieren möchten? Vielleicht möchten Sie das PDF mit einem Passwort schützen oder mehrere PDFs zusammenführen. Das sind natürliche Erweiterungen, und die Aspose.Cells‑API hat Sie dabei im Rücken. Legen Sie los, experimentieren Sie und lassen Sie die Bibliothek die schwere Arbeit übernehmen. + +--- + +![save workbook as pdf screenshot](/images/save-workbook-as-pdf.png){alt="save workbook as pdf Beispiel, das die erzeugte PDF-Datei zeigt"} + +*Viel Spaß beim Coden! Wenn Sie auf Probleme stoßen, hinterlassen Sie einen Kommentar unten und wir helfen beim Troubleshooting.* + +{{< /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/german/net/converting-excel-files-to-other-formats/_index.md b/cells/german/net/converting-excel-files-to-other-formats/_index.md index 440aa28ffc..d5c2963998 100644 --- a/cells/german/net/converting-excel-files-to-other-formats/_index.md +++ b/cells/german/net/converting-excel-files-to-other-formats/_index.md @@ -56,6 +56,8 @@ Erfahren Sie, wie Sie Excel-Dateien mit Aspose.Cells für .NET zu Archivierungsz Erfahren Sie, wie Sie JSON mit Aspose.Cells programmgesteuert in .NET in CSV konvertieren. Folgen Sie unserer Schritt-für-Schritt-Anleitung für eine reibungslose Datentransformation. ### [Programmgesteuertes Konvertieren einer Excel-Datei in PPTX in .NET](./converting-excel-file-to-pptx/) Erfahren Sie in dieser Schritt-für-Schritt-Anleitung, wie Sie mit Aspose.Cells für .NET eine Excel-Datei programmgesteuert in eine PowerPoint-Präsentation (PPTX) konvertieren. +### [PowerPoint aus Excel erstellen – Schritt‑für‑Schritt C#‑Leitfaden](./create-powerpoint-from-excel-step-by-step-c-guide/) +Erfahren Sie, wie Sie mit Aspose.Cells für .NET Excel-Daten programmgesteuert in PowerPoint-Präsentationen konvertieren – Schritt für Schritt. ### [Programmgesteuertes Angeben von HTML CrossType in der HTML-Ausgabe in .NET](./specifying-html-crosstype-in-output-html/) Erfahren Sie, wie Sie HTML CrossType in Aspose.Cells für .NET angeben. Folgen Sie unserer Schritt-für-Schritt-Anleitung, um Excel-Dateien präzise in HTML zu konvertieren. ### [Numbers-Tabellenkalkulation programmgesteuert in .NET lesen](./reading-numbers-spreadsheet/) diff --git a/cells/german/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md b/cells/german/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md new file mode 100644 index 0000000000..5356620eb7 --- /dev/null +++ b/cells/german/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md @@ -0,0 +1,254 @@ +--- +category: general +date: 2026-03-30 +description: Erstellen Sie schnell PowerPoint-Präsentationen aus Excel mit Aspose.Cells + und Aspose.Slides. Erfahren Sie, wie Sie ein Arbeitsblatt als Bild exportieren und + die Präsentation als PPTX in C# speichern. +draft: false +keywords: +- create powerpoint from excel +- convert excel to powerpoint +- export worksheet as image +- save presentation as pptx +- export excel chart as picture +language: de +og_description: Erstellen Sie PowerPoint aus Excel in C# mit Aspose. Exportieren Sie + das Arbeitsblatt als Bild, behalten Sie die Formen bearbeitbar und speichern Sie + das Ergebnis als PPTX. +og_title: PowerPoint aus Excel erstellen – Vollständiges C#‑Tutorial +tags: +- Aspose +- C# +- Office Automation +title: PowerPoint aus Excel erstellen – Schritt‑für‑Schritt C#‑Leitfaden +url: /de/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PowerPoint aus Excel erstellen – Vollständiges C#‑Tutorial + +Hatten Sie schon einmal das Bedürfnis, **PowerPoint aus Excel zu erstellen**, wussten aber nicht, welche Bibliothek Ihre Diagramme editierbar hält? Sie sind nicht allein. In vielen Reporting‑Szenarien möchten Sie eine Kalkulationstabelle in ein Folien‑Deck verwandeln, ohne die Möglichkeit zu verlieren, Textfelder später anzupassen. Dieser Leitfaden zeigt Ihnen genau, wie Sie **Excel nach PowerPoint konvertieren** mit Aspose.Cells und Aspose.Slides, und behandelt zudem, wie Sie **ein Arbeitsblatt als Bild exportieren** und schließlich **die Präsentation als PPTX speichern**. + +Wir gehen jede Code‑Zeile durch, erklären *warum* jede Einstellung wichtig ist und diskutieren, was zu tun ist, wenn Ihre Arbeitsmappe komplexe Diagramme enthält, die Sie lieber als Bild exportieren möchten. Am Ende haben Sie eine sofort einsatzbereite C#‑Konsolen‑App, die `ShapesDemo.xlsx` nimmt und `Result.pptx` ausgibt – alles mit editierbaren Textfeldern und scharfen Bildern. + +## Was Sie benötigen + +- .NET 6.0 oder höher (die API funktioniert auch mit dem .NET Framework, aber .NET 6 ist der optimale Punkt). +- **Aspose.Cells**‑ und **Aspose.Slides**‑NuGet‑Pakete (Kostenlose Testlizenzen funktionieren zum Ausprobieren). +- Grundlegende Kenntnisse der C#‑Syntax – wenn Sie `Console.WriteLine` schreiben können, sind Sie startklar. + +Keine zusätzliche COM‑Interop, kein Office auf dem Server installiert und kein manuelles Kopieren‑Einfügen von Bildern. Alles wird programmgesteuert erledigt. + +--- + +## PowerPoint aus Excel erstellen – Arbeitsmappe laden und Export‑Optionen festlegen + +Als erstes öffnen wir die Excel‑Datei und teilen Aspose.Cells mit, wie das Blatt gerendert werden soll. Das Objekt `ImageOrPrintOptions` ist dabei der Ort, an dem die Magie passiert: Wir aktivieren `ExportShapes` und `ExportEditableTextBoxes`, sodass alle Formen (einschließlich Diagramme) Teil der Folie **werden** und nach der Konvertierung editierbar bleiben. + +```csharp +using Aspose.Cells; +using Aspose.Slides; + +// 1️⃣ Load the Excel workbook +string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; +Workbook workbook = new Workbook(excelPath); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first sheet + +// 2️⃣ Configure image export – keep shapes editable +ImageOrPrintOptions imageOptions = new ImageOrPrintOptions +{ + OnePagePerSheet = true, // Export the whole sheet as one slide + ExportShapes = true, // Include shapes (charts, drawings) + ExportEditableTextBoxes = true // Make text boxes editable in PPTX +}; +``` + +**Warum diese Flags?** +- `OnePagePerSheet` verhindert, dass das Blatt auf mehrere Folien aufgeteilt wird – Sie erhalten ein einzelnes, großformatiges Bild. +- `ExportShapes` weist Aspose.Cells an, Diagramme *und* Vektorformen zu rasterisieren und ihr Aussehen zu bewahren. +- `ExportEditableTextBoxes` ist das Geheimrezept, das Ihnen erlaubt, in PowerPoint per Doppelklick ein Textfeld zu öffnen und den Text zu bearbeiten, ohne Excel erneut zu öffnen. + +> **Pro‑Tipp:** Wenn Sie nur ein statisches Bild eines Diagramms benötigen, setzen Sie `ExportShapes = false` und verwenden Sie später die Methode `ExportExcelChartAsPicture` (siehe den abschließenden Abschnitt). + +--- + +## Excel nach PowerPoint konvertieren – Bild aus Arbeitsblatt erzeugen + +Mit den vorbereiteten Optionen wandeln wir nun das Arbeitsblatt in ein `System.Drawing.Image` um. Der `WorksheetToImageConverter` übernimmt die schwere Arbeit und wendet die gerade definierten Einstellungen an. + +```csharp +// 3️⃣ Convert the worksheet to an image using the options above +WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); +System.Drawing.Image sheetImage = converter.ConvertToImage(0, imageOptions); +``` + +Das Argument `0` bezeichnet die erste Seite (wir haben nur eine, weil `OnePagePerSheet` aktiv ist). Das resultierende `sheetImage` behält die ursprüngliche DPI bei, sodass Ihre Folie selbst auf hochauflösenden Displays nicht pixelig wirkt. + +--- + +## Präsentation als PPTX speichern – Bild in eine Folie einfügen + +Jetzt erstellen wir eine neue PowerPoint‑Datei, fügen eine Folie hinzu und platzieren das Bitmap darauf. Aspose.Slides behandelt das Bild als *Picture Frame*‑Form, die Sie später wie jedes native PowerPoint‑Objekt skalieren oder verschieben können. + +```csharp +// 4️⃣ Create a new PowerPoint presentation +Presentation presentation = new Presentation(); +ISlide slide = presentation.Slides[0]; // The default blank slide + +// Add the Excel‑derived image as a picture frame +slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, // Simple rectangle container + 0, 0, // Top‑left corner (0,0) + sheetImage.Width, // Width of the picture + sheetImage.Height, // Height of the picture + sheetImage); // The bitmap we generated +``` + +> **Was, wenn das Bild größer als die Foliengröße ist?** +> PowerPoint schneidet automatisch alles ab, was die Folienabmessungen überschreitet. Eine schnelle Lösung besteht darin, das Bild vor dem Einfügen zu skalieren: + +```csharp +float scale = Math.Min(presentation.SlideSize.Size.Width / (float)sheetImage.Width, + presentation.SlideSize.Size.Height / (float)sheetImage.Height); +int newWidth = (int)(sheetImage.Width * scale); +int newHeight = (int)(sheetImage.Height * scale); +``` + +Anschließend übergeben Sie `newWidth` und `newHeight` an `AddPictureFrame`. + +--- + +## Arbeitsblatt als Bild exportieren – PPTX‑Datei speichern + +Zum Schluss schreiben wir die Präsentation auf die Festplatte. Der Flag `SaveFormat.Pptx` garantiert das moderne OpenXML‑Format, das in allen aktuellen PowerPoint‑Versionen funktioniert. + +```csharp +// 5️⃣ Save the presentation as a PPTX file +string pptxPath = "YOUR_DIRECTORY/Result.pptx"; +presentation.Save(pptxPath, SaveFormat.Pptx); +``` + +Wenn Sie `Result.pptx` öffnen, sehen Sie eine einzelne Folie, die exakt wie Ihr Excel‑Blatt aussieht, Sie können jedoch weiterhin jedes Textfeld anklicken und den Inhalt direkt in PowerPoint bearbeiten. + +--- + +## Excel‑Diagramm als Bild exportieren – Wenn Raster‑Bilder bevorzugt werden + +Manchmal benötigen Sie keine editierbaren Formen; ein hochwertiges PNG‑Diagramm reicht aus. Aspose.Cells kann ein bestimmtes Diagramm als Bild exportieren, ohne das gesamte Blatt zu konvertieren: + +```csharp +// Example: Export the first chart on the sheet as a PNG +int chartIndex = 0; // Adjust if you have multiple charts +Chart chart = worksheet.Charts[chartIndex]; +ImageOrPrintOptions chartOptions = new ImageOrPrintOptions +{ + ImageFormat = ImageFormat.Png, + OnePagePerSheet = false +}; +chart.ToImage("chart.png", chartOptions); +``` + +Sie können dann `chart.png` auf dieselbe Weise in eine Folie einbetten, wie wir `sheetImage` hinzugefügt haben. Dieser Ansatz reduziert die PPTX‑Dateigröße und ist nützlich, wenn die umgebenden Daten nicht auf der Folie benötigt werden. + +--- + +## Häufige Stolperfallen & wie man sie vermeidet + +| Problem | Warum es passiert | Lösung | +|---------|-------------------|--------| +| **Text sieht unscharf aus** | Exportiert mit niedriger DPI (Standard 96). | Setzen Sie `imageOptions.Dpi = 300;` vor der Konvertierung. | +| **Formen verschwinden** | `ExportShapes` war auf `false` gesetzt. | Stellen Sie sicher, dass `ExportShapes = true` ist, wenn Sie editierbare Grafiken benötigen. | +| **Foliengröße stimmt nicht überein** | Bild ist größer als die Folienabmessungen. | Skalieren Sie das Bild (siehe Code‑Snippet) oder ändern Sie die Foliengröße über `presentation.SlideSize`. | +| **Lizenzausnahme** | Verwendung der Testversion ohne ordnungsgemäße Aktivierung. | Rufen Sie `License license = new License(); license.SetLicense("Aspose.Total.lic");` früh im `Main` auf. | + +--- + +## Vollständiges funktionierendes Beispiel (Copy‑Paste‑bereit) + +Unten finden Sie das gesamte Programm, das Sie in ein neues Konsolen‑Projekt einfügen können. Ersetzen Sie `YOUR_DIRECTORY` durch den Ordner, der Ihre Excel‑Datei enthält. + +```csharp +using System; +using Aspose.Cells; +using Aspose.Slides; +using System.Drawing; + +namespace ExcelToPowerPointDemo +{ + class Program + { + static void Main(string[] args) + { + // ----------------------------------------------------------------- + // 1️⃣ Load the Excel workbook + // ----------------------------------------------------------------- + string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; + Workbook workbook = new Workbook(excelPath); + Worksheet worksheet = workbook.Worksheets[0]; + + // ----------------------------------------------------------------- + // 2️⃣ Set up export options – keep shapes editable + // ----------------------------------------------------------------- + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + OnePagePerSheet = true, + ExportShapes = true, + ExportEditableTextBoxes = true, + Dpi = 300 // High‑resolution output + }; + + // ----------------------------------------------------------------- + // 3️⃣ Convert worksheet to an image + // ----------------------------------------------------------------- + WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); + Image sheetImage = converter.ConvertToImage(0, imageOptions); + + // ----------------------------------------------------------------- + // 4️⃣ Create PowerPoint and add the image as a slide + // ----------------------------------------------------------------- + Presentation presentation = new Presentation(); + ISlide slide = presentation.Slides[0]; + slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, + 0, 0, + sheetImage.Width, + sheetImage.Height, + sheetImage); + + // ----------------------------------------------------------------- + // 5️⃣ Save the PPTX file + // ----------------------------------------------------------------- + string pptxPath = "YOUR_DIRECTORY/Result.pptx"; + presentation.Save(pptxPath, SaveFormat.Pptx); + + Console.WriteLine("✅ PowerPoint created successfully at: " + pptxPath); + } + } +} +``` + +**Erwartete Ausgabe:** +Beim Ausführen des Programms wird `✅ PowerPoint created successfully at: YOUR_DIRECTORY/Result.pptx` ausgegeben. Öffnen Sie die PPTX‑Datei, Sie sehen eine einzelne Folie, die das ursprüngliche Excel‑Blatt widerspiegelt, mit editierbaren Textfeldern. + +--- + +## Zusammenfassung & nächste Schritte + +Sie wissen jetzt, wie Sie **PowerPoint aus Excel erstellen** mit den leistungsstarken APIs von Aspose, wie Sie **ein Arbeitsblatt als Bild exportieren** und wie Sie **die Präsentation als PPTX speichern**, wobei die Editierbarkeit erhalten bleibt. Das gleiche Muster funktioniert für Arbeitsmappen mit mehreren Blättern – einfach über `workbook.Worksheets` iterieren und für jedes Blatt eine neue Folie hinzufügen. + +**Was Sie als Nächstes erkunden können?** + +- **Batch‑Konvertierung:** Durchlaufen Sie einen Ordner mit Excel‑Dateien und erzeugen Sie für jede Datei ein Folien‑Deck. +- **Dynamische Layouts:** Verwenden Sie `slide.LayoutSlide`, um vordesignte PowerPoint‑Vorlagen anzuwenden. +- **Nur‑Diagramm‑Export:** Kombinieren Sie das Snippet „Export Excel chart as picture“ mit Folien‑Platzhaltern für ein schlankeres Deck. +- **Erweiterte Gestaltung:** Anwenden benutzerdefinierter Folien‑Hintergründe, Übergänge oder Animationen via Aspose.Slides. + +Experimentieren Sie gern – ändern Sie die DPI, tauschen Sie `ShapeType.Ellipse` gegen einen runden Bildrahmen aus, oder betten Sie mehrere Bilder pro Folie ein. Der Himmel ist die Grenze, wenn Sie programmgesteuerte Kontrolle über + +{{< /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/german/net/document-properties/_index.md b/cells/german/net/document-properties/_index.md index 2dd483fb81..d2053ef186 100644 --- a/cells/german/net/document-properties/_index.md +++ b/cells/german/net/document-properties/_index.md @@ -35,6 +35,8 @@ Erfahren Sie, wie Sie mit Aspose.Cells für .NET auf Dokumenteigenschaften in Ex Erfahren Sie in unserer Schritt-für-Schritt-Anleitung, wie Sie mit Aspose.Cells für .NET auf Dokumenteigenschaften in Excel zugreifen. Verwalten Sie Ihre Tabellenkalkulationen effizient. ### [Hinzufügen von Dokumenteigenschaften in .NET](./adding-document-properties/) Erfahren Sie in dieser ausführlichen Schritt-für-Schritt-Anleitung, wie Sie mit Aspose.Cells für .NET Dokumenteigenschaften in Excel hinzufügen. +### [Speichern von XLSB mit benutzerdefinierten Eigenschaften in C# – Schritt‑für‑Schritt‑Anleitung](./how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/) +Erfahren Sie, wie Sie mit Aspose.Cells für .NET XLSB-Dateien speichern und benutzerdefinierte Dokumenteigenschaften hinzufügen. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/german/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md b/cells/german/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md new file mode 100644 index 0000000000..c28a54c415 --- /dev/null +++ b/cells/german/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md @@ -0,0 +1,239 @@ +--- +category: general +date: 2026-03-30 +description: Erfahren Sie, wie Sie XLSB in C# speichern, dabei eine benutzerdefinierte + Eigenschaft hinzufügen, sie wieder auslesen und das Speichern einer Arbeitsmappe + als XLSB mit Aspose.Cells meistern. Vollständiger Code inklusive. +draft: false +keywords: +- how to save xlsb +- add custom property +- how to add property +- how to read property +- save workbook as xlsb +language: de +og_description: Wie speichert man XLSB in C#? Dieses Tutorial zeigt, wie man eine + benutzerdefinierte Eigenschaft hinzufügt, sie wieder ausliest und die Arbeitsmappe + mit Aspose.Cells als XLSB speichert. +og_title: Wie man XLSB mit benutzerdefinierten Eigenschaften in C# speichert – Vollständiger + Leitfaden +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Wie man XLSB mit benutzerdefinierten Eigenschaften in C# speichert – Schritt‑für‑Schritt‑Anleitung +url: /de/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Wie man XLSB mit benutzerdefinierten Eigenschaften in C# speichert – Schritt‑für‑Schritt‑Anleitung + +Haben Sie sich jemals gefragt, **wie man XLSB speichert**, während man zusätzliche Metadaten an ein Arbeitsblatt anhängt? Sie sind nicht der Einzige. In vielen Unternehmensszenarien benötigen Sie eine binäre Excel‑Datei, die dennoch Ihre eigenen Schlüssel‑/Wert‑Paare enthält – denken Sie an eine Vertrags‑ID, ein Verarbeitungs‑Flag oder ein Versions‑Tag. + +Die gute Nachricht ist, dass Aspose.Cells das zum Kinderspiel macht. In diesem Leitfaden sehen Sie genau, wie man eine benutzerdefinierte Eigenschaft hinzufügt, sie speichert und dann wieder ausliest, und das alles beim **Speichern der Arbeitsmappe als XLSB**. Keine vagen Verweise, nur ein vollständiges, ausführbares Beispiel, das Sie noch heute in Ihr Projekt einbinden können. + +## Was Sie am Ende haben werden + +- Eine neue `.xlsb`‑Datei, die von Grund auf erstellt wurde. +- Die Möglichkeit, **eine benutzerdefinierte Eigenschaft** zu einem Arbeitsblatt **hinzuzufügen**. +- Code, der **zeigt, wie man die Eigenschaft liest**, nachdem die Datei erneut geladen wurde. +- Tipps zu Fallstricken, die beim **Speichern der Arbeitsmappe als XLSB** auftreten können. + +> **Voraussetzungen:** .NET 6+ (oder .NET Framework 4.6+), Visual Studio (oder jede C#‑IDE) und die Aspose.Cells für .NET‑Bibliothek, installiert über NuGet. Sonst nichts. + +--- + +## Schritt 1: Projekt einrichten und neue Arbeitsmappe erstellen + +Zuerst einmal—lassen Sie uns ein sauberes Workbook‑Objekt bereitstellen. + +```csharp +using Aspose.Cells; +using System; + +// Initialize a new workbook; this will be an in‑memory Excel file. +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0) – it’s created automatically. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Warum das wichtig ist:* `Workbook` ist der Einstiegspunkt für jede Operation in Aspose.Cells. Wenn Sie mit einer brandneuen Instanz beginnen, vermeiden Sie versteckte Zustände, die Ihre benutzerdefinierten Metadaten später beschädigen könnten. + +--- + +## Schritt 2: **Benutzerdefinierte Eigenschaft** zum Arbeitsblatt **hinzufügen** + +Jetzt fügen wir ein Schlüssel‑/Wert‑Paar hinzu, das nur auf diesem Blatt existiert. + +```csharp +// Add a user‑defined property called "MyProperty" with the value "CustomValue". +worksheet.CustomProperties.Add("MyProperty", "CustomValue"); +``` + +> **Pro‑Tipp:** Eigenschaftsnamen sind case‑sensitive. Wenn Sie später versuchen, `"myproperty"` abzurufen, erhalten Sie eine `KeyNotFoundException`. Halten Sie sich von Anfang an an eine Namenskonvention – camelCase oder PascalCase. + +--- + +## Schritt 3: **Arbeitsmappe als XLSB speichern** – Eigenschaft persistieren + +Die Magie passiert, wenn Sie die Arbeitsmappe im binären XLSB‑Format schreiben. + +```csharp +// Define the output path. Adjust the folder to something writable on your machine. +string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + +// Save the workbook; the custom property travels with the file. +workbook.Save(outputPath, SaveFormat.Xlsb); +``` + +*Was Sie tatsächlich tun:* Das `SaveFormat.Xlsb`‑Enum weist Aspose.Cells an, eine binäre Excel‑Datei zu erzeugen (schneller zu öffnen, kleiner auf der Festplatte). Alle benutzerdefinierten Eigenschaften auf Arbeitsblattebene werden automatisch serialisiert – keine zusätzlichen Schritte nötig. + +--- + +## Schritt 4: Datei neu laden und **wie man die Eigenschaft liest** + +Lassen Sie uns beweisen, dass die Eigenschaft den Rundweg überstanden hat. + +```csharp +// Load the just‑saved XLSB file back into memory. +Workbook reloadedWorkbook = new Workbook(outputPath); + +// Access the same worksheet (index 0) and fetch the property value. +string customValue = reloadedWorkbook.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); +``` + +Wenn alles reibungslos verlief, enthält `customValue` jetzt `"CustomValue"`. + +--- + +## Schritt 5: Ergebnis überprüfen – Schnelle Konsolenausgabe + +Eine kleine Plausibilitätsprüfung hilft während der Entwicklung. + +```csharp +Console.WriteLine($"Custom property value: {customValue}"); +``` + +Running the program should print: + +``` +Custom property value: CustomValue +``` + +Wenn diese Zeile erscheint, haben Sie erfolgreich **wie man XLSB speichert**, **wie man eine benutzerdefinierte Eigenschaft hinzufügt** und **wie man die Eigenschaft liest** gemeistert – alles in einem sauberen Ablauf. + +--- + +## Vollständiges funktionierendes Beispiel (Copy‑Paste‑bereit) + +Unten finden Sie das gesamte Programm. Fügen Sie es in eine neue Konsolen‑App ein, drücken Sie **F5** und beobachten Sie, wie die Konsole den Eigenschaftswert bestätigt. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // 1️⃣ Create a new workbook and get its first sheet + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // 2️⃣ Add a custom property (key/value) to the sheet + // ------------------------------------------------- + worksheet.CustomProperties.Add("MyProperty", "CustomValue"); + + // ------------------------------------------------- + // 3️⃣ Save the workbook as XLSB – the property is kept + // ------------------------------------------------- + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(outputPath, SaveFormat.Xlsb); + + // ------------------------------------------------- + // 4️⃣ Reload the saved file to demonstrate persistence + // ------------------------------------------------- + Workbook reloaded = new Workbook(outputPath); + + // ------------------------------------------------- + // 5️⃣ Retrieve the custom property's value + // ------------------------------------------------- + string customValue = reloaded.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); + + // ------------------------------------------------- + // 6️⃣ Display the retrieved value (optional) + // ------------------------------------------------- + Console.WriteLine($"Custom property value: {customValue}"); + } +} +``` + +> **Hinweis:** Ändern Sie `outputPath` zu einem Ordner, in den Sie Schreibzugriff haben. Wenn Sie unter Linux/macOS arbeiten, verwenden Sie einen Pfad wie `"/tmp/WithCustomProp.xlsb"`. + +--- + +## Häufige Fragen & Sonderfälle + +### Was ist, wenn die Eigenschaft bereits existiert? + +Ein Aufruf von `Add` mit einem bereits vorhandenen Schlüssel löst eine `ArgumentException` aus. Verwenden Sie `ContainsKey` oder wickeln Sie den Aufruf in ein `try/catch`, falls Sie unsicher sind. + +```csharp +if (!worksheet.CustomProperties.ContainsKey("MyProperty")) +{ + worksheet.CustomProperties.Add("MyProperty", "AnotherValue"); +} +``` + +### Kann ich Nicht‑String‑Werte speichern? + +Absolut. Die `Value`‑Eigenschaft akzeptiert jedes `object`. Für Zahlen, Datumsangaben oder Booleans übergeben Sie einfach den entsprechenden Typ – Aspose.Cells übernimmt die Konvertierung beim Auslesen. + +### Bleibt die Eigenschaft erhalten, wenn ich zu XLSX konvertiere? + +Ja. Benutzerdefinierte Eigenschaften sind Teil der XML‑Darstellung des Arbeitsblatts und bleiben daher in den Formaten XLSX, XLS und XLSB erhalten. + +### Wie man **eine Eigenschaft zu mehreren Blättern hinzufügt**? + +Durchlaufen Sie die `Worksheets`‑Sammlung und wenden Sie den gleichen `CustomProperties.Add`‑Aufruf auf jedes benötigte Blatt an. + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + ws.CustomProperties.Add("ExportedBy", "MyApp"); +} +``` + +### Performance‑Tipp beim **Speichern von Arbeitsmappen als XLSB** in großen Mengen + +Wenn Sie Hunderte von Dateien erzeugen, verwenden Sie dieselbe `Workbook`‑Instanz wieder und rufen Sie nach jedem Speichern `Clear` auf, um Speicher freizugeben. Außerdem setzen Sie `Workbook.Settings.CalculateFormulaOnOpen = false`, falls Sie die Formeln beim Laden nicht auswerten lassen müssen. + +--- + +## Fazit + +Sie wissen jetzt, **wie man XLSB** in C# speichert, während man eine benutzerdefinierte Eigenschaft mit Aspose.Cells einbettet und später wieder abruft. Die komplette Lösung – die Arbeitsmappe erstellen, eine Eigenschaft hinzufügen, sie mit **save workbook as XLSB** persistieren, neu laden und den Wert lesen – passt in weniger als 50 Code‑Zeilen. + +Von hier aus könnten Sie folgendes erkunden: + +- Mehrere benutzerdefinierte Eigenschaften pro Blatt hinzufügen. +- Komplexe Objekte über JSON‑Strings speichern. +- Die XLSB‑Datei zur zusätzlichen Sicherheit verschlüsseln. + +Probieren Sie diese Ideen aus, und Sie werden schnell zur Ansprechperson für Excel‑Automatisierung in Ihrem Team. Haben Sie Fragen oder ein kniffliges Szenario? Hinterlassen Sie unten einen Kommentar, und viel Spaß beim Coden! + +![Wie man XLSB mit benutzerdefinierter Eigenschaft speichert](/images/how-to-save-xlsb.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/german/net/excel-copy-worksheet/_index.md b/cells/german/net/excel-copy-worksheet/_index.md index 36051ede2f..981064c437 100644 --- a/cells/german/net/excel-copy-worksheet/_index.md +++ b/cells/german/net/excel-copy-worksheet/_index.md @@ -42,6 +42,7 @@ Aspose.Cells für .NET bietet leistungsstarke Funktionen zur Bearbeitung von Exc | [Excel-Arbeitsblatt kopieren](./excel-copy-worksheet/) | Erfahren Sie in dieser leicht verständlichen Schritt-für-Schritt-Anleitung, wie Sie ein Excel-Arbeitsblatt mit Aspose.Cells für .NET kopieren. Ideal für .NET-Entwickler, die Excel-Aufgaben automatisieren möchten. | | [Excel: Arbeitsblätter zwischen Arbeitsmappen kopieren](./excel-copy-worksheets-between-workbooks/) | Erfahren Sie, wie Sie mit Aspose.Cells für .NET Arbeitsblätter zwischen Excel-Arbeitsmappen kopieren. Eine Schritt-für-Schritt-Anleitung mit Codebeispielen zur Optimierung Ihrer Tabellenkalkulationsverwaltung. | | [Excel-Arbeitsblatt „Verschieben“](./excel-move-worksheet/) | Lernen Sie in unserer Schritt-für-Schritt-Anleitung, Arbeitsblätter in Excel mit Aspose.Cells für .NET zu verschieben. Meistern Sie die Kunst der Excel-Programmierung. | +| [Wie man ein Arbeitsblatt in C# mit Aspose.Cells kopiert – Komplettanleitung](./how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/) | Erfahren Sie in dieser umfassenden Schritt-für-Schritt-Anleitung, wie Sie ein Arbeitsblatt in C# mit Aspose.Cells vollständig kopieren. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/german/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md b/cells/german/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md new file mode 100644 index 0000000000..8fd4085605 --- /dev/null +++ b/cells/german/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md @@ -0,0 +1,290 @@ +--- +category: general +date: 2026-03-30 +description: Wie man ein Arbeitsblatt in C# mit Aspose.Cells kopiert – Schritt‑für‑Schritt‑Anleitung, + die das Kopieren von Zellbereichen, das Kopieren von Spalten zwischen Arbeitsblättern, + das Kopieren von Pivot‑Tabellen eines Arbeitsblatts und das Hinzufügen von neuem + Arbeitsblatt‑Code abdeckt. +draft: false +keywords: +- how to copy worksheet +- copy cell range +- copy columns between sheets +- copy worksheet pivot table +- add new worksheet code +language: de +og_description: Erfahren Sie, wie Sie ein Arbeitsblatt in C# mit Aspose.Cells kopieren. + Dieser Leitfaden zeigt das Kopieren von Zellbereichen, das Beibehalten von Pivot-Tabellen, + das Kopieren von Spalten zwischen Arbeitsblättern und das Hinzufügen von Code für + ein neues Arbeitsblatt. +og_title: Wie man ein Arbeitsblatt in C# kopiert – Vollständiges Aspose.Cells‑Tutorial +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Wie man ein Arbeitsblatt in C# mit Aspose.Cells kopiert – Komplettanleitung +url: /de/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Wie man ein Arbeitsblatt in C# mit Aspose.Cells – Komplettanleitung + +Haben Sie sich jemals gefragt, **wie man ein Arbeitsblatt** in C# kopiert, ohne dabei eine einzige Pivot-Tabelle oder Formel zu verlieren? Sie sind nicht allein – viele Entwickler stoßen an Grenzen, wenn sie ein Blatt duplizieren müssen und dabei alle Funktionen erhalten wollen. In diesem Tutorial führen wir Sie durch eine praktische, End‑to‑End‑Lösung, die nicht nur die Daten kopiert, sondern auch die **copy worksheet pivot table** beibehält, **copy cell range** verarbeitet und den **add new worksheet code** zeigt, den Sie benötigen. + +Wir behandeln alles vom Laden der Quellarbeitsmappe bis zum Speichern der Zieldatei, sodass Sie Spalten zwischen Blättern kopieren, Objekte erhalten und Ihren Code sauber halten können. Keine vagen Verweise, nur ein vollständiges, ausführbares Beispiel, das Sie noch heute in Ihr Projekt einbinden können. + +## Was dieses Tutorial abdeckt + +- Laden einer bestehenden Excel-Datei mit Aspose.Cells +- Verwendung von **add new worksheet code**, um ein Zielblatt zu erstellen +- Definition eines **copy cell range**, das eine Pivot-Tabelle enthält +- Einrichtung von **CopyOptions**, um Diagramme, Formeln und Pivot-Tabellen unverändert zu lassen +- Ausführen von **copy columns between sheets** mit zeilenweiser Präzision +- Speichern des Ergebnisses und Überprüfen, dass das Arbeitsblatt korrekt kopiert wurde + +Am Ende dieses Leitfadens können Sie die Frage „how to copy worksheet“ selbstbewusst beantworten, egal ob Sie Berichte automatisieren oder eine tabellenkalkulationsbasierte Benutzeroberfläche erstellen. + +--- + +## Wie man ein Arbeitsblatt kopiert – Übersicht + +Bevor wir in den Code eintauchen, skizzieren wir den groben Ablauf. Denken Sie daran wie an ein Rezept: + +1. **Load** die Quellarbeitsmappe (`Source.xlsx`). +2. **Add** ein neues Arbeitsblatt, um die Kopie zu halten (`add new worksheet code`). +3. **Define** den Bereich, den Sie duplizieren möchten (`copy cell range`). +4. **Configure** die Kopieroptionen, damit die Pivot-Tabelle erhalten bleibt (`copy worksheet pivot table`). +5. **Copy** Zeilen und Spalten (`copy columns between sheets`). +6. **Save** die neue Arbeitsmappe (`Destination.xlsx`). + +Das war's – sechs Schritte, kein Zauber. Jeder Schritt wird unten mit Code‑Snippets und der jeweiligen Begründung erklärt. + +--- + +## Schritt 1 – Laden der Quellarbeitsmappe + +Zuerst das Wichtigste: Sie benötigen eine `Workbook`‑Instanz, die auf die Datei zeigt, die Sie duplizieren möchten. Dieser Schritt ist entscheidend, weil Aspose.Cells direkt mit dem Dateisystem arbeitet, nicht mit der Office‑Benutzeroberfläche. + +```csharp +using Aspose.Cells; + +// Path to the original file +string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; +string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + +// Load the workbook – this is the starting point for how to copy worksheet +Workbook workbook = new Workbook(sourcePath); +``` + +*Warum das wichtig ist:* Das Laden der Datei erzeugt eine In‑Memory‑Darstellung jedes Blatts, jeder Zelle und jedes Objekts. Ohne das gibt es nichts zu kopieren, und jeder Versuch, später `add new worksheet code` auszuführen, würde fehlschlagen, weil die Quelldaten nicht vorhanden sind. + +--- + +## Schritt 2 – Hinzufügen eines neuen Arbeitsblatts (add new worksheet code) + +Jetzt benötigen wir einen Ort, um die kopierten Daten einzufügen. Hier kommt der **add new worksheet code** zum Einsatz. Sie können das Blatt beliebig benennen; hier nennen wir es `"Copy"`. + +```csharp +// Grab the first worksheet (the one we want to copy) +Worksheet sourceSheet = workbook.Worksheets[0]; + +// Add a fresh worksheet to receive the copy +Worksheet copySheet = workbook.Worksheets.Add("Copy"); +``` + +*Pro‑Tipp:* Wenn Sie mehrere Blätter kopieren möchten, rufen Sie `Worksheets.Add` innerhalb einer Schleife auf und geben jedem Blatt einen eindeutigen Namen. So vermeiden Sie Namenskollisionen und halten Ihre Arbeitsmappe übersichtlich. + +--- + +## Schritt 3 – Definieren des Kopierbereichs (Copy Cell Range) + +Ein **copy cell range** gibt Aspose.Cells genau an, welche Zeilen und Spalten dupliziert werden sollen. In vielen Praxis‑Szenarien beinhaltet der Bereich eine Pivot‑Tabelle, daher müssen wir präzise sein. + +```csharp +// Define the area that contains the pivot table (A1:G20) +CellArea sourceRange = new CellArea +{ + StartRow = 0, // Row 1 (zero‑based) + StartColumn = 0, // Column A + EndRow = 19, // Row 20 + EndColumn = 6 // Column G +}; + +// Destination range – we start at the same top‑left corner +CellArea destinationRange = new CellArea +{ + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 +}; +``` + +*Warum wir das benötigen:* Durch die explizite Angabe des Bereichs vermeiden Sie das Kopieren des gesamten Blatts (was verschwenderisch sein kann) und stellen sicher, dass die Pivot‑Tabelle im kopierten Bereich bleibt. Das ist das Kernstück von **how to copy worksheet**, wenn Sie nur einen Teil des Blatts benötigen. + +--- + +## Schritt 4 – Kopieroptionen festlegen (preserve copy worksheet pivot table) + +Aspose.Cells bietet ein `CopyOptions`‑Objekt, das steuert, was eingefügt wird. Um die Pivot‑Tabelle, Diagramme und Formeln zu erhalten, setzen wir `PasteType.All` und aktivieren `PasteSpecial`. + +```csharp +CopyOptions copyOptions = new CopyOptions +{ + PasteType = PasteType.All, // Copy everything: values, formats, objects + PasteSpecial = true // Enable special paste to retain pivot tables +}; +``` + +*Erklärung:* `PasteType.All` ist die umfassendste Option, während `PasteSpecial` der Engine mitteilt, komplexe Objekte – wie Pivot‑Tabellen – korrekt zu behandeln. Das Überspringen dieses Schrittes ist ein häufiger Stolperstein; das kopierte Blatt würde seine interaktiven Funktionen verlieren. + +--- + +## Schritt 5 – Zeilen und Spalten kopieren (copy columns between sheets) + +Jetzt kommt die eigentliche Arbeit: das Verschieben der Daten. Wir verwenden `CopyRows` und `CopyColumns`, um **copy columns between sheets** zu bewältigen. Das Ausführen beider Schritte stellt sicher, dass zusammengeführte Zellen und Spaltenbreiten erhalten bleiben. + +```csharp +// Copy rows from the source to the destination sheet +sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + +// Copy columns from the source to the destination sheet +sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); +``` + +*Was passiert:* `CopyRows` verschiebt die Daten Zeile für Zeile, während `CopyColumns` dasselbe Spalte für Spalte tut. Das Ausführen beider Schritte garantiert, dass der gesamte rechteckige Block dupliziert wird, was entscheidend ist, wenn Sie **copy columns between sheets** benötigen, die unterschiedliche Spaltenbreiten oder ausgeblendete Spalten haben. + +--- + +## Schritt 6 – Arbeitsmappe speichern + +Zum Schluss schreiben Sie die Änderungen zurück auf die Festplatte. Dieser Schritt schließt den **how to copy worksheet**‑Prozess ab. + +```csharp +// Save the workbook with the newly copied sheet +workbook.Save(destinationPath); +``` + +*Verifizierungstipp:* Öffnen Sie `Destination.xlsx` und prüfen Sie, ob das Blatt `"Copy"` identisch zum Original aussieht, die Pivot‑Tabellen funktionieren und die Spaltenbreiten übereinstimmen. Wenn etwas nicht stimmt, überprüfen Sie die `CopyOptions`‑Einstellungen erneut. + +--- + +## Sonderfälle & häufige Variationen + +### Kopieren mehrerer Arbeitsblätter + +Wenn Sie mehrere Blätter duplizieren müssen, verpacken Sie die obige Logik in eine `foreach`‑Schleife: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + Worksheet newWs = workbook.Worksheets.Add(ws.Name + "_Copy"); + // Re‑use sourceRange/destinationRange or calculate per sheet + // Then call CopyRows/CopyColumns as shown earlier +} +``` + +### Formeln über verschiedene Arbeitsmappen hinweg erhalten + +Wenn die Quell‑ und Zielarbeitsmappe unterschiedliche benannte Bereiche haben, setzen Sie `copyOptions` zusätzlich zu `All` auf `PasteType.Formulas`: + +```csharp +copyOptions.PasteType = PasteType.All | PasteType.Formulas; +``` + +### Große Bereiche und Leistung + +Für massive Datensätze (Hunderttausende von Zeilen) sollten Sie erwägen, nur `CopyRows` zu verwenden und `CopyColumns` zu überspringen, wenn Spaltenbreiten nicht kritisch sind. Das kann ein paar Sekunden einsparen. + +--- + +## Vollständiges funktionierendes Beispiel + +Unten finden Sie das vollständige, sofort ausführbare Programm, das alles, was wir besprochen haben, zusammenfasst. Fügen Sie es in eine Konsolen‑App ein, passen Sie die Dateipfade an und drücken Sie **F5**. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // ---------- Step 1: Load the source workbook ---------- + string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; + string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + Workbook workbook = new Workbook(sourcePath); + + // ---------- Step 2: Add a new worksheet (add new worksheet code) ---------- + Worksheet sourceSheet = workbook.Worksheets[0]; + Worksheet copySheet = workbook.Worksheets.Add("Copy"); + + // ---------- Step 3: Define the copy cell range ---------- + CellArea sourceRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + CellArea destinationRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + + // ---------- Step 4: Set copy options (preserve copy worksheet pivot table) ---------- + CopyOptions copyOptions = new CopyOptions + { + PasteType = PasteType.All, + PasteSpecial = true + }; + + // ---------- Step 5: Copy rows and columns (copy columns between sheets) ---------- + sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + + sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); + + // ---------- Step 6: Save the workbook ---------- + workbook.Save(destinationPath); + } +} +``` + +**Erwartetes Ergebnis:** Beim Öffnen von `Destination.xlsx` wird ein Blatt namens **Copy** angezeigt, das das erste Blatt von `Source.xlsx` widerspiegelt – einschließlich aller Pivot‑Tabellen, Formatierungen und Spaltenbreiten. Die Originaldatei bleibt unverändert. + +--- + +## Häufig gestellte Fragen + +**Q: Funktioniert das mit .xlsx‑Dateien, die mit Excel 2019 erstellt wurden?** +A: Absolut. Aspose.Cells unterstützt alle modernen Excel‑Formate, sodass derselbe Code für `.xlsx`, `.xlsm` und sogar ältere `.xls`‑Dateien funktioniert + +{{< /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/german/net/excel-custom-number-date-formatting/_index.md b/cells/german/net/excel-custom-number-date-formatting/_index.md index 235dc457ad..f5fd15965b 100644 --- a/cells/german/net/excel-custom-number-date-formatting/_index.md +++ b/cells/german/net/excel-custom-number-date-formatting/_index.md @@ -34,9 +34,16 @@ Dieses Tutorial vermittelt Ihnen die Fähigkeiten, Ihre Datensätze unter Beibeh ## Tutorials zur benutzerdefinierten Zahlen- und Datumsformatierung in Excel ### [Überprüfen, ob ein Zellenwert in einem bestimmten benutzerdefinierten Zahlenformat vorliegt](./check-if-a-cell-value-is-in-a-specific-custom-number-format/) Erfahren Sie in diesem Schritt-für-Schritt-Tutorial, wie Sie mit Aspose.Cells für .NET Excel-Zellenwerte mit benutzerdefinierten Zahlenformaten vergleichen. + ### [Geben Sie beim Importieren von Daten in ein Excel-Tabellenblatt Formelfelder an](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) Erfahren Sie in diesem ausführlichen Tutorial, wie Sie mit Aspose.Cells für .NET Daten mit angegebenen Formelfeldern in Excel-Tabellen importieren. +### [Zahl mit Trennzeichen formatieren in C# – Vollständige Aspose.Cells-Anleitung](./format-number-with-separator-in-c-complete-aspose-cells-guid/) +Erfahren Sie, wie Sie mit Aspose.Cells Zahlen in C# formatieren und Trennzeichen wie Tausender‑Separator hinzufügen. + +### [Datum im ISO-Format aus Excel formatieren – Vollständige C#‑Anleitung](./format-date-iso-from-excel-complete-c-guide/) +Erfahren Sie, wie Sie mit Aspose.Cells das Datum aus Excel im ISO‑Format formatieren und in C# weiterverarbeiten. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} diff --git a/cells/german/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md b/cells/german/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..223e1f1928 --- /dev/null +++ b/cells/german/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md @@ -0,0 +1,218 @@ +--- +category: general +date: 2026-03-30 +description: Erfahren Sie, wie Sie das ISO‑Datum formatieren, während Sie Excel‑Datumswerte + lesen und Excel‑Datumsdaten mit Aspose.Cells in C# extrahieren. +draft: false +keywords: +- format date iso +- read excel datetime +- extract datetime excel +- Aspose.Cells date parsing +- Japanese era dates +language: de +og_description: ISO-Datum aus Excel-Daten mit Aspose.Cells formatieren. Dieser Leitfaden + zeigt, wie man Excel-Datumswerte liest, Excel-Datumswerte extrahiert und ISO-Daten + ausgibt. +og_title: ISO-Datum aus Excel formatieren – Schritt‑für‑Schritt C#‑Tutorial +tags: +- C# +- Excel +- DateTime +- Aspose.Cells +title: ISO-Datum aus Excel formatieren – Vollständiger C#‑Leitfaden +url: /de/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# ISO‑Datum aus Excel formatieren – Vollständiger C#‑Leitfaden + +Haben Sie schon einmal **ISO‑Datum formatieren** müssen, wenn Sie Daten aus einer Excel‑Tabelle auslesen? Vielleicht arbeiten Sie mit japanischen Ära‑Datumsangaben, oder Sie benötigen einfach einen sauberen `yyyy‑MM‑dd`‑String für ein API‑Payload. In diesem Tutorial zeigen wir Ihnen genau, wie Sie **Excel‑Datum‑Zeit**‑Zellen **auslesen**, **Excel‑Datum‑Zeit**‑Werte **extrahieren** und in das ISO‑8601‑Format umwandeln – ganz ohne Rätselraten. + +Wir gehen Schritt für Schritt durch ein praxisnahes Beispiel mit Aspose.Cells, erklären, warum jede Zeile wichtig ist, und zeigen Ihnen das Endergebnis, das Sie direkt in Ihr Projekt übernehmen können. Am Ende können Sie eigenartig formatierte Ära‑Strings wie „令和3年5月1日“ verarbeiten und ein standardisiertes ISO‑Datum erzeugen, das Sie in Datenbanken, JSON oder überall dort verwenden können, wo Sie es benötigen. + +## Voraussetzungen + +- .NET 6.0 oder höher (der Code funktioniert auch mit dem .NET Framework) +- Aspose.Cells für .NET (Free‑Trial oder lizenziert) +- Grundkenntnisse in C# und Excel‑Konzepten +- Visual Studio oder ein beliebiger C#‑Editor + +Zusätzliche NuGet‑Pakete sind über Aspose.Cells hinaus nicht nötig, sodass die Einrichtung recht unkompliziert ist. + +--- + +## Schritt 1: Arbeitsmappe erstellen und das erste Arbeitsblatt anvisieren + +Als Erstes erzeugen Sie ein neues `Workbook`‑Objekt. Damit erhalten Sie eine In‑Memory‑Repräsentation einer Excel‑Datei, die Sie anschließend manipulieren oder auslesen können. + +```csharp +using Aspose.Cells; +using System.Globalization; + +// Step 1: Initialize a new workbook and grab the first worksheet +Workbook workbook = new Workbook(); // creates an empty .xlsx +Worksheet worksheet = workbook.Worksheets[0]; // the default sheet is "Sheet1" +``` + +*Warum das wichtig ist:* +Das programmgesteuerte Erzeugen der Arbeitsmappe erspart Ihnen den Umgang mit physischen Dateien während des Testens. Außerdem wird sichergestellt, dass der Arbeitsblatt‑Verweis immer gültig ist – keine Null‑Referenz‑Überraschungen später, wenn Sie **Excel‑Datum‑Zeit**‑Werte **auslesen**. + +--- + +## Schritt 2: Einen japanischen Ära‑Datumsstring in eine Zelle schreiben + +Unser Ziel ist es, das Parsen eines nicht‑Gregorianischen Datums zu demonstrieren. Wir schreiben den Ära‑String direkt in Zelle **A1**. + +```csharp +// Step 2: Insert a Japanese era date string into cell A1 +worksheet.Cells["A1"].PutValue("令和3年5月1日"); +``` + +*Pro‑Tipp:* Wenn Sie Daten aus einer bestehenden Arbeitsmappe holen, würden Sie den `PutValue`‑Aufruf überspringen und einfach die Zelle referenzieren, die das Datum bereits enthält. Wichtig ist, dass die Zelle einen **String** enthält, der ein Datum im japanischen Lunisolarkalender darstellt. + +--- + +## Schritt 3: Eine Kultur konfigurieren, die den japanischen Lunisolarkalender versteht + +Die .NET‑Klasse `CultureInfo` ermöglicht es Ihnen, festzulegen, wie Datumsangaben interpretiert werden sollen. Indem Sie den Standard‑Gregorianischen Kalender durch `JapaneseLunisolarCalendar` ersetzen, geben Sie dem Parser den nötigen Kontext. + +```csharp +// Step 3: Set up a culture using the Japanese lunisolar calendar +CultureInfo japaneseCulture = new CultureInfo("ja-JP"); +japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); +``` + +*Warum wir das tun:* +Würde man versuchen, „令和3年5月1日“ mit der Standard‑Kultur zu parsen, wirft .NET eine `FormatException`. Der Austausch gegen den Lunisolarkalender teilt der Laufzeit exakt mit, wie „令和3年“ (das 3. Jahr der Reiwa‑Ära) auf das gregorianische Jahr 2021 abgebildet wird. + +--- + +## Schritt 4: Zellenwert als `DateTime` mit der konfigurierten Kultur parsen + +Jetzt kommt der Kern der Operation – den Ära‑String in ein echtes `DateTime`‑Objekt zu verwandeln. Aspose.Cells stellt dafür eine praktische `GetDateTime`‑Überladung bereit, die ein `CultureInfo`‑Objekt akzeptiert. + +```csharp +// Step 4: Retrieve the cell value as a DateTime, respecting the Japanese culture +DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); +``` + +*Was im Hintergrund passiert:* +`GetDateTime` liest den rohen String, wendet die Kalenderregeln der übergebenen Kultur an und liefert ein `DateTime`, das denselben Moment im Gregorianischen Kalender repräsentiert. Dies ist der Punkt, an dem Sie **Excel‑Datum‑Zeit**‑Daten in einer Form **extrahieren**, mit der Sie in .NET weiterarbeiten können. + +--- + +## Schritt 5: Das geparste Datum im ISO‑8601‑Format ausgeben + +Abschließend formatieren wir das `DateTime` als ISO‑String – `yyyy‑MM‑dd` – der universell von APIs, Datenbanken und Front‑End‑Frameworks akzeptiert wird. + +```csharp +// Step 5: Print the date in ISO format (e.g., 2021-05-01) +Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // Output: 2021-05-01 +``` + +*Warum ISO?* +ISO 8601 beseitigt Mehrdeutigkeiten. „05/01/2021“ kann je nach Locale der 1. Mai oder der 5. Januar sein. `2021-05-01` ist kristallklar, weshalb wir **ISO‑Datum formatieren** in fast jedem Integrationsszenario verwenden. + +--- + +## Vollständiges, funktionierendes Beispiel + +Unten finden Sie das komplette, sofort ausführbare Programm. Kopieren Sie es in ein Konsolen‑App‑Projekt, fügen Sie den Aspose.Cells‑Verweis hinzu und drücken Sie **F5**. + +```csharp +using Aspose.Cells; +using System; +using System.Globalization; + +class Program +{ + static void Main() + { + // 1️⃣ Create workbook and select the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("令和3年5月1日"); + + // 3️⃣ Set up Japanese lunisolar culture + CultureInfo japaneseCulture = new CultureInfo("ja-JP"); + japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); + + // 4️⃣ Parse the cell value as DateTime using the culture + DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); + + // 5️⃣ Output the date in ISO format + Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // 2021-05-01 + } +} +``` + +**Erwartete Ausgabe** + +``` +2021-05-01 +``` + +Führen Sie das Programm einmal aus, und Sie sehen das ISO‑formatierte Datum in der Konsole. Das ist die gesamte Pipeline von **Excel‑Datum‑Zeit auslesen** zu **ISO‑Datum formatieren**. + +--- + +## Umgang mit häufigen Sonderfällen + +### 1. Zellen mit echten Excel‑Datum‑Nummern + +Manchmal speichert Excel Daten als Seriennummern (z. B. `44204`). In diesem Fall benötigen Sie keine Kultur; rufen Sie einfach `GetDateTime()` ohne Parameter auf: + +```csharp +DateTime serialDate = worksheet.Cells["B2"].GetDateTime(); // B2 holds a numeric date +Console.WriteLine(serialDate.ToString("yyyy-MM-dd")); +``` + +### 2. Leere oder ungültige Zellen + +Ist eine Zelle leer oder enthält einen nicht parsbaren String, wirft `GetDateTime` eine Ausnahme. Umwickeln Sie den Aufruf daher mit `try/catch` oder prüfen Sie vorher `IsDateTime`: + +```csharp +if (worksheet.Cells["C3"].Type == CellValueType.IsDateTime) +{ + DateTime safeDate = worksheet.Cells["C3"].GetDateTime(); + Console.WriteLine(safeDate.ToString("yyyy-MM-dd")); +} +else +{ + Console.WriteLine("Cell C3 does not contain a valid date."); +} +``` + +### 3. Unterschiedliche Ära‑Formate + +Weitere japanische Ären (Heisei, Showa) folgen dem gleichen Muster. Der `JapaneseLunisolarCalendar` verarbeitet sie automatisch, sodass Sie keine zusätzliche Logik benötigen – einfach den String übergeben. + +--- + +## Pro‑Tipps & Stolperfallen + +- **Performance:** Beim Verarbeiten großer Tabellen sollten Sie eine einzelne `CultureInfo`‑Instanz wiederverwenden, anstatt in jeder Schleife ein neues Objekt zu erzeugen. +- **Thread‑Safety:** `CultureInfo`‑Objekte sind nach dem Setzen des Kalenders schreibgeschützt und können daher sicher über Threads hinweg geteilt werden. +- **Aspose.Cells‑Lizenzierung:** Nutzen Sie die Free‑Trial‑Version, beachten Sie, dass einige Features nach Ablauf der Testphase eingeschränkt sein können. Das hier gezeigte Datum‑Parsing funktioniert sowohl im Test‑ als auch im Lizenzmodus. +- **Zeitzonen:** Das erhaltene `DateTime` ist **unspecified** (keine Zeitzone). Benötigen Sie UTC, rufen Sie `DateTime.SpecifyKind(parsedDate, DateTimeKind.Utc)` auf oder konvertieren Sie mit `TimeZoneInfo`. + +--- + +## Fazit + +Wir haben alles behandelt, was Sie benötigen, um **ISO‑Datum aus einer Excel‑Arbeitsmappe** mit C# zu **formatieren**. Ausgehend von einem rohen japanischen Ära‑String lesen wir **Excel‑Datum‑Zeit**, richten die passende Kultur ein, **extrahieren** die Daten und geben schließlich einen sauberen ISO‑8601‑String aus. Der Ansatz funktioniert für jede Datumsdarstellung, die Excel Ihnen liefert – sei es eine Seriennummer, ein lokalspezifischer String oder ein traditionelles Ära‑Format. + +Nächste Schritte? Durchlaufen Sie eine ganze Spalte mit Datumswerten, schreiben Sie die ISO‑Ergebnisse in ein neues Blatt zurück oder übergeben Sie sie direkt an ein JSON‑Payload für einen Web‑Service. Wenn Sie neugierig auf andere Kalendersysteme (Hebräisch, Islamisch) sind, machen Aspose.Cells und .NET‑`CultureInfo` solche Experimente ebenso einfach. + +Fragen oder ein kniffliges Datumsformat, das Sie nicht knacken können? Hinterlassen Sie einen Kommentar unten – und happy coding! + +{{< /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/german/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md b/cells/german/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md new file mode 100644 index 0000000000..224aca99f8 --- /dev/null +++ b/cells/german/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-03-30 +description: Erfahren Sie, wie Sie Zahlen mit Trennzeichen mithilfe von Aspose.Cells + in C# formatieren. Enthält das Festlegen eines benutzerdefinierten Zahlenformats, + das Hinzufügen eines Tausendertrennzeichens, das Formatieren von Dezimalstellen + und das Formatieren von Zellen. +draft: false +keywords: +- format number with separator +- set custom number format +- add thousands separator +- format decimal places +- how to format cell +language: de +og_description: Zahlen mit Trennzeichen in C# formatieren. Dieser Leitfaden zeigt, + wie man ein benutzerdefiniertes Zahlenformat festlegt, Tausendertrennzeichen hinzufügt, + Dezimalstellen formatiert und Zellen mit Aspose.Cells formatiert. +og_title: Zahl mit Trennzeichen in C# formatieren – Aspose.Cells Tutorial +tags: +- C# +- Aspose.Cells +- Number Formatting +title: Zahlen mit Trennzeichen in C# formatieren – Vollständiger Aspose.Cells‑Leitfaden +url: /de/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Zahl mit Trennzeichen in C# formatieren – Vollständiger Aspose.Cells Leitfaden + +Haben Sie schon einmal **Zahl mit Trennzeichen** in einer Tabelle formatieren müssen, wussten aber nicht, welchen API‑Aufruf Sie verwenden sollten? Sie sind nicht allein – Entwickler kämpfen ständig mit Tausendertrennzeichen, Dezimalstellen und benutzerdefinierten Mustern beim Export von Daten. + +Gute Nachricht: Aspose.Cells macht das kinderleicht. In diesem Tutorial gehen wir ein praxisnahes Beispiel durch, das **ein benutzerdefiniertes Zahlenformat setzt**, **ein Tausendertrennzeichen hinzufügt**, **Dezimalstellen formatiert** und zeigt, **wie man die Zelle** als Zeichenkette ausgibt. Am Ende haben Sie ein einsatzbereites Snippet, das Sie in jedes .NET‑Projekt einfügen können. + +## Was dieser Leitfaden abdeckt + +* Das genaue NuGet‑Paket, das Sie benötigen, und wie Sie es installieren. +* Schritt‑für‑Schritt‑Code, der ein Workbook erstellt, einen numerischen Wert schreibt und ein benutzerdefiniertes Format anwendet. +* Warum `ExportTableOptions.ExportAsString` der bevorzugte Weg ist, um einen formatierten Wert abzurufen. +* Häufige Stolperfallen – z. B. das Vergessen, `ExportAsString` zu aktivieren, oder die Verwendung einer falschen Formatmaske. +* Wie Sie die Formatmaske anpassen, wenn Sie eine andere Anzahl von Dezimalstellen oder einen anderen Trennzeichenstil benötigen. + +Keine externen Dokumentations‑Links nötig; alles, was Sie brauchen, finden Sie hier. Lassen Sie uns loslegen. + +--- + +## Voraussetzungen + +| Anforderung | Grund | +|-------------|-------| +| .NET 6.0 oder höher | Aspose.Cells 23.10+ zielt auf .NET Standard 2.0+ ab, daher ist .NET 6 sicher und aktuell. | +| Visual Studio 2022 (oder jede C#‑IDE) | Erleichtert Debugging und Paketverwaltung. | +| Aspose.Cells for .NET NuGet‑Paket | Stellt die Klassen `Workbook`, `Worksheet` und `ExportTableOptions` bereit, die wir verwenden werden. | + +Sie können das Paket über die Package Manager Console installieren: + +```powershell +Install-Package Aspose.Cells +``` + +Das war’s – keine zusätzlichen DLLs, kein COM‑Interop, nur ein einziger NuGet‑Verweis. + +--- + +## Schritt 1: Neues Workbook initialisieren (Wie man Zelle formatiert) + +Das Erste, was wir tun, ist eine frische `Workbook`‑Instanz zu erstellen. Stellen Sie sich das vor wie eine leere Excel‑Datei, die bereit ist, Daten zu erhalten. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Create a new workbook – this is where we’ll format the cell. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Warum das wichtig ist:** `Workbook` ist der Einstiegspunkt für jede Operation in Aspose.Cells. Indem wir das erste Arbeitsblatt (`Worksheets[0]`) holen, erhalten wir eine saubere Leinwand, ohne ein Blatt benennen zu müssen. + +--- + +## Schritt 2: Numerischen Wert in die Zielzelle schreiben + +Als Nächstes setzen wir eine rohe Zahl in Zelle **A1**. Der Wert selbst ist noch nicht formatiert – es ist einfach ein `double`. + +```csharp + // Step 2: Insert a raw numeric value. + worksheet.Cells["A1"].PutValue(12345.6789); +``` + +> **Pro‑Tipp:** Verwenden Sie `PutValue` statt `PutString`, wenn Sie später eine numerische Formatierung anwenden wollen. Das bewahrt den zugrunde liegenden Datentyp und ermöglicht Excel‑kompatible Berechnungen. + +--- + +## Schritt 3: Benutzerdefiniertes Zahlenformat setzen (Tausendertrennzeichen hinzufügen & Dezimalstellen formatieren) + +Jetzt kommt der Kern des Tutorials: Definition einer Formatmaske, die Aspose.Cells sagt, wie die Zahl angezeigt werden soll. Die Maske `#,##0.00` bewirkt drei Dinge: + +1. **`#,##0`** – fügt ein Tausendertrennzeichen (standardmäßig Komma) hinzu. +2. **`.00`** – erzwingt exakt zwei Dezimalstellen. + +Wenn Sie eine andere Anzahl von Dezimalstellen benötigen, ändern Sie einfach die Anzahl der `0` hinter dem Dezimalpunkt. + +```csharp + // Step 3: Configure the custom number format. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, // Return the value as a formatted string. + NumberFormat = "#,##0.00" // Add thousands separator and fix to 2 decimals. + }; +``` + +> **Warum wir `ExportAsString` verwenden:** Standardmäßig gibt `ExportString` den Rohwert zurück. Durch Setzen von `ExportAsString = true` zwingt man die API, die `NumberFormat`‑Maske anzuwenden, bevor sie in Text umgewandelt wird. Das ist entscheidend, wenn Sie die exakte Zeichenketten‑Darstellung für Berichte, JSON‑Payloads oder UI‑Anzeige benötigen. + +--- + +## Schritt 4: Formatierten Text exportieren (Wie man Zelle formatiert) + +Mit den vorbereiteten Optionen rufen wir `ExportString` für dieselbe Zelle auf. Die Methode respektiert die gerade definierte Maske und liefert eine schön formatierte Zeichenkette zurück. + +```csharp + // Step 4: Export the formatted value. + string formattedCellText = worksheet.Cells["A1"].ExportString(exportOptions); + + // Step 5: Show the result. + Console.WriteLine(formattedCellText); // Expected output: 12,345.68 + } +} +``` + +Beim Ausführen des Programms wird **`12,345.68`** in der Konsole ausgegeben – exakt das Format, das wir verlangt haben. + +> **Randfall:** Hat die Ausgangszahl mehr als zwei Dezimalstellen, rundet die Maske. Wenn Sie stattdessen abschneiden wollen, müssen Sie den Wert vor dem Aufruf von `PutValue` mit `Math.Truncate` vorverarbeiten. + +--- + +## Schritt 5: Format anpassen – Häufige Varianten + +### 5.1 Dezimalpräzision ändern + +Möchten Sie drei Dezimalstellen? Ersetzen Sie einfach die Maske: + +```csharp +NumberFormat = "#,##0.000" // → 12,345.679 +``` + +### 5.2 Anderes Tausendertrennzeichen verwenden + +Einige Regionen bevorzugen ein Leerzeichen oder einen Punkt. Sie können das Zeichen direkt einbetten: + +```csharp +NumberFormat = "# ##0.00" // Uses a non‑breaking space as separator. +``` + +Oder sich auf die Kultur‑Einstellungen des Workbooks verlassen: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("de-DE"); +NumberFormat = "#.##0,00"; // German style: 12.345,68 +``` + +### 5.3 Präfix oder Suffix (Währung, Prozent) + +Fügen Sie ein Dollar‑ oder Prozentzeichen direkt in die Maske ein: + +```csharp +NumberFormat = "$#,##0.00"; // → $12,345.68 +NumberFormat = "0.00%"; // → 1,234,568.00% +``` + +> **Hinweis:** Die Maske ist case‑sensitive. `$` und `%` sind literale Symbole; sie beeinflussen nicht den zugrunde liegenden numerischen Wert. + +--- + +## Schritt 6: Vollständiges Beispiel (Kopieren‑und‑Einfügen bereit) + +Unten finden Sie das komplette Programm, das Sie in eine neue Konsolen‑App kopieren können. Es enthält alle Schritte, Kommentare und die abschließende Ausgabe‑Verifikation. + +```csharp +using System; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write raw numeric value to A1. + worksheet.Cells["A1"].PutValue(12345.6789); + + // 3️⃣ Define custom format: thousands separator + two decimals. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + NumberFormat = "#,##0.00" + }; + + // 4️⃣ Export the formatted string. + string result = worksheet.Cells["A1"].ExportString(exportOptions); + + // 5️⃣ Display the outcome. + Console.WriteLine(result); // Output: 12,345.68 + + // Optional: keep console open. + Console.WriteLine("Press any key to exit..."); + Console.ReadKey(); + } +} +``` + +Führen Sie das Programm aus (`dotnet run` im Terminal oder drücken Sie F5 in Visual Studio) und Sie sehen die formatierte Zahl exakt wie gezeigt. + +--- + +## Häufig gestellte Fragen (FAQ) + +**F: Funktioniert das mit älteren Excel‑Versionen?** +A: Ja. Die Formatmaske folgt der nativen Excel‑Zahlenformat‑Syntax, sodass jede Version, die `#,##0.00` versteht, dieselbe Zeichenkette rendert. + +**F: Was, wenn ich einen Zellbereich formatieren muss?** +A: Durchlaufen Sie den gewünschten Bereich und wenden Sie dieselben `ExportTableOptions` auf jede Zelle an, oder setzen Sie die Eigenschaft `Style.Custom` für den Bereich und rufen Sie anschließend `ExportString` für eine einzelne Zelle auf. + +**F: Kann ich direkt nach CSV exportieren, wobei diese Formate angewendet werden?** +A: Absolut. Verwenden Sie `Workbook.Save("output.csv", SaveFormat.CSV);` nachdem Sie das Format für jede Zelle gesetzt haben. Aspose.Cells berücksichtigt den `Style` der Zelle beim Erzeugen von CSV. + +--- + +## Fazit + +Wir haben gezeigt, wie man **Zahl mit Trennzeichen** in C# mithilfe von Aspose.Cells formatiert, von **benutzerdefiniertem Zahlenformat setzen** über **Tausendertrennzeichen hinzufügen**, **Dezimalstellen formatieren** bis hin zum essenziellen **Wie man Zelle formatiert** für den String‑Export. Der Code ist vollständig eigenständig, funktioniert mit .NET 6+ und lässt sich für jede Kultur oder Präzisionsanforderung anpassen. + +Als Nächstes könnten Sie: + +* dieselbe Technik auf Datums‑ und Zeitwerte anwenden (`NumberFormat = "dd‑MMM‑yyyy"`). +* Bulk‑Exporte automatisieren, bei denen jede Spalte eine andere Maske benötigt. +* Die formatierten Zeichenketten in PDF‑Berichte mit Aspose.Words integrieren. + +Probieren Sie das aus, und Sie werden schnell zur Ansprechperson für Tabellen‑Formatierung in Ihrem Team. Viel Spaß beim Coden! ![Screenshot showing formatted number with separator in Aspose.Cells](image-placeholder.png){alt="Formatiertes Zahl mit Trennzeichen angezeigt in Aspose.Cells Ausgabe"} + +{{< /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/german/net/excel-data-import-export/_index.md b/cells/german/net/excel-data-import-export/_index.md index effc2a57cc..bce751662f 100644 --- a/cells/german/net/excel-data-import-export/_index.md +++ b/cells/german/net/excel-data-import-export/_index.md @@ -32,6 +32,10 @@ Als Nächstes steht eine weitere häufige Herausforderung an: DataTable-Zeilen i Erfahren Sie in diesem leicht verständlichen Tutorial, wie Sie mit Aspose.Cells für .NET Daten mit benutzerdefinierter DB-Nummernformatierung in Excel importieren. ### [Verschieben Sie die erste Zeile nach unten, wenn Sie DataTable-Zeilen in Excel einfügen](./shift-first-row-down-when-inserting-cells-datatable-rows-in-excel/) Erfahren Sie, wie Sie mit Aspose.Cells für .NET DataTable-Zeilen in Excel einfügen, ohne die erste Zeile nach unten zu verschieben. Schritt-für-Schritt-Anleitung für mühelose Automatisierung. +### [Excel-Arbeitsmappe in C# erstellen – JSON einfügen und als XLSX speichern](./create-excel-workbook-c-insert-json-and-save-as-xlsx/) +Erfahren Sie, wie Sie mit Aspose.Cells für .NET eine Excel-Arbeitsmappe in C# erstellen, JSON-Daten einfügen und die Datei als XLSX speichern. +### [Excel-Arbeitsmappe in C# erstellen – Währungsformat anwenden und DataTable importieren](./create-excel-workbook-c-apply-currency-format-and-import-dat/) +Erfahren Sie, wie Sie mit Aspose.Cells für .NET eine Excel-Arbeitsmappe in C# erstellen, ein Währungsformat anwenden und Daten aus einer DataTable importieren. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/german/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md b/cells/german/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md new file mode 100644 index 0000000000..665b9846f0 --- /dev/null +++ b/cells/german/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md @@ -0,0 +1,286 @@ +--- +category: general +date: 2026-03-30 +description: Erstellen Sie eine Excel-Arbeitsmappe in C# mit Währungsformatierung. + Erfahren Sie, wie Sie eine DataTable importieren, das Zahlenformat in Excel hinzufügen + und in wenigen Minuten das Währungsformat für eine Spalte anwenden. +draft: false +keywords: +- create excel workbook c# +- format cells currency +- import datatable to excel +- add number format excel +- apply currency format column +language: de +og_description: Erstelle ein Excel‑Arbeitsbuch mit C# und formatiere Zellen sofort + als Währung. Dieses Schritt‑für‑Schritt‑Tutorial zeigt, wie man eine DataTable nach + Excel importiert und das Zahlenformat für eine Spalte hinzufügt. +og_title: Excel-Arbeitsmappe mit C# erstellen – Leitfaden zur Währungsformatierung +tags: +- Aspose.Cells +- C# +- Excel automation +title: Excel-Arbeitsmappe in C# erstellen – Währungsformat anwenden und DataTable + importieren +url: /de/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel-Arbeitsmappe erstellen C# – Währungsformat anwenden und DataTable importieren + +Haben Sie schon einmal **Excel-Arbeitsmappe erstellen C#** benötigt, die bereits wie ein professioneller Bericht aussieht? Vielleicht ziehen Sie Verkaufszahlen aus einer Datenbank und möchten, dass die Preisspalte als Dollar angezeigt wird, ohne Excel manuell zu bearbeiten. Kommt Ihnen das bekannt vor? Sie sind nicht allein – die meisten Entwickler stoßen auf dieses Problem, wenn sie erstmals Excel-Exporte automatisieren. + +In diesem Leitfaden führen wir Sie durch eine vollständige, sofort ausführbare Lösung, die **eine Excel-Arbeitsmappe erstellt C#**, einen `DataTable` importiert und **die Preisspalte als Währung formatiert**. Am Ende haben Sie eine Datei namens `StyledTable.xlsx`, die Sie öffnen können und die schön formatierte Zahlen enthält. Keine zusätzliche Nachbearbeitung erforderlich. + +> **Was Sie lernen werden** +> - Wie man Aspose.Cells in einem .NET‑Projekt einrichtet +> - Wie man **datatable nach excel importiert** mit einem Style‑Array +> - Wie man **Zahlenformat zu excel hinzufügt** für eine bestimmte Spalte +> - Tipps zum Umgang mit mehr Spalten oder verschiedenen Regionen + +> **Voraussetzungen** +> - .NET 6+ (oder .NET Framework 4.6+) installiert +> - Aspose.Cells für .NET NuGet‑Paket (`Install-Package Aspose.Cells`) +> - Grundlegende Kenntnisse in C# und DataTables + +--- + +## Schritt 1: DataTable vorbereiten (datatable nach excel importieren) + +Zuerst benötigen wir einige Beispieldaten. In einer realen Anwendung würden Sie diese Tabelle wahrscheinlich aus einer Datenbankabfrage füllen, aber ein fest codiertes Beispiel hält die Sache einfach. + +```csharp +using System.Data; + +// Create a DataTable with two columns: Product (string) and Price (double) +DataTable dataTable = new DataTable(); +dataTable.Columns.Add("Product", typeof(string)); +dataTable.Columns.Add("Price", typeof(double)); + +// Add a few rows – you can add as many as you like +dataTable.Rows.Add("Apple", 1.23); +dataTable.Rows.Add("Banana", 0.78); +dataTable.Rows.Add("Cherry", 2.50); +``` + +*Warum das wichtig ist*: Der `DataTable` ist die Brücke zwischen Ihren Geschäftsdaten und der Excel‑Datei. Aspose.Cells kann ihn direkt importieren und dabei Spaltennamen sowie Datentypen beibehalten. + +--- + +## Schritt 2: Neues Workbook erstellen (excel workbook c# erstellen) + +Jetzt erstellen wir das eigentliche Excel‑Datei‑Objekt. Denken Sie daran wie an eine leere Leinwand, auf der Sie malen werden. + +```csharp +using Aspose.Cells; + +// Instantiate a fresh workbook – this is the core of create excel workbook c# +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0). You could also add more sheets later. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Pro‑Tipp:** Wenn Sie mehrere Arbeitsblätter benötigen, rufen Sie `workbook.Worksheets.Add()` auf und geben jedem einen aussagekräftigen Namen. + +--- + +## Schritt 3: Währungsstil definieren (Zellenformat Währung) + +Aspose.Cells ermöglicht es Ihnen, ein `Style`‑Objekt zu erstellen, das beschreibt, wie Zellen aussehen sollen. Für Währungen verwenden wir das integrierte Zahlenformat‑ID 164 (`"$#,##0.00"`). + +```csharp +// Create a new style object for the price column +Style priceStyle = workbook.CreateStyle(); +priceStyle.Number = 164; // Built‑in currency format "$#,##0.00" +``` + +*Warum nicht einfach die Formatzeichenkette setzen?* Die Verwendung der integrierten ID gewährleistet Kompatibilität über verschiedene Excel‑Versionen hinweg und vermeidet lokalspezifische Eigenheiten. + +--- + +## Schritt 4: Style‑Array erstellen (Währungsformat auf Spalte anwenden) + +Beim Importieren eines `DataTable` können Sie ein Array von `Style`‑Objekten übergeben – eines pro Spalte. `null` bedeutet „Standardstil verwenden“. Hier wenden wir `priceStyle` nur auf die zweite Spalte an. + +```csharp +// Column 0 (Product) gets the default style, Column 1 (Price) gets the currency style +Style[] columnStyles = { null, priceStyle }; +``` + +Wenn Sie später weitere Spalten hinzufügen, erweitern Sie das Array einfach entsprechend. Die Länge von `columnStyles` muss der Anzahl der zu importierenden Spalten entsprechen, sonst wirft Aspose eine Ausnahme. + +--- + +## Schritt 5: DataTable mit Stilen importieren (datatable nach excel importieren) + +Jetzt geschieht die Magie – unser `DataTable` wird im Arbeitsblatt platziert und die Preisspalte wird sofort als Währung angezeigt. + +```csharp +// Parameters: +// - dataTable: source data +// - true: include column headers +// - startRow: 0 (top of sheet) +// - startColumn: 0 (first column) +// - columnStyles: style array defined above +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +*Was, wenn Sie mehr als zwei Spalten haben?* Erweitern Sie einfach `columnStyles`, sodass jede Spalte den passenden Stil erhält (oder `null` für den Standard). Dies ist der sauberste Weg, **Zahlenformat zu excel hinzuzufügen** selektiv. + +--- + +## Schritt 6: Workbook speichern (excel workbook c# erstellen) + +Abschließend schreiben wir die Datei auf die Festplatte. Wählen Sie einen beliebigen Ordner, in den Sie Schreibzugriff haben. + +```csharp +// Save the workbook as an XLSX file +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +Öffnen Sie `StyledTable.xlsx` in Excel und Sie sollten sehen: + +| Produkt | Preis | +|---------|-------| +| Apple | $1.23 | +| Banana | $0.78 | +| Cherry | $2.50 | + +Die **Preis**‑Spalte ist bereits als Währung formatiert – keine zusätzlichen Schritte erforderlich. + +--- + +## Sonderfälle & Variationen + +### Mehr Spalten, unterschiedliche Formate + +Wenn Sie **Zellen als Währung formatieren** für mehrere Spalten benötigen (z. B. Kosten, Steuer, Gesamt), erstellen Sie für jede einen separaten `Style` und füllen `columnStyles` entsprechend: + +```csharp +Style costStyle = workbook.CreateStyle(); +costStyle.Number = 164; // currency + +Style taxStyle = workbook.CreateStyle(); +taxStyle.Number = 164; + +// Assuming columns: Product, Cost, Tax, Total +Style[] styles = { null, costStyle, taxStyle, priceStyle }; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, styles); +``` + +### Länderspezifische Währung + +Für Euro oder Britisches Pfund verwenden Sie unterschiedliche integrierte IDs (z. B. 165 für `€#,##0.00`). Alternativ können Sie eine benutzerdefinierte Formatzeichenkette setzen: + +```csharp +priceStyle.Custom = "€#,##0.00"; +``` + +### Große Datensätze + +Aspose.Cells kann Millionen von Zeilen verarbeiten, aber der Speicherverbrauch steigt mit der Anzahl der Style‑Objekte. Verwenden Sie eine einzelne `Style`‑Instanz für alle Währungsspalten, um den Speicherbedarf gering zu halten. + +### Fehlende Stile + +Wenn `columnStyles` kürzer ist als die Anzahl der Spalten, wendet Aspose den Standardstil auf die verbleibenden Spalten an. Das ist praktisch, wenn Sie nur an wenigen Spalten interessiert sind. + +--- + +## Vollständiges Beispiel (Alle Schritte kombiniert) + +Unten finden Sie das vollständige Programm, das Sie in eine Konsolen‑App kopieren können. Es enthält alle besprochenen Teile sowie einige hilfreiche Kommentare. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // Step 1: Build sample DataTable (import datatable to excel) + // ------------------------------------------------- + DataTable dataTable = new DataTable(); + dataTable.Columns.Add("Product", typeof(string)); + dataTable.Columns.Add("Price", typeof(double)); + dataTable.Rows.Add("Apple", 1.23); + dataTable.Rows.Add("Banana", 0.78); + dataTable.Rows.Add("Cherry", 2.50); + // You can add as many rows as you like here. + + // ------------------------------------------------- + // Step 2: Create a new workbook (create excel workbook c#) + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // Step 3: Define a currency style (format cells currency) + // ------------------------------------------------- + Style priceStyle = workbook.CreateStyle(); + priceStyle.Number = 164; // "$#,##0.00" – built‑in currency format + + // ------------------------------------------------- + // Step 4: Build the style array (apply currency format column) + // ------------------------------------------------- + // First column gets default style (null), second column uses priceStyle. + Style[] columnStyles = { null, priceStyle }; + + // ------------------------------------------------- + // Step 5: Import the DataTable with the style array + // ------------------------------------------------- + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // ------------------------------------------------- + // Step 6: Save the workbook to disk + // ------------------------------------------------- + string outputPath = @"YOUR_DIRECTORY\StyledTable.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } +} +``` + +**Erwartetes Ergebnis:** Beim Öffnen von `StyledTable.xlsx` wird die `Price`‑Spalte mit einem Dollarzeichen und zwei Dezimalstellen angezeigt, genau wie die Anweisung `format cells currency` verlangt. + +--- + +## Häufig gestellte Fragen + +**F: Funktioniert das mit .NET Core?** +A: Absolut. Aspose.Cells ist .NET‑standard‑konform, sodass Sie .NET 5, .NET 6 oder später ohne Änderungen anvisieren können. + +**F: Was, wenn mein DataTable 10 Spalten hat, ich aber nur Spalte 5 formatieren möchte?** +A: Erstellen Sie ein `Style[]` mit der Länge 10, füllen Sie die Positionen 0‑4 und 6‑9 mit `null` und setzen Sie Ihren benutzerdefinierten Stil an Index 4 (nullbasiert). Aspose respektiert jeden Eintrag. + +**F: Kann ich die Kopfzeile ausblenden?** +A: Nach dem Import setzen Sie `worksheet.Cells.Rows[0].Hidden = true;` oder übergeben einfach `false` für den Parameter `includeColumnNames` in `ImportDataTable`. + +--- + +## Fazit + +Wir haben gerade **eine Excel-Arbeitsmappe erstellt C#**, einen `DataTable` importiert und **eine Währungsformat‑Spalte** mit Aspose.Cells angewendet. Die wichtigsten Schritte – Daten vorbereiten, Stil definieren, Style‑Array erstellen, mit `ImportDataTable` importieren und speichern – decken das Kernstück der meisten Excel‑Automatisierungsaufgaben ab. + +Von hier aus können Sie folgendes erkunden: + +- **Zahlenformat zu excel hinzufügen** für Daten oder Prozentsätze +- Export mehrerer Arbeitsblätter in einer einzigen Datei +- Verwendung von **format cells currency** mit länderspezifischen Symbolen +- Automatisierung der Diagrammerstellung basierend auf denselben Daten + +Probieren Sie diese aus, und Sie werden schnell zur Ansprechperson für Excel‑Reporting in Ihrem Team. Haben Sie eine Variante, die Sie teilen möchten? Hinterlassen Sie unten einen Kommentar – happy coding! + +![Excel-Arbeitsmappe erstellen C# Screenshot](image.png "Excel-Arbeitsmappe erstellen C#") + +{{< /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/german/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md b/cells/german/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md new file mode 100644 index 0000000000..94a3481a24 --- /dev/null +++ b/cells/german/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md @@ -0,0 +1,249 @@ +--- +category: general +date: 2026-03-30 +description: Erstellen Sie schnell eine Excel-Arbeitsmappe in C# durch Einfügen von + JSON-Daten und speichern Sie die Arbeitsmappe als XLSX. Lernen Sie, wie man Excel + aus JSON generiert, JSON in Excel schreibt und JSON in Excel einfügt. +draft: false +keywords: +- create excel workbook c# +- save workbook as xlsx +- generate excel from json +- write json to excel +- insert json into excel +language: de +og_description: Erstellen Sie schnell eine Excel‑Arbeitsmappe in C# durch Einfügen + von JSON‑Daten und Speichern der Arbeitsmappe als XLSX. Folgen Sie dieser Schritt‑für‑Schritt‑Anleitung, + um Excel aus JSON zu generieren. +og_title: Excel-Arbeitsmappe in C# erstellen – JSON einfügen und als XLSX speichern +tags: +- Aspose.Cells +- C# +- Excel automation +title: Excel-Arbeitsmappe in C# erstellen – JSON einfügen und als XLSX speichern +url: /de/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel-Arbeitsmappe in C# erstellen – JSON einfügen und als XLSX speichern + +Haben Sie jemals **Excel-Arbeitsmappe in C# erstellen** und JSON direkt in eine Zelle einfügen müssen? Sie sind nicht der Einzige – Entwickler stehen häufig vor demselben Problem, wenn sie API‑Payloads oder Konfigurationsdateien haben, die für Berichte oder zum Teilen in eine Tabellenkalkulation gelangen müssen. + +Die gute Nachricht ist, dass Sie mit Aspose.Cells das in wenigen Zeilen erledigen können, **Arbeitsmappe als XLSX speichern**, und den gesamten Prozess typensicher halten. In diesem Tutorial werden wir **Excel aus JSON generieren**, **JSON nach Excel schreiben** und Ihnen die genauen Schritte zeigen, um **JSON in Excel einzufügen**, ohne umständliche String‑Verkettungen. + +## Was dieser Leitfaden abdeckt + +Wir gehen folgende Punkte durch: + +1. Einrichten einer neuen Arbeitsmappe. +2. Hinzufügen eines Smart Markers, der JSON erwartet. +3. Übergeben eines JSON‑Arrays an den Marker. +4. Anpassen von `SmartMarkerOptions`, damit das JSON in einer Zelle bleibt. +5. Speichern der Datei als XLSX‑Arbeitsmappe. + +Am Ende haben Sie eine einsatzbereite Datei `JsonSingleCell.xlsx` und ein solides Muster, das Sie für jedes JSON‑zu‑Excel‑Szenario wiederverwenden können. Keine externen Dienste, nur reines C# und die Aspose.Cells‑Bibliothek. + +**Voraussetzungen** + +- .NET 6+ (oder .NET Framework 4.6+). +- Visual Studio 2022 oder eine beliebige C#‑kompatible IDE. +- NuGet‑Paket `Aspose.Cells` (Kostenlose Testversion oder lizenzierte Version). + +Wenn Sie diese haben, lassen Sie uns loslegen – keine zusätzliche Einrichtung erforderlich. + +--- + +## Schritt 1: Eine neue Arbeitsmappe in C# erstellen + +Das erste, was Sie benötigen, ist ein leeres Workbook‑Objekt. Stellen Sie sich das als eine neue Excel‑Datei vor, die auf Daten wartet. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is your empty Excel file +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; +``` + +**Warum das wichtig ist:** +`Workbook` ist der Einstiegspunkt für alle Excel‑Operationen. Wenn Sie es zuerst erstellen, stellen Sie sicher, dass der nachfolgende **Arbeitsmappe als xlsx speichern**‑Aufruf ein konkretes Objekt zum Serialisieren hat. + +> **Pro Tipp:** Wenn Sie planen, mit mehreren Arbeitsblättern zu arbeiten, können Sie diese jetzt mit `workbook.Worksheets.Add()` hinzufügen. + +--- + +## Schritt 2: Einen Smart Marker platzieren, der JSON erwartet + +Smart Markers sind Platzhalter, die Aspose.Cells zur Laufzeit ersetzt. Hier geben wir an, dass nach einer JSON‑Zeichenkette namens `data` gesucht werden soll. + +```csharp +// Put a Smart Marker in cell A1 – {{data:json}} tells Aspose to expect JSON +worksheet.Cells["A1"].PutValue("{{data:json}}"); +``` + +**Warum das wichtig ist:** +Das Suffix `:json` teilt der Engine mit, dass der eingehende Wert JSON und kein Klartext ist. Das ist der Schlüssel, um **JSON nach Excel zu schreiben** ohne manuelles Parsen. + +--- + +## Schritt 3: Das JSON‑Array definieren + +Jetzt erstellen wir das JSON, das wir einfügen möchten. Zur Demonstration verwenden wir eine einfache Liste von Personen. + +```csharp +// Sample JSON array – could come from an API, file, or DB +string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; +``` + +**Randfall:** +Wenn Ihr JSON doppelte Anführungszeichen enthält, stellen Sie sicher, dass sie escaped sind (wie gezeigt) oder verwenden Sie einen wörtlichen String (`@"..."`), um Kompilierfehler zu vermeiden. + +--- + +## Schritt 4: Smart Marker‑Optionen konfigurieren – Das Array ganz behalten + +Standardmäßig würde Aspose versuchen, das Array über Zeilen zu verteilen. Wir möchten, dass der gesamte JSON‑String in einer einzigen Zelle bleibt, was ideal für **JSON in Excel einfügen**‑Szenarien ist, bei denen der Empfänger das JSON später parsieren wird. + +```csharp +SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions +{ + // Treat the whole array as a single cell value + ArrayAsSingle = true +}; +``` + +**Warum das wichtig ist:** +`ArrayAsSingle = true` verhindert die Zeilenerweiterung und liefert Ihnen einen sauberen JSON‑Blob in einer einzigen Zelle. Das ist entscheidend, wenn die Tabelle ein Transportformat und kein Bericht ist. + +--- + +## Schritt 5: Den Smart Marker mit den JSON‑Daten verarbeiten + +Jetzt binden wir das JSON an den Marker und lassen Aspose die schwere Arbeit erledigen. + +```csharp +// Process the marker – the anonymous object maps "data" to our JSON string +worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); +``` + +**Was im Hintergrund passiert:** +Aspose wertet den Platzhalter `{{data:json}}` aus, serialisiert die Zeichenkette `jsonData` und schreibt sie unter Berücksichtigung der von uns gesetzten Optionen in Zelle A1. + +--- + +## Schritt 6: Die Arbeitsmappe als XLSX‑Datei speichern + +Abschließend schreiben wir die Arbeitsmappe auf die Festplatte. Hier kommt **Arbeitsmappe als xlsx speichern** zum Einsatz. + +```csharp +// Save the workbook – the extension determines the format (XLSX here) +workbook.Save("JsonSingleCell.xlsx"); +``` + +**Ergebnis:** +Öffnen Sie `JsonSingleCell.xlsx` in Excel, und Sie sehen das JSON‑Array genau so, wie wir es definiert haben, ordentlich in Zelle A1 platziert. + +--- + +## Vollständiges, ausführbares Beispiel + +Unten finden Sie das komplette Programm, das Sie in eine Konsolen‑App kopieren können. Es enthält alle oben genannten Schritte und läuft sofort (vorausgesetzt, das Aspose.Cells‑NuGet‑Paket ist installiert). + +```csharp +using System; +using Aspose.Cells; + +namespace JsonToExcelDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add a Smart Marker that expects JSON + worksheet.Cells["A1"].PutValue("{{data:json}}"); + + // 3️⃣ Define the JSON array + string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; + + // 4️⃣ Configure options – keep array as a single cell value + SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions + { + ArrayAsSingle = true + }; + + // 5️⃣ Process the marker with the JSON payload + worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); + + // 6️⃣ Save the workbook as XLSX + workbook.Save("JsonSingleCell.xlsx"); + + Console.WriteLine("Excel file created successfully! Check JsonSingleCell.xlsx."); + } + } +} +``` + +**Erwartete Ausgabe in Excel** + +| A | +|---| +| `[{"Name":"John","Age":30},{"Name":"Jane","Age":28}]` | + +Diese einzelne Zelle enthält nun ein vollkommen gültiges JSON‑Array, das für die nachgelagerte Verarbeitung bereitsteht. + +--- + +## Häufige Fragen & Randfälle + +### Was, wenn ich das JSON über Zeilen verteilt benötige? + +Setzen Sie `ArrayAsSingle = false` (der Standard). Aspose erstellt für jedes Array‑Element eine Zeile und ordnet die Objekt‑Eigenschaften den Spalten zu. Das ist praktisch, wenn Sie eine tabellarische Ansicht statt eines rohen JSON‑Strings wünschen. + +### Kann ich eine JSON‑Datei anstelle eines fest codierten Strings verwenden? + +Absolut. Lesen Sie die Datei in einen String ein: + +```csharp +string jsonData = File.ReadAllText("people.json"); +``` + +Dann übergeben Sie `jsonData` an denselben `Process`‑Aufruf. Der Rest der Pipeline bleibt unverändert. + +### Funktioniert das mit großen JSON‑Payloads? + +Ja, aber achten Sie auf den Speicherverbrauch. Bei sehr großen Arrays sollten Sie in Erwägung ziehen, die Daten zu streamen oder direkt in Zeilen zu schreiben (`ArrayAsSingle = false`), um eine einzelne riesige Zelle zu vermeiden, mit der Excel Probleme haben könnte. + +### Ist das erzeugte XLSX mit älteren Excel‑Versionen kompatibel? + +Das `.xlsx`‑Format basiert auf Office Open XML und funktioniert ab Excel 2007. Wenn Sie das alte `.xls`‑Format benötigen, ändern Sie den Speicheraufruf: + +```csharp +workbook.Save("JsonSingleCell.xls", SaveFormat.Excel97To2003); +``` + +## Pro‑Tipps für die Arbeit mit JSON und Excel + +- **JSON zuerst validieren** – verwenden Sie `System.Text.Json.JsonDocument.Parse(jsonData)`, um fehlerhafte Eingaben früh zu erkennen. +- **Sonderzeichen escapen** – enthält Ihr JSON Zeilenumbrüche, erscheinen diese als literal `\n` in der Zelle; Sie können sie vor der Verarbeitung durch `Environment.NewLine` ersetzen. +- **Smart Marker wiederverwenden** – Sie können mehrere Marker im selben Blatt platzieren, die jeweils auf eine andere JSON‑Eigenschaft zeigen. +- **Mit Formeln kombinieren** – sobald das JSON in einer Zelle ist, können Sie Excel‑Funktion `FILTERXML` (in neueren Versionen) verwenden, um es sofort zu parsen. + +## Fazit + +Sie wissen jetzt, wie man **Excel‑Arbeitsmappe in C# erstellt**, ein JSON‑Payload einbettet und **Arbeitsmappe als xlsx speichert** mit Aspose.Cells. Dieses Muster ermöglicht es Ihnen, **Excel aus JSON zu generieren**, **JSON nach Excel zu schreiben** und **JSON in Excel einzufügen** mit nur wenigen Codezeilen, wodurch der Datenaustausch zwischen Diensten und Analysten mühelos wird. + +Bereit für den nächsten Schritt? Versuchen Sie, das JSON‑Array in eine richtige Tabelle zu konvertieren (setzen Sie `ArrayAsSingle = false`) oder experimentieren Sie mit der Formatierung des Blatts nach dem Einfügen. Der gleiche Ansatz funktioniert für CSV, XML oder sogar benutzerdefinierte Objekte – passen Sie einfach den Smart‑Marker‑Typ an. + +Viel Spaß beim Coden und fühlen Sie sich frei zu experimentieren! Wenn Sie auf Probleme stoßen, hinterlassen Sie unten einen Kommentar oder schauen Sie in die offiziellen Aspose‑Dokumente für tiefergehende Informationen zu Smart Markers. + +{{< /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/german/net/excel-workbook/_index.md b/cells/german/net/excel-workbook/_index.md index fc426a9323..0afb3cdb2e 100644 --- a/cells/german/net/excel-workbook/_index.md +++ b/cells/german/net/excel-workbook/_index.md @@ -86,6 +86,7 @@ Warum also nicht diese Chance nutzen, Ihre Excel-Kenntnisse zu verbessern? Jedes | [Druckvorschau der Arbeitsmappe](./workbook-print-preview/) | Erfahren Sie, wie Sie mit Aspose.Cells für .NET Druckvorschauen für Excel-Dateien erstellen. Lernen Sie die Programmierschritte in einem detaillierten, leicht verständlichen Tutorial. | | [Arbeiten mit Inhaltstypeigenschaften](./working-with-content-type-properties/) | Erfahren Sie, wie Sie mit Aspose.Cells für .NET Inhaltstypeigenschaften für eine verbesserte Excel-Metadatenverwaltung verwenden. Folgen Sie dieser einfachen Schritt-für-Schritt-Anleitung. | | [Xades Signature-Unterstützung](./xades-signature-support/) | Erfahren Sie in dieser Schritt-für-Schritt-Anleitung, wie Sie mit Aspose.Cells für .NET Xades-Signaturen zu Excel-Dateien hinzufügen. Sichern Sie Ihre Dokumente. | +| [Masterblatt in C# erstellen – Vollständiger Aspose.Cells Leitfaden](./create-master-sheet-in-c-complete-aspose-cells-guide/) | Erfahren Sie, wie Sie mit Aspose.Cells für .NET ein Masterblatt in C# erstellen und Daten aus mehreren Arbeitsblättern konsolidieren. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/german/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md b/cells/german/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md new file mode 100644 index 0000000000..3eccee5f91 --- /dev/null +++ b/cells/german/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-03-30 +description: Erstellen Sie ein Masterblatt mit Aspose.Cells in C#. Erfahren Sie, wie + Sie ein Excel‑Arbeitsbuch in C# erstellen, doppelte Blattnamen zulassen und das + Arbeitsbuch in wenigen Schritten als XLSX speichern. +draft: false +keywords: +- create master sheet +- create excel workbook c# +- save workbook as xlsx +- allow duplicate sheet names +language: de +og_description: Erstellen Sie ein Masterblatt mit Aspose.Cells in C#. Dieser Leitfaden + zeigt, wie man ein Excel‑Arbeitsbuch in C# erstellt, doppelte Blattnamen zulässt + und das Arbeitsbuch als XLSX speichert. +og_title: Masterblatt in C# erstellen – Vollständiger Aspose.Cells Leitfaden +tags: +- Aspose.Cells +- C# +- Excel automation +title: Masterblatt in C# erstellen – Vollständiger Aspose.Cells‑Leitfaden +url: /de/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Masterblatt in C# erstellen – Vollständiger Aspose.Cells Leitfaden + +Haben Sie jemals ein **Masterblatt** in einer Excel-Datei erstellen müssen, waren sich aber nicht sicher, wie Sie mit einer Menge Detailblätter umgehen sollen, die denselben Basisnamen teilen? Sie sind nicht allein. In vielen Reporting‑Szenarien landen Sie mit Dutzenden Detail‑Tabs, und das Standardverhalten der meisten Bibliotheken ist, eine Ausnahme zu werfen, wenn zwei Blätter denselben Namen erhalten würden. + +Glücklicherweise macht Aspose.Cells das Erstellen eines **Masterblatts**, das Konfigurieren der Engine zum **Erlauben doppelter Blattnamen** und das **Speichern der Arbeitsmappe als XLSX** zu einem Kinderspiel – alles aus sauberem C#‑Code. In diesem Tutorial führen wir Sie durch ein vollständig ausführbares Beispiel, erklären, warum jede Zeile wichtig ist, und geben Ihnen eine Handvoll Tipps, die Sie direkt in Ihre eigenen Projekte übernehmen können. + +> **Was Sie am Ende wissen werden** +> * Wie man ein **Excel‑Arbeitsbuch C#‑style** mit Aspose.Cells erstellt. +> * Wie man einen Smart‑Marker einbettet, der für jede Datenzeile ein Detailblatt erzeugt. +> * Wie man `DetailSheetNewName = DuplicateAllowed` setzt, sodass die Bibliothek automatisch ein numerisches Suffix anhängt. +> * Wie man **die Arbeitsmappe als XLSX** auf die Festplatte speichert, ohne weitere Schritte. + +Keine externe Dokumentation nötig – alles, was Sie brauchen, finden Sie hier. + +--- + +## Voraussetzungen + +Bevor wir loslegen, stellen Sie sicher, dass Sie folgendes haben: + +| Requirement | Why it matters | +|-------------|----------------| +| .NET 6.0 or later (or .NET Framework 4.7+) | Aspose.Cells 23.x+ richtet sich an diese Laufzeiten. | +| Visual Studio 2022 (or any C# IDE) | Für einfache Projekterstellung und Debugging. | +| Aspose.Cells for .NET NuGet package (`Install-Package Aspose.Cells`) | Die Bibliothek, die die gesamte Smart‑Marker‑Magie ermöglicht. | +| Basic C# knowledge | Sie verstehen die Syntax ohne einen Schnellkurs. | + +Falls Ihnen etwas davon fehlt, fügen Sie es jetzt hinzu – es hat keinen Sinn, mit einer halb fertigen Umgebung weiterzumachen. + +--- + +## Schritt 1: Masterblatt mit Aspose.Cells erstellen + +Das erste, was wir tun, ist ein **Excel‑Arbeitsbuch C#‑style** zu erstellen, indem wir ein `Workbook`‑Objekt instanziieren. Dieses Objekt enthält bereits ein Standard‑Arbeitsblatt, das wir in „Master“ umbenennen und als Vorlage für alle Detailseiten verwenden werden. + +```csharp +using Aspose.Cells; + +// Step 1: Initialise a new workbook – this automatically gives us one sheet +Workbook workbook = new Workbook(); + +// Grab the first (and only) worksheet that comes with a fresh workbook +Worksheet masterSheet = workbook.Worksheets[0]; + +// Give it a meaningful name – this will be our master sheet +masterSheet.Name = "Master"; +``` + +*Warum das Blatt umbenennen?* +Ein Standardname wie „Sheet1“ vermittelt keine Absicht, und später, wenn Sie die Datei durchsuchen, möchten Sie das Master‑Tab sofort erkennbar haben. Das Benennen verhindert außerdem versehentliche Kollisionen, wenn Sie später weitere Blätter hinzufügen. + +--- + +## Schritt 2: Den Smart‑Marker vorbereiten, der Detailblätter erzeugt + +Smart‑Marker sind Platzhalter, die Aspose.Cells zur Laufzeit durch Daten ersetzt. Indem wir `{{#detail:DataSheetName}}` in Zelle **A1** einfügen, sagen wir der Engine: „Für jeden Datensatz in der Datenquelle ein neues Blatt erstellen, dessen Name aus dem Feld `DataSheetName` stammt.“ + +```csharp +// Step 2: Insert a smart‑marker into cell A1. +// The marker #detail tells Aspose.Cells to generate a new sheet per data row. +masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); +``` + +Betrachten Sie den Marker als eine kleine Anweisungskarte, die auf dem Arbeitsblatt befestigt ist. Wenn der Prozessor läuft, liest er die Karte, holt den entsprechenden Wert aus der Datenquelle und klont dann das Masterblatt in einen neuen Tab. + +--- + +## Schritt 3: Datenquelle erstellen – Blattnamen absichtlich duplizieren + +Im echten Leben würden Sie das vielleicht aus einer Datenbank holen, aber für die Demo verwenden wir ein In‑Memory‑Array an anonymen Objekten. Beachten Sie, dass beide Elemente denselben Basisnamen „Detail“ verwenden; dies ist das Szenario, in dem **allow duplicate sheet names** entscheidend wird. + +```csharp +// Step 3: Create a data source with two items that share the same base sheet name. +var dataSource = new[] +{ + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } +}; +``` + +Wenn Sie dies ohne besondere Optionen versuchen, würde Aspose.Cells in der zweiten Iteration eine Ausnahme auslösen, weil ein Blatt namens „Detail“ bereits existiert. Deshalb ist der nächste Schritt wichtig. + +--- + +## Schritt 4: Doppelte Blattnamen aktivieren + +Aspose.Cells stellt `SmartMarkerOptions.DetailSheetNewName` bereit. Wenn man es auf `DetailSheetNewName.DuplicateAllowed` setzt, wird die Engine angewiesen, bei einem Namenskonflikt automatisch ein numerisches Suffix (z. B. „Detail_1“) anzuhängen. + +```csharp +// Step 4: Configure SmartMarker options to permit duplicate sheet names. +var smartMarkerOptions = new SmartMarkerOptions +{ + // This makes the library rename clashes to "Detail_1", "Detail_2", etc. + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed +}; +``` + +*Warum nicht jeder Zeile manuell einen eindeutigen Namen geben?* +Weil die Quelldaten oft keine Eindeutigkeit garantieren, besonders wenn Benutzer freien Text eingeben. Die Bibliothek das Suffix verwalten zu lassen, eliminiert eine ganze Klasse von Fehlern. + +--- + +## Schritt 5: Smart‑Marker verarbeiten und Detailblätter erzeugen + +Jetzt rufen wir `SmartMarkers.Process` auf und übergeben sowohl die Datenquelle als auch die gerade konfigurierten Optionen. Die Methode durchläuft jedes Element, klont das Masterblatt und benennt die Kopie gemäß dem Feld `DataSheetName` um (plus ein Suffix, falls nötig). + +```csharp +// Step 5: Run the smart‑marker processor – this creates the detail sheets. +masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); +``` + +Nach der Ausführung dieser Zeile haben Sie drei Tabs in der Arbeitsmappe: + +1. **Master** – die ursprüngliche Vorlage. +2. **Detail** – erstes erzeugtes Blatt (kein Suffix nötig). +3. **Detail_1** – zweites erzeugtes Blatt (Suffix automatisch hinzugefügt). + +Sie können dies überprüfen, indem Sie die Datei in Excel öffnen; Sie sehen die beiden Detailblätter nebeneinander. + +--- + +## Schritt 6: Arbeitsmappe als XLSX‑Datei speichern + +Abschließend speichern wir die Datei auf die Festplatte. Die `Save`‑Methode wählt automatisch das XLSX‑Format, wenn Sie ihr eine `.xlsx`‑Erweiterung geben. + +```csharp +// Step 6: Persist the workbook – this is the moment we finally “save workbook as XLSX”. +string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; +workbook.Save(outputPath); +``` + +**Pro‑Tipp:** Wenn Sie die Datei direkt in eine Web‑Antwort streamen müssen (z. B. ASP.NET Core), verwenden Sie `workbook.Save(stream, SaveFormat.Xlsx)` anstelle eines Dateipfads. + +--- + +## Vollständiges funktionierendes Beispiel + +Unten finden Sie das vollständige, sofort ausführbare Programm. Kopieren Sie es in eine Konsolen‑App, drücken Sie F5 und öffnen Sie die erzeugte Datei, um das Ergebnis zu sehen. + +```csharp +using System; +using Aspose.Cells; + +namespace MasterSheetDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook and rename the default sheet to "Master" + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert a smart‑marker that will generate a detail sheet per data row + masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); + + // 3️⃣ Prepare a data source where two rows share the same sheet name + var dataSource = new[] + { + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } + }; + + // 4️⃣ Allow duplicate sheet names – the library will add "_1", "_2", … + var smartMarkerOptions = new SmartMarkerOptions + { + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed + }; + + // 5️⃣ Process the smart‑markers; this creates the detail sheets + masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); + + // 6️⃣ Save the workbook as an XLSX file + string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Erwartetes Ergebnis:** Öffnen Sie `DuplicateDetailSheets.xlsx` und Sie sehen drei Arbeitsblätter – `Master`, `Detail` und `Detail_1`. Jedes Detailblatt ist eine exakte Kopie des Masters, bereit, später mit zeilenspezifischen Daten gefüllt zu werden. + +--- + +## Häufige Fragen & Sonderfälle + +### Was ist, wenn ich mehr als zwei doppelte Blätter benötige? + +Kein Problem. Die gleiche `DuplicateAllowed`‑Einstellung fügt weiterhin inkrementelle Zahlen (`Detail_2`, `Detail_3`, …) hinzu, bis jede Zeile ihren eigenen Tab hat. + +### Kann ich das Suffix‑Format anpassen? + +Standardmäßig verwendet Aspose.Cells einen Unterstrich gefolgt von einer numerischen Index. Wenn Sie ein anderes Muster benötigen (z. B. „Detail‑A“, „Detail‑B“), müssen Sie die Arbeitsmappe nach dem Ausführen von `Process` nachbearbeiten, indem Sie über `workbook.Worksheets` iterieren und nach Bedarf umbenennen. + +### Funktioniert dieser Ansatz bei großen Datenmengen (Hunderte von Zeilen)? + +Ja, aber achten Sie auf den Speicherverbrauch. Jedes erzeugte Blatt ist eine vollständige Kopie des Masters, sodass eine massive Zeilenanzahl die Dateigröße schnell vergrößern kann. Wenn Sie nur wenige Zeilen pro Blatt benötigen, sollten Sie `SmartMarkerOptions.RemoveEmptyRows = true` verwenden, um überflüssige Zellen zu entfernen. + +### Ist die erzeugte Datei wirklich eine XLSX‑Datei? + +Absolut. Die `Save`‑Methode schreibt das Open‑XML‑Paket, das Excel erwartet. Sie können die Datei sogar mit LibreOffice oder Google Sheets öffnen, ohne eine Konvertierung vorzunehmen. + +--- + +## Tipps für produktionsreife Code + +| Tip | Why it matters | +|-----|----------------| +| **Dispose `Workbook + +{{< /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/german/net/formulas-functions/_index.md b/cells/german/net/formulas-functions/_index.md index 026c1bcf0c..9735c76729 100644 --- a/cells/german/net/formulas-functions/_index.md +++ b/cells/german/net/formulas-functions/_index.md @@ -40,126 +40,48 @@ Mit diesen Tutorials lernen Sie Folgendes: ## Tutorials zu Formeln und Funktionen ### [Extrahieren Sie Formeltext in .NET-Arbeitsmappen mit Aspose.Cells](./aspose-cells-formula-text-net) -Erfahren Sie, wie Sie mit Aspose.Cells in .NET programmgesteuert Formeltext aus Excel-Dateien extrahieren. Ideal für die Prüfung und Dokumentation der in Tabellenkalkulationen eingebetteten Formellogik. ### [Automatisieren Sie Excel-Aufgaben mit Aspose.Cells .NET: Legen Sie Formeln in Bereichen fest](./aspose-cells-net-set-formulas-ranges) -Erfahren Sie, wie Sie das Festlegen von Formeln in Bereichen mit Aspose.Cells für .NET automatisieren. Optimieren Sie Ihre Excel-Workflows effizient mit C#, indem Sie dieselbe Formel gleichzeitig auf mehrere Zellen anwenden. ### [Effizienter CSV-Import mit Formeln mithilfe des Aspose.Cells .NET-Handbuchs](./csv-imports-formulas-aspose-cells-net-guide) -Erfahren Sie, wie Sie CSV-Dateien mit komplexen Formeln mit Aspose.Cells für .NET ohne Funktionsverlust in Excel importieren. Behalten Sie die Formellogik beim Datenimport bei. ### [Anpassen von Zellformeln in Aspose.Cells .NET: Handbuch zu Globalisierungseinstellungen](./custom-aspose-cells-net-globalization-settings) -Erfahren Sie, wie Sie Zellformeln mit Aspose.Cells .NET anpassen, insbesondere mit Globalisierungseinstellungen für mehrsprachige Anwendungen. Ein umfassender Leitfaden für Entwickler, die mit internationalen Formelformaten arbeiten. ### [Formeln in Excel mit Aspose.Cells .NET anzeigen: Ein umfassender Leitfaden für effizientes Arbeitsmappenmanagement](./display-excel-formulas-aspose-cells-net) -Erfahren Sie, wie Sie mit Aspose.Cells .NET Formeln effizient in Excel-Arbeitsmappen anzeigen. Diese Anleitung behandelt die Einrichtung, die Bearbeitung von Arbeitsmappen und praktische Anwendungen zur Formelprüfung und -dokumentation. ### [Implementieren dynamischer Excel-Formeln und ComboBoxen mit Aspose.Cells für .NET](./dynamic-excel-formulas-combobox-aspose-cells-net) -Erfahren Sie, wie Sie dynamische Excel-Berichte mit Aspose.Cells für .NET automatisieren. Erstellen Sie benannte Bereiche, fügen Sie ComboBox-Steuerelemente hinzu und generieren Sie responsive Formeln, die basierend auf Benutzerauswahl aktualisiert werden. ### [Excel-Automatisierung: Aspose.Cells .NET für Formeln](./excel-automation-aspose-cells-net-formulas) -Meistern Sie die Automatisierung von Excel-Formeln mit Aspose.Cells für .NET. Dieses Tutorial behandelt das programmgesteuerte Erstellen, Berechnen und Optimieren von Formeln für effiziente Tabellenkalkulationsvorgänge. ### [Excel-Automatisierung mit Aspose.Cells .NET: Arbeitsmappen- und Formelberechnungen meistern](./excel-automation-aspose-cells-net-workbook-formulas) -Erfahren Sie, wie Sie Excel-Aufgaben mit Aspose.Cells für .NET automatisieren. Erstellen Sie Arbeitsmappen, wenden Sie Formeln wie IFNA und SVERWEIS an und optimieren Sie Ihre Datenprozesse effizient, ohne Excel installieren zu müssen. ### [Direkte Berechnungsformeln in Excel mit Aspose.Cells für .NET: Ein umfassender Leitfaden](./excel-direct-calculation-aspose-cells-dotnet) -Erfahren Sie, wie Sie mit Aspose.Cells für .NET effizient direkte Berechnungen in Excel durchführen. Automatisieren Sie Ihre Formelverarbeitung und verbessern Sie das Datenmanagement mit On-Demand-Berechnungsfunktionen. ### [Excel-Formelsuche mit Aspose.Cells für .NET](./excel-formula-search-aspose-cells-net) -Erfahren Sie, wie Sie mit Aspose.Cells für .NET in Excel-Arbeitsmappen nach bestimmten Formeln suchen. Dieses Tutorial behandelt Mustervergleich, Formellokalisierung und Extraktionstechniken zum Auffinden von Formeln in Arbeitsblättern. ### [Excel-Warnungsbehandlung in .NET mit Aspose.Cells-Rückrufen: Ein umfassender Leitfaden](./excel-warning-handling-net-aspose-cells-callbacks) -Erfahren Sie, wie Sie Excel-Warnungen mit Aspose.Cells für .NET verwalten. Implementieren Sie IWarningCallback und verbessern Sie die Fehlerbehandlung Ihrer Anwendung bei Formelberechnungsproblemen und anderen Warnszenarien. ### [Erweitern Sie Excel mit Aspose.Cells: Registrieren und Aufrufen benutzerdefinierter Funktionen (UDFs) in .NET](./extend-excel-aspose-cells-register-call-udfs) -Erfahren Sie, wie Sie Excel-Arbeitsmappen durch die Registrierung und den Aufruf von UDFs mit Aspose.Cells für .NET optimieren. Beherrschen Sie benutzerdefinierte Funktionen und steigern Sie Ihre Datenverarbeitungseffizienz mit Ihren eigenen Berechnungsroutinen. ### [Suchen und Verwalten von Formelzellen in Excel mit Aspose.Cells für .NET](./find-formula-cells-in-excel-using-aspose-cells-net) -Erfahren Sie, wie Sie mit Aspose.Cells für .NET Formelzellen in Excel-Arbeitsmappen effizient finden. Diese Anleitung behandelt Einrichtung, Verwendung und Leistungsoptimierung zum Auffinden und Verwalten von Zellen mit Formeln. ### [Implementieren benutzerdefinierter Berechnungen in Aspose.Cells für .NET: Ein umfassender Leitfaden](./guide-implement-custom-calculations-aspose-cells-dotnet) -Erfahren Sie, wie Sie Ihre Excel-ähnlichen Berechnungen mit benutzerdefinierter Logik mithilfe von Aspose.Cells für .NET verbessern. Dieser Leitfaden behandelt Einrichtung, Implementierung und praktische Anwendungen zur Erweiterung der Formelfunktionen. ### [So implementieren Sie benutzerdefinierte Funktionen in Aspose.Cells für .NET: Eine Schritt-für-Schritt-Anleitung](./implement-custom-functions-aspose-cells-net) -Erfahren Sie, wie Sie mit Aspose.Cells für .NET benutzerdefinierte Funktionen in Excel erstellen und implementieren. Erweitern Sie Ihre Tabellenkalkulationen mit maßgeschneiderten Berechnungen, die über die integrierten Excel-Funktionen hinausgehen. ### [So implementieren Sie benannte Bereichsformeln in .NET mit Aspose.Cells für die Excel-Automatisierung](./implement-named-range-formulas-net-aspose-cells) -Erfahren Sie, wie Sie mit Aspose.Cells für .NET Formeln für benannte Bereiche in lokalisierten Excel-Lösungen automatisieren. Optimieren Sie Ihre Arbeitsabläufe und steigern Sie die Produktivität mit Formelreferenzen über benannte Bereiche. ### [Meistern Sie die Verfolgung von Excel-Zellenabhängigkeiten mit Aspose.Cells .NET für eine genaue Datenanalyse](./master-cell-dependency-tracking-aspose-cells-net) -Erfahren Sie, wie Sie Zellabhängigkeiten in Excel mit Aspose.Cells .NET verfolgen und verwalten. Diese Anleitung bietet einen schrittweisen Ansatz zur Verbesserung der Datengenauigkeit und -effizienz durch das Verständnis von Formelbeziehungen. ### [Gemeinsam genutzte Formeln in Excel mit Aspose.Cells für .NET meistern: Ein umfassender Leitfaden](./master-shared-formulas-excel-aspose-cells-net) -Erfahren Sie, wie Sie gemeinsam genutzte Formeln in Excel mit Aspose.Cells für .NET implementieren. Diese Anleitung bietet Schritt-für-Schritt-Anleitungen und zeigt die Vorteile der Automatisierung von Excel-Aufgaben mit leistungsoptimierter Formelanwendung. ### [Array-Formeln in .NET mit Aspose.Cells meistern: Ein umfassender Leitfaden](./mastering-aspose-cells-net-array-formulas) -Erfahren Sie, wie Sie Array-Formeln mit Aspose.Cells für .NET meistern. Dieser Leitfaden behandelt die Einrichtung, Implementierung und praktische Anwendung leistungsstarker Mehrzellenberechnungen. ### [So legen Sie die Sprache in Excel-Dateien mit Aspose.Cells .NET für mehrsprachige Unterstützung fest](./specify-language-excel-aspose-cells-net) -Erfahren Sie, wie Sie die Sprache Ihrer Excel-Dateien mit Aspose.Cells .NET festlegen. Verbessern Sie die Zugänglichkeit und Konformität Ihrer Dokumente mit dieser Schritt-für-Schritt-Anleitung zur Internationalisierung von Formeleinstellungen. ### [Aktualisieren Sie Excel Power Query-Formeln mit Aspose.Cells .NET](./update-power-query-formulas-aspose-cells-net) -Erfahren Sie, wie Sie Power Query-Formeln in Excel-Arbeitsmappen mit Aspose.Cells für .NET programmgesteuert aktualisieren. Master-Datenquellenverwaltung für dynamisches Reporting. -## Grundlegendes zu Excel-Formeltypen - -Excel-Formeln gibt es in verschiedenen Formen, jede mit einzigartigen Eigenschaften, die Aspose.Cells verwalten kann: - -### Standardzellformeln - -Dies sind die gebräuchlichsten Formeln, die auf einzelne Zellen angewendet werden: - -- **Arithmetische Formeln**: Grundlegende Berechnungen wie `=A1+B1` -- **Funktionsbasierte Formeln**: Mit integrierten Funktionen wie `=SUM(A1:A10)` -- **Logische Formeln**: Bedingte Logik mit Funktionen wie `=IF(A1>10,"High","Low")` -- **Textformeln**: Textmanipulation mit Funktionen wie `=CONCATENATE(A1," ",B1)` - -### Bereichsbasierte Formeln - -Diese Formeln funktionieren mit Zellbereichen: - -- **Aggregationsformeln**: Funktionen wie `=AVERAGE(A1:A100)` die mehrere Zellen verarbeiten -- **Nachschlageformeln**: Referenzfunktionen wie `=VLOOKUP(E1,A1:B20,2,FALSE)` zum Datenabruf -- **Datenbankformeln**: Spezialfunktionen wie `=DSUM(A1:F100,"Amount",G1:H2)` zur Filterung und Berechnung - -### Array-Formeln - -Array-Formeln führen Berechnungen mit mehreren Werten gleichzeitig durch: - -- **Einzelzellen-Array-Formel**: Gibt ein Ergebnis zurück, verarbeitet aber Arrays intern -- **Multi-Cell-Array-Formel**: Füllt mehrere Zellen mit verwandten Ergebnissen -- **Dynamische Arrays**: Moderne Excel-Formeln, die Ergebnisse automatisch in benachbarte Zellen übertragen - -### Benannte Formeln - -Diese Formeln verwenden benannte Bereiche oder definierte Namen: - -- **Benannte Bereichsverweise**: Durch die Verwendung definierter Namen wie `=SUM(SalesData)` -- **Strukturierte Referenzen**: Tabellenreferenzen wie `=SUM(Table1[Amount])` -- **Dynamische benannte Bereiche**: Formeln, die sich automatisch an die Datengröße anpassen - -## Best Practices für das Formelmanagement - -### Leistungsoptimierung - -So gewährleisten Sie eine effiziente Formelhandhabung: - -1. **Batch-Formeleinstellung**: Formeln auf Bereiche anwenden, statt Zelle für Zelle -2. **Selektiv berechnen**: Verwenden Sie nach Möglichkeit eine gezielte Berechnung anstelle einer vollständigen Neuberechnung -3. **Minimieren Sie flüchtige Funktionen**: Beschränken Sie die Verwendung von Funktionen wie NOW() oder RAND(), die eine Neuberechnung auslösen -4. **Verwenden gemeinsamer Formeln**: Nutzen Sie gemeinsam genutzte Formelfunktionen für Speichereffizienz - -### Formelzuverlässigkeit - -Für eine robuste Formelimplementierung: - -1. **Fehlerbehandlung**: Implementieren Sie die Formelfehlerbehandlung mit IFERROR oder ähnlichen Funktionen -2. **Zellabhängigkeitsanalyse**: Formelabhängigkeiten verstehen, um Zirkelbezüge zu vermeiden -3. **Formelprüfung**: Überprüfen Sie die Formellogik vor der Bereitstellung -4. **Dokumentation**: Klare Dokumentation komplexer Formelstrukturen - -Indem Sie diese Formelfunktionen mit Aspose.Cells für .NET beherrschen, können Sie in Ihren Tabellenkalkulationen anspruchsvolle Berechnungs-Engines erstellen, die genaue, dynamische Ergebnisse liefern, ohne dass eine Excel-Installation erforderlich ist. +### [Wie man WRAPCOLS in C# verwendet – Excel-Arbeitsmappe mit Wrap-Funktionen erstellen](./how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/) {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/german/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md b/cells/german/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md new file mode 100644 index 0000000000..b05195db2b --- /dev/null +++ b/cells/german/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-30 +description: Erstelle eine Excel-Arbeitsmappe in C# mit Aspose.Cells. Lerne, die Lambda‑Funktion + in Excel anzuwenden, die Sequenz‑Funktion in Excel zu nutzen, Arrays in Excel zu + erweitern und die Arbeitsmappe als xlsx zu speichern. +draft: false +keywords: +- create excel workbook c# +- lambda function excel +- save workbook as xlsx +- sequence function excel +- expand array excel +language: de +og_description: Erstelle schnell eine Excel-Arbeitsmappe mit C#. Dieser Leitfaden + zeigt, wie man die Lambda‑Funktion in Excel, die Sequenz‑Funktion in Excel, das + Expand‑Array in Excel verwendet und die Arbeitsmappe als xlsx speichert. +og_title: Excel-Arbeitsmappe mit C# erstellen – Lambda, SEQUENCE & EXPAND Leitfaden +tags: +- Aspose.Cells +- C# +- Excel automation +title: Excel-Arbeitsmappe erstellen mit C# – Lambda, SEQUENCE & EXPAND Leitfaden +url: /de/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel-Arbeitsmappe mit C# erstellen – Leitfaden zu LAMBDA, SEQUENCE & EXPAND + +Haben Sie schon einmal **eine Excel‑Arbeitsmappe mit C#** für einen automatisierten Bericht erstellen müssen, waren sich aber nicht sicher, welche API‑Aufrufe Sie verwenden sollten? Sie sind nicht allein – viele Entwickler stoßen beim ersten Einstieg in die programmgesteuerte Excel‑Erstellung auf dieselbe Hürde. In diesem Leitfaden sehen Sie ein vollständiges, ausführbares Beispiel, das alles von der neuen **SEQUENCE‑Funktion Excel** über die leistungsstarke **LAMBDA‑Funktion Excel** bis hin zur **expand array Excel**‑Ergebnisdarstellung abdeckt. + +Wir zeigen Ihnen außerdem die genauen Schritte, um die **Arbeitsmappe als xlsx zu speichern**, sodass Sie die Datei an jeden weitergeben können, der Excel verwendet. Am Ende dieses Tutorials besitzen Sie einen soliden, produktions‑reifen Code‑Snippet, den Sie in jedes .NET‑Projekt einbinden können. Keine vagen „Siehe die Docs“-Links – nur Code, der heute funktioniert. + +## Was Sie benötigen + +- **.NET 6.0 oder höher** – das Beispiel zielt auf .NET 6 ab, aber jede aktuelle Version funktioniert. +- **Aspose.Cells für .NET** – Installation via NuGet (`Install-Package Aspose.Cells`). +- Grundlegendes Verständnis von C#‑Syntax (Variablen, Objekte und Lambda‑Ausdrücke). +- Eine IDE, mit der Sie sich wohlfühlen (Visual Studio, Rider oder VS Code). + +Das war’s. Kein zusätzliches COM‑Interop, kein Office auf dem Server installiert – Aspose.Cells erledigt alles im Speicher. + +## Excel-Arbeitsmappe mit C# – Schritt‑für‑Schritt‑Implementierung + +Im Folgenden zerlegen wir den Prozess in handliche Schritte. Jeder Schritt hat eine klare Überschrift, einen kurzen Code‑Auszug und eine Erklärung, **warum** wir das tun. Kopieren Sie gern den vollständigen Block am Ende und führen Sie ihn als Konsolen‑App aus. + +### Schritt 1 – Neues Workbook initialisieren + +Zuerst benötigen wir ein leeres Workbook‑Objekt, das die Excel‑Datei im Speicher repräsentiert. + +```csharp +using Aspose.Cells; + +// Step 1: Create a new workbook and get the first worksheet +Workbook workbook = new Workbook(); // empty workbook +Worksheet sheet = workbook.Worksheets[0]; // default first sheet +``` + +*Warum das wichtig ist:* `Workbook` ist der Einstiegspunkt für alle Aspose.Cells‑Operationen. Indem wir das erste `Worksheet` holen, erhalten wir eine Leinwand, auf der wir Formeln, Werte oder Formatierungen schreiben können. + +> **Pro‑Tipp:** Wenn Sie mehrere Blätter benötigen, rufen Sie einfach `workbook.Worksheets.Add()` auf und behalten Sie für jedes einen Verweis. + +### Schritt 2 – SEQUENCE‑Funktion Excel zum Erzeugen von Daten verwenden + +Die **sequence function excel** erzeugt ein dynamisches Zahlen‑Array ohne VBA. Wir platzieren sie in Zelle `A1` und lassen Excel die Ausgabe automatisch erweitern. + +```csharp +// Step 2: Generate a 5‑row, 1‑column array from a SEQUENCE +sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; // 1..3 padded with blanks +``` + +*Warum das wichtig ist:* `SEQUENCE(3)` liefert `[1,2,3]`. Durch das Einbetten in `EXPAND` wird das Ergebnis auf einen 5‑Zeilen‑Bereich ausgeweitet, wobei die zusätzlichen Zeilen leer bleiben. So demonstrieren wir sowohl **sequence function excel** als auch **expand array excel** in einem Schritt. + +### Schritt 3 – Zahlen mit LAMBDA‑Funktion Excel aggregieren + +Jetzt zeigen wir die Möglichkeiten der **lambda function excel**. Wir summieren die Zahlen 1‑5 mithilfe der neuen `REDUCE`‑Funktion, die intern ein Lambda verwendet. + +```csharp +// Step 3: Aggregate a sequence (sum 1..5) using REDUCE/LAMBDA +sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; // result = 15 +``` + +*Warum das wichtig ist:* `REDUCE` iteriert über das Array, das von `SEQUENCE(5)` erzeugt wird, und übergibt jedes Element (`b`) zusammen mit dem Akkumulator (`a`) an das Lambda. Das Lambda `a+b` addiert sie, sodass `15` in `B1` steht. Das ist ein sauberer, rein formelbasierten Ansatz für Reduktionen ohne Schleifen in C#. + +### Schritt 4 – Trigonometrische Funktionen direkt in Zellen anwenden + +Excel‑eingebaute mathematische Funktionen sind praktisch für schnelle Berechnungen. Wir setzen Kotangens und hyperbolischen Kotangens in benachbarte Zellen. + +```csharp +// Step 4: Trigonometric functions directly in Excel cells +sheet["C1"].Formula = "COT(PI()/4)"; // evaluates to 1 +sheet["D1"].Formula = "COTH(1)"; // hyperbolic cotangent of 1 +``` + +*Warum das wichtig ist:* Zeigt, dass Sie klassische mathematische Funktionen mit den neueren dynamischen Array‑Formeln kombinieren können. Keine Notwendigkeit, diese Werte in C# zu berechnen, es sei denn, Sie haben einen speziellen Performance‑Grund. + +### Schritt 5 – Alle Formeln berechnen + +Aspose.Cells wertet Formeln nicht automatisch aus, wenn Sie sie setzen. Sie müssen es explizit anweisen. + +```csharp +// Step 5: Force calculation so that cells store the results +workbook.CalculateFormula(); +``` + +*Warum das wichtig ist:* Nach diesem Aufruf enthält die `Value`‑Eigenschaft jeder Zelle das ausgewertete Ergebnis, bereit zum Speichern oder Auslesen. + +### Schritt 6 – Arbeitsmappe als Xlsx speichern + +Abschließend persistieren wir die Arbeitsmappe auf dem Datenträger mittels des **save workbook as xlsx**‑Musters. + +```csharp +// Step 6: Save the workbook to an Excel file (XLSX format) +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + +workbook.Save(outputPath); +Console.WriteLine($"Workbook saved to: {outputPath}"); +``` + +*Warum das wichtig ist:* Die `Save`‑Methode erkennt die Dateierweiterung automatisch. Durch die Angabe von „.xlsx“ stellen wir sicher, dass die Datei mit modernen Excel‑Versionen kompatibel ist. Der Pfad zeigt auf den Desktop für einfachen Zugriff während des Tests. + +### Vollständiges funktionierendes Beispiel + +Unten finden Sie das komplette Programm, das Sie in ein neues Konsolen‑Projekt einfügen können. Es beinhaltet alle oben genannten Schritte sowie einen kleinen Verifikations‑Block, der die berechneten Werte in der Konsole ausgibt. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialize workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + + // SEQUENCE + EXPAND + sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; + + // REDUCE with LAMBDA + sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; + + // Trig functions + sheet["C1"].Formula = "COT(PI()/4)"; + sheet["D1"].Formula = "COTH(1)"; + + // Calculate formulas + workbook.CalculateFormula(); + + // Verify results (optional) + Console.WriteLine("A1‑A5 (expanded SEQUENCE):"); + for (int i = 0; i < 5; i++) + { + Console.WriteLine($" Row {i + 1}: {sheet.Cells[i, 0].Value ?? "blank"}"); + } + Console.WriteLine($"B1 (sum 1‑5): {sheet["B1"].Value}"); + Console.WriteLine($"C1 (cot(π/4)): {sheet["C1"].Value}"); + Console.WriteLine($"D1 (coth(1)): {sheet["D1"].Value}"); + + // Save workbook + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + workbook.Save(outputPath); + Console.WriteLine($"Workbook saved to: {outputPath}"); + } +} +``` + +**Erwartete Konsolenausgabe** + +``` +A1‑A5 (expanded SEQUENCE): + Row 1: 1 + Row 2: 2 + Row 3: 3 + Row 4: blank + Row 5: blank +B1 (sum 1‑5): 15 +C1 (cot(π/4)): 1 +D1 (coth(1)): 1.31303528549933 +Workbook saved to: C:\Users\YourName\Desktop\NewFunctions.xlsx +``` + +Und wenn Sie *NewFunctions.xlsx* öffnen, sehen Sie dieselben Zahlen in den ersten vier Spalten. + +![Excel‑Arbeitsmappe mit C# erstellen Screenshot der resultierenden Tabelle](/images/create-excel-workbook-csharp.png) + +## Sonderfälle, Tipps und häufige Fragen + +- **Was, wenn ich mehr als ein Blatt brauche?** + Rufen Sie einfach `workbook.Worksheets.Add()` auf und wiederholen Sie die Formelausweisungen für jedes neue `Worksheet`‑Objekt. + +- **Kann ich ältere Excel‑Versionen verwenden?** + Die dynamischen Array‑Funktionen (`SEQUENCE`, `EXPAND`, `REDUCE`) erfordern Excel 365 oder Excel 2021+. Bei älteren Versionen greifen Sie auf klassische Formeln zurück oder berechnen die Werte in C# bevor Sie sie schreiben. + +- **Leistungsbedenken?** + Für tausende Zeilen ist das Setzen von Formeln auf einen Bereich und anschließendem Aufruf von `CalculateFormula` meist schneller als das zeilenweise Zuweisen von Werten. + +- **In einen Stream statt in eine Datei speichern?** + `work + +{{< /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/german/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md b/cells/german/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md new file mode 100644 index 0000000000..99b8260e89 --- /dev/null +++ b/cells/german/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md @@ -0,0 +1,198 @@ +--- +category: general +date: 2026-03-30 +description: Erfahren Sie, wie Sie WRAPCOLS in C# verwenden, um eine Excel‑Arbeitsmappe + zu erstellen, Daten zu Excel hinzuzufügen und die Berechnung von Formeln zu erzwingen, + während Sie gleichzeitig WRAPROWS nutzen. +draft: false +keywords: +- how to use wrapcols +- create excel workbook c# +- add data to excel +- force formula calculation +- how to use wraprows +language: de +og_description: Entdecken Sie, wie Sie WRAPCOLS in C# verwenden, um eine Excel-Arbeitsmappe + zu erstellen, Daten hinzuzufügen, die Berechnung von Formeln zu erzwingen und WRAPROWS + für Array‑Formeln zu nutzen. +og_title: Wie man WRAPCOLS in C# verwendet – Vollständige Anleitung +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Wie man WRAPCOLS in C# verwendet – Excel-Arbeitsmappe mit Wrap‑Funktionen erstellen +url: /de/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Wie man WRAPCOLS in C# verwendet – Excel Workbook mit Wrap-Funktionen erstellen + +Haben Sie sich jemals gefragt, **wie man WRAPCOLS** verwendet, wenn Sie Excel mit C# automatisieren? Sie sind nicht allein – viele Entwickler stoßen auf ein Problem, wenn sie einen horizontalen Bereich in ein vertikales Array umwandeln wollen, ohne einen Haufen Code zu schreiben. Die gute Nachricht ist, dass Aspose.Cells das kinderleicht macht. + +In diesem Tutorial führen wir Sie durch ein vollständiges, ausführbares Beispiel, das zeigt, **wie man WRAPCOLS verwendet**, wie man **ein Excel-Workbook im C#‑Stil erstellt**, wie man **Daten zu Excel hinzufügt** und sogar, wie man **die Formelb berechnung erzwingt**, sodass die Ergebnisse sofort angezeigt werden. Wir werden außerdem **wie man WRAPROWS verwendet** für die entgegengesetzte Transformation einstreuen. Am Ende haben Sie ein sofort ausführbares Programm und ein klares Verständnis dafür, warum jeder Schritt wichtig ist. + +--- + +![Beispiel für die Verwendung von WRAPCOLS in C#](alt="Screenshot, der die Excel-Arbeitsmappe nach Verwendung von WRAPCOLS in C# zeigt") + +## Was dieser Leitfaden abdeckt + +* Ein neues Workbook mit Aspose.Cells einrichten. +* Zellen programmgesteuert befüllen (**add data to Excel**). +* Die `WRAPCOLS`‑Funktion anwenden, um eine Zeile in eine Spalte zu verwandeln. +* `WRAPROWS` verwenden, um eine Spalte zurück in eine Zeile zu drehen (**how to use wraprows**). +* Die Engine zwingen, Formeln sofort zu berechnen (**force formula calculation**). +* Die Datei speichern und die Ausgabe prüfen. + +Keine externe Dokumentation erforderlich – alles, was Sie benötigen, finden Sie hier. + +--- + +## Wie man WRAPCOLS in C# verwendet – Schritt‑für‑Schritt‑Implementierung + +Unten finden Sie die vollständige Quelldatei. Sie können sie gerne in ein neues Konsolenprojekt kopieren, das Aspose.Cells‑NuGet‑Paket hinzufügen und **F5** drücken. + +```csharp +// ------------------------------------------------------------ +// How to Use WRAPCOLS in C# – Complete Example +// ------------------------------------------------------------ +using System; +using Aspose.Cells; + +namespace WrapFunctionsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a fresh workbook (this is how we **create excel workbook c#** style) + Workbook workbook = new Workbook(); + + // 2️⃣ Grab the first worksheet – it's created by default + Worksheet sheet = workbook.Worksheets[0]; + + // 3️⃣ **Add data to Excel**: place two numbers side‑by‑side + sheet.Cells["A1"].PutValue(1); // first value + sheet.Cells["B1"].PutValue(2); // second value + + // 4️⃣ **How to use WRAPCOLS** – turn the horizontal range A1:B1 into a vertical array + // The second argument (1) tells WRAPCOLS to create 1 column per element. + sheet["C1"].Formula = "WRAPCOLS(A1:B1, 1)"; + + // 5️⃣ **How to use WRAPROWS** – the opposite; turn the same range into a horizontal array + // Here we ask for 2 rows per element, which produces a single row with both values. + sheet["C2"].Formula = "WRAPROWS(A1:B1, 2)"; + + // 6️⃣ **Force formula calculation** so the workbook reflects the results immediately + workbook.CalculateFormula(); + + // 7️⃣ Save the workbook to disk – change the path to a folder you own + string outputPath = @"WrapFunctions.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + Console.WriteLine("Check cells C1 and C2 for the WRAPCOLS / WRAPROWS results."); + } + } +} +``` + +### Warum jede Zeile wichtig ist + +| Schritt | Erklärung | +|------|-------------| +| **1️⃣ Ein neues Workbook erstellen** | Dies ist die Grundlage. Aspose.Cells behandelt ein `Workbook`‑Objekt als die gesamte Excel‑Datei, sodass Sie effektiv **ein Excel‑Workbook im C#‑Stil erstellen**. | +| **2️⃣ Das erste Arbeitsblatt holen** | Ein neues Workbook enthält immer mindestens ein Arbeitsblatt (`Worksheets[0]`). Der frühe Zugriff verhindert Null‑Referenz‑Überraschungen. | +| **3️⃣ Daten zu Excel hinzufügen** | Durch die Verwendung von `PutValue` **fügen wir Daten zu Excel hinzu**, ohne uns um die Zellenformatierung kümmern zu müssen. Die Zahlen `1` und `2` sind unsere Testdaten für die Wrap‑Funktionen. | +| **4️⃣ Wie man WRAPCOLS verwendet** | `WRAPCOLS(A1:B1, 1)` weist Excel an, den Bereich `A1:B1` zu nehmen und seine Werte vertikal, jeweils eine pro Zeile, auszugeben. Das Ergebnis landet in `C1` und erstreckt sich nach unten (`C1`, `C2`, …). | +| **5️⃣ Wie man WRAPROWS verwendet** | `WRAPROWS(A1:B1, 2)` macht das Gegenteil: Es erzeugt eine horizontale Ausgabe, die beiden Werte in einer einzigen Zeile beginnend bei `C2` platziert. | +| **6️⃣ Formelberechnung erzwingen** | Standardmäßig kann Aspose.Cells die Berechnung bis zum Öffnen der Datei in Excel verzögern. Der Aufruf von `CalculateFormula()` **erzwingt die Formelberechnung**, sodass Sie die Ergebnisse sofort nach dem Speichern auslesen können. | +| **7️⃣ Das Workbook speichern** | Der letzte Schritt schreibt alles auf die Festplatte. Öffnen Sie die resultierende `WrapFunctions.xlsx`, um das Ergebnis zu sehen. | + +## Excel Workbook in C# erstellen – Umgebung einrichten + +Bevor Sie den Code ausführen, stellen Sie sicher, dass Sie die richtigen Werkzeuge haben: + +1. **.NET 6.0+** – Die neueste LTS‑Version funktioniert am besten. +2. **Visual Studio 2022** (oder VS Code mit der C#‑Erweiterung). +3. **Aspose.Cells für .NET** – Installation über NuGet: + ```bash + dotnet add package Aspose.Cells + ``` +4. Ein beschreibbarer Ordner für die Ausgabedatei. + +Diese Voraussetzungen sind minimal; weder COM‑Interop noch eine Office‑Installation sind erforderlich, weshalb Aspose.Cells eine beliebte Wahl für serverseitige Excel‑Generierung ist. + +## Daten zu Excel hinzufügen – Best Practices + +Wenn Sie **Daten zu Excel** programmgesteuert **hinzufügen**, beachten Sie diese Tipps: + +* **Verwenden Sie `PutValue`** für rohe Zahlen oder Zeichenketten; es erkennt den Datentyp automatisch. +* **Vermeiden Sie das Hard‑Coden von Zelladressen** in großen Projekten – nutzen Sie Schleifen oder benannte Bereiche für Skalierbarkeit. +* **Setzen Sie Zellstile sparsam** ein; jede Stiländerung verursacht Overhead. Wenn Sie Formatierung benötigen, erstellen Sie ein einzelnes Stil‑Objekt und wenden es auf mehrere Zellen an. + +In unserem kleinen Beispiel fügen wir nur zwei Zahlen ein, aber dasselbe Muster skaliert auf tausende von Zeilen. + +## Wie man WRAPROWS verwendet – Beispiel für ein horizontales Array + +Wenn Sie das Gegenteil von `WRAPCOLS` benötigen, ist `WRAPROWS` Ihre Lösung. Die Syntax lautet: + +``` +WRAPROWS(source_range, [rows_per_item]) +``` + +* `source_range` – der Bereich, den Sie transformieren möchten. +* `rows_per_item` – optional; gibt an, wie viele Zeilen jedes Element belegt. In unserer Demo haben wir `2` verwendet, um beide Werte in einer einzigen Zeile zu erzwingen. + +Sie können experimentieren, indem Sie das zweite Argument ändern: + +```csharp +// Example: split each value into its own column, three rows per item +sheet["D1"].Formula = "WRAPROWS(A1:B1, 3)"; +``` + +Öffnen Sie die Arbeitsmappe und Sie werden sehen, dass die Werte über drei Spalten verteilt werden, wobei jede Spalte die ursprünglichen Zahlen nach Bedarf wiederholt. + +## Formelberechnung erzwingen – Wann und warum + +Sie fragen sich vielleicht: „Muss ich wirklich `CalculateFormula()` aufrufen?“ Die Antwort ist **ja**, wenn: + +* Sie planen, nach dem Speichern die berechneten Werte **programmgesteuert** auszulesen. +* Sie möchten sicherstellen, dass die Datei in Excel mit den bereits angezeigten korrekten Ergebnissen geöffnet wird. +* Sie laufen in einer **kopf­losen Umgebung** (z. B. einer Web‑API), in der kein Benutzer manuell eine Neuberechnung auslöst. + +Das Überspringen dieses Schrittes beschädigt das Workbook nicht, aber die Zellen zeigen den Formelttext (`=WRAPCOLS(...)`) anstelle der berechneten Werte, bis Excel neu berechnet. + +## Erwartete Ausgabe – Was zu erwarten ist + +Nach dem Ausführen des Programms und dem Öffnen von `WrapFunctions.xlsx`: + +| Zelle | Formel | Angezeigter Wert | +|------|---------|-----------------| +| **C1** | `=WRAPCOLS(A1:B1, 1)` | `1` (in C1) und `2` (in C2) – eine vertikale Liste | +| **C2** | `=WRAPROWS(A1:B1, 2)` | `1` in C2 und `2` in D2 – eine horizontale Liste | + +Sie werden also eine Spalte von Werten sehen, die bei **C1** beginnt, und eine Zeile von Werten, die bei **C2** beginnt. Das bestätigt, dass beide Wrap‑Funktionen wie erwartet funktionieren. + +## Randfälle & Variationen + +| Szenario | Was ändert sich? | Vorgeschlagene Anpassung | +|----------|-------------------|--------------------------| +| **Large range (A1:Z1)** | Mehr Werte, die vertikal ausgegeben werden | Erhöhen Sie das zweite Argument von `WRAPCOLS`, wenn Sie mehrere Spalten pro Gruppe wünschen. | +| **Non‑numeric data** | Zeichenketten werden auf dieselbe Weise behandelt | Keine Code‑Änderung; `PutValue` akzeptiert jedes Objekt. | +| **Dynamic range** | Sie kennen die Größe zur Compile‑Zeit nicht | Verwenden Sie `sheet.Cells.MaxDataColumn` und `MaxDataRow`, um den Adress‑String zu erstellen. | +| **Multiple worksheets** | Sie müssen Wrap‑Funktionen auf verschiedenen Blättern anwenden | Referenzieren Sie das korrekte Arbeitsblatt (`workbook.Worksheets["Sheet2"]`). | + +## Profi‑Tipps aus der Praxis + +* **Pro‑Tipp:** Packen Sie die Workbook‑Erstellung in einen `using`‑Block, wenn Sie .NET Core 3.1+ anvisieren, um sicherzustellen, dass alle Ressourcen sofort freigegeben werden. +* **Achtung:** Das Setzen derselben Formel in einem großen Bereich ohne Aufruf von `CalculateFormula()` kann Leistungsengpässe verursachen. Verarbeiten Sie Formeln nach Möglichkeit stapelweise. +* **Tipp:** Wenn Sie die berechneten Werte im Code zurücklesen müssen, rufen Sie ` + +{{< /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/german/net/tables-and-lists/_index.md b/cells/german/net/tables-and-lists/_index.md index bc0b61e826..a7e52198bd 100644 --- a/cells/german/net/tables-and-lists/_index.md +++ b/cells/german/net/tables-and-lists/_index.md @@ -51,6 +51,8 @@ Konvertieren Sie Tabellen in Excel ganz einfach in Bereiche mit Aspose.Cells fü Entfesseln Sie die Leistungsfähigkeit von Aspose.Cells für .NET. Lernen Sie in dieser detaillierten Schritt-für-Schritt-Anleitung, Tabellen mit Abfragedatenquellen zu lesen und zu schreiben. ### [Kommentar einer Tabelle oder Liste in Excel festlegen](./setting-comment-of-table-or-list/) Erfahren Sie mit unserer einfachen Schritt-für-Schritt-Anleitung, wie Sie mit Aspose.Cells für .NET Kommentare für Tabellen in Excel festlegen. +### [Tabelle aus Bereich in C# erstellen – Komplettes Aspose.Cells Tutorial](./create-table-from-range-in-c-complete-aspose-cells-tutorial/) +Erfahren Sie, wie Sie mit Aspose.Cells für .NET eine Tabelle aus einem bestehenden Bereich in C# erstellen. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/german/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md b/cells/german/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md new file mode 100644 index 0000000000..5dbcb2316b --- /dev/null +++ b/cells/german/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md @@ -0,0 +1,231 @@ +--- +category: general +date: 2026-03-30 +description: Tabelle aus einem Bereich in C# mit Aspose.Cells erstellen – Daten in + Zellen einfügen, Bereich in ListObject umwandeln und Excel ohne Filter speichern. +draft: false +keywords: +- create table from range +- create excel workbook c# +- add data to cells +- convert range to listobject +- save excel without filter +language: de +og_description: Erstelle eine Tabelle aus einem Bereich in C# mit Aspose.Cells. Erfahre, + wie du Daten zu Zellen hinzufügst, einen Bereich in ein ListObject konvertierst + und Excel ohne Filter speicherst. +og_title: Tabelle aus Bereich in C# erstellen – Vollständiges Aspose.Cells‑Tutorial +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Tabelle aus Bereich in C# erstellen – Vollständiges Aspose.Cells‑Tutorial +url: /de/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tabelle aus Bereich in C# erstellen – Komplettes Aspose.Cells Tutorial + +Haben Sie jemals **create table from range** in C# erstellen müssen, waren sich aber nicht sicher, wie Sie einen einfachen Datenblock in eine vollwertige Excel‑Tabelle verwandeln? Sie sind nicht allein. Egal, ob Sie Berichte automatisieren, Scorecards erstellen oder einfach Daten für nachgelagerte Analysen aufräumen – das Beherrschen dieses kleinen Tricks kann Ihnen viel manuelle Arbeit ersparen. + +In diesem Leitfaden gehen wir den gesamten Prozess durch: **create excel workbook c#**, **add data to cells**, **convert range to ListObject** und schließlich **save excel without filter**. Am Ende haben Sie ein einsatzbereites Snippet, das Sie in jedes .NET‑Projekt einbinden können, das Aspose.Cells referenziert. + +--- + +## Prerequisites + +- .NET 6+ (oder .NET Framework 4.7.2+) installiert +- Aspose.Cells für .NET (NuGet‑Paket `Aspose.Cells`) – die zum Zeitpunkt des Schreibens neueste Version (23.10) funktioniert einwandfrei. +- Grundlegendes Verständnis der C#‑Syntax – tiefgehende Excel‑Interop‑Kenntnisse sind nicht erforderlich. + +Wenn Sie das haben, legen wir los. + +--- + +## Schritt 1: Excel‑Arbeitsmappe in C# erstellen + +Zuerst benötigen wir ein frisches Workbook‑Objekt. Stellen Sie sich das als die leere Excel‑Datei vor, die später unsere Tabelle enthalten wird. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is equivalent to opening a blank .xlsx file. +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (default) worksheet. +``` + +> **Pro Tipp:** `Workbook()` ohne Argumente erstellt ein Workbook mit einem Standard‑Arbeitsblatt, was für schnelle Demos ideal ist. Wenn Sie mehrere Blätter benötigen, können Sie diese später mit `workbook.Worksheets.Add()` hinzufügen. + +--- + +## Schritt 2: Daten in Zellen einfügen + +Jetzt füllen wir das Blatt mit einem kleinen Datensatz – zwei Spalten (Name, Score) und drei Zeilen Werte. Das demonstriert **add data to cells** auf eine klare, lesbare Weise. + +```csharp +// Header row +worksheet.Cells["A1"].PutValue("Name"); +worksheet.Cells["B1"].PutValue("Score"); + +// Data rows +worksheet.Cells["A2"].PutValue("Alice"); +worksheet.Cells["B2"].PutValue(85); +worksheet.Cells["A3"].PutValue("Bob"); +worksheet.Cells["B3"].PutValue(92); +``` + +Warum `PutValue` verwenden? Es erkennt automatisch den Datentyp (String vs. numerisch) und formatiert die Zelle entsprechend, sodass Sie bei einfachen Szenarien nicht mit `Style`‑Objekten hantieren müssen. + +> **Erwartete Ausgabe:** Nach diesem Schritt sehen Sie, wenn Sie die Arbeitsmappe in Excel öffnen, ein zweispaltiges Raster mit den Überschriften „Name“ und „Score“, gefolgt von zwei Datenzeilen. + +--- + +## Schritt 3: Den Bereich in ein ListObject (Tabelle) umwandeln + +Hier passiert die Magie: Der einfache Bereich wird in eine Excel‑Tabelle (im Aspose.Cells‑API **ListObject** genannt) verwandelt. Das fügt nicht nur visuelles Styling hinzu, sondern aktiviert auch eingebaute Funktionen wie Sortieren, Filtern und strukturierte Verweise. + +```csharp +// Define the range boundaries. +// startRow and startColumn are zero‑based indexes. +// rowCount includes the header row. +int startRow = 0; // Row 1 in Excel +int startColumn = 0; // Column A +int rowCount = 3; // Header + 2 data rows +int columnCount = 2; // Two columns: Name & Score + +// Add a ListObject to the worksheet and retrieve the object. +int listIndex = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); +ListObject table = worksheet.ListObjects[listIndex]; + +// Turn on the UI filter dropdowns so users can interact with the table. +table.ShowAutoFilter = true; +``` + +> **Warum ein ListObject verwenden?** +> - **Strukturierte Verweise**: Formeln können sich per Namen auf Spalten beziehen. +> - **Auto‑Filter‑UI**: Benutzer erhalten Dropdown‑Pfeile für schnelles Filtern. +> - **Styling**: Sie können später mit einer einzigen Zeile integrierte Tabellenvorlagen anwenden. + +--- + +## Schritt 4: AutoFilter‑UI entfernen (Excel ohne Filter speichern) + +Manchmal braucht man ein sauberes Blatt ohne Filter‑Pfeile – zum Beispiel, wenn die Arbeitsmappe ein Abschlussbericht ist. Aspose.Cells 23.10 hat eine unkomplizierte Methode eingeführt, die Filter‑UI vollständig zu entfernen. + +```csharp +// Remove the filter UI completely. +table.AutoFilter = null; // Clears the underlying filter object. +table.ShowAutoFilter = false; // Hides the dropdown arrows. +``` + +Beachten Sie, dass wir die Daten nicht löschen; wir schalten nur die visuellen Filter‑Steuerelemente aus. Das erfüllt die Anforderung **save excel without filter**. + +--- + +## Schritt 5: Arbeitsmappe speichern + +Zum Schluss schreiben wir die Arbeitsmappe auf die Festplatte. Die Datei enthält die Tabelle, jedoch ohne irgendeine Filter‑UI. + +```csharp +// Choose a folder you have write access to. +string outputPath = @"C:\Temp\NoAutoFilter.xlsx"; +workbook.Save(outputPath); +``` + +Öffnen Sie `NoAutoFilter.xlsx` in Excel – Sie sehen die Tabelle mit Standardformatierung, aber keine Filter‑Pfeile. Die Daten bleiben erhalten und die Datei ist bereit zur Verteilung. + +--- + +![Screenshot, der das Erstellen einer Tabelle aus einem Bereich in Excel mit Aspose.Cells zeigt](image.png "Screenshot zum Erstellen einer Tabelle aus einem Bereich") + +*Bild‑Alt‑Text:* **Screenshot, der das Erstellen einer Tabelle aus einem Bereich in Excel mit Aspose.Cells zeigt** – visueller Beweis, dass die Tabelle ohne Filter‑Dropdowns existiert. + +--- + +## Vollständiges, ausführbares Beispiel + +Unten finden Sie das komplette Programm, das Sie in eine Konsolen‑App kopieren können. Es enthält alle oben genannten Schritte sowie ein paar zusätzliche Kommentare zur Klarheit. + +```csharp +using System; +using Aspose.Cells; + +namespace AsposeTableDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add data to cells – this is the “add data to cells” part. + worksheet.Cells["A1"].PutValue("Name"); + worksheet.Cells["B1"].PutValue("Score"); + worksheet.Cells["A2"].PutValue("Alice"); + worksheet.Cells["B2"].PutValue(85); + worksheet.Cells["A3"].PutValue("Bob"); + worksheet.Cells["B3"].PutValue(92); + + // 3️⃣ Convert the range into a ListObject (i.e., create table from range). + int startRow = 0, startColumn = 0, rowCount = 3, columnCount = 2; + int listIdx = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); + ListObject table = worksheet.ListObjects[listIdx]; + table.ShowAutoFilter = true; // optional UI filter + + // 4️⃣ Remove the AutoFilter UI – “save excel without filter”. + table.AutoFilter = null; + table.ShowAutoFilter = false; + + // 5️⃣ Save the workbook. + string filePath = @"C:\Temp\NoAutoFilter.xlsx"; + workbook.Save(filePath); + + Console.WriteLine($"Workbook saved to {filePath}"); + } + } +} +``` + +Führen Sie das Programm aus und öffnen Sie anschließend `C:\Temp\NoAutoFilter.xlsx`. Sie sehen eine hübsch formatierte Tabelle, keine Filter‑Pfeile und die eingegebenen Daten. Das ist der gesamte **create excel workbook c#**‑Workflow in weniger als 60 Code‑Zeilen. + +--- + +## Häufig gestellte Fragen & Sonderfälle + +**F: Was ist, wenn mein Datenbereich nicht zusammenhängend ist?** +A: Aspose.Cells erfordert für `ListObjects.Add` einen rechteckigen Bereich. Wenn Ihre Daten nicht zusammenhängend sind, bauen Sie zunächst einen temporären Bereich auf (z. B. indem Sie die Teile in ein neues Arbeitsblatt kopieren) und wandeln Sie dann diesen Bereich um. + +**F: Kann ich einen benutzerdefinierten Tabellenstil anwenden?** +A: Absolut. Nach dem Erstellen des `ListObject` setzen Sie `table.TableStyleType = TableStyleType.TableStyleMedium9;` (oder einen der 65 integrierten Stile). So lässt sich die Tabelle leicht an das Corporate Branding anpassen. + +**F: Wie behalte ich den Filter bei, aber verstecke die Pfeile?** +A: Die Filterlogik steckt in `table.AutoFilter`. Durch Setzen von `ShowAutoFilter = false` wird nur die UI ausgeblendet; die zugrunde liegende Filterfunktion bleibt erhalten. Sie können also später programmgesteuert Zeilen filtern. + +**F: Was ist mit großen Datensätzen (10 k+ Zeilen)?** +A: Die gleiche API funktioniert, aber es empfiehlt sich, vor massiven Einfügungen die automatischen Berechnungen auszuschalten (`workbook.CalcEngine = false`) und nach dem Laden wieder zu aktivieren, um die Performance zu steigern. + +--- + +## Abschluss + +Wir haben gerade gezeigt, wie man **create table from range** in C# mit Aspose.Cells Schritt für Schritt umsetzt – von **create excel workbook c#**, über **add data to cells**, bis hin zu **convert range to ListObject** und schließlich **save excel without filter**. Der Code ist vollständig, ausführbar und produktionsreif. + +Als Nächstes könnten Sie erkunden: + +- Bedingte Formatierung hinzufügen, um die besten Ergebnisse hervorzuheben. +- Die Arbeitsmappe mit `workbook.Save("Report.pdf", SaveFormat.Pdf);` nach PDF exportieren. +- `table.Columns["Score"].DataBodyRange.Sort` verwenden, um die Tabelle programmgesteuert zu sortieren. + +Experimentieren Sie gern mit verschiedenen Datensätzen, Tabellenvorlagen oder sogar mehreren Arbeitsblättern. Die API ist flexibel genug, um alles von einer winzigen Score‑Tabelle bis zu einem riesigen Finanz‑Ledger zu bewältigen. + +Haben Sie Fragen oder stoßen Sie auf ein Problem? Hinterlassen Sie einen Kommentar unten oder kontaktieren Sie mich auf GitHub. Viel Spaß beim Coden und beim Verwandeln roher Bereiche in polierte Excel‑Tabellen! + +{{< /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/greek/net/conversion-to-pdf/_index.md b/cells/greek/net/conversion-to-pdf/_index.md index 32fd7e66a2..403c90f05e 100644 --- a/cells/greek/net/conversion-to-pdf/_index.md +++ b/cells/greek/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 με αυτόν τον οδηγό βήμα προς βήμα! Ιδανικό για προγραμματιστές όλων των επιπέδων. +### [Αποθήκευση βιβλίου εργασίας σε PDF με Aspose.Cells – Πλήρης Οδηγός Βήμα‑βήμα](./save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/) +Μάθετε πώς να αποθηκεύετε το βιβλίο εργασίας Excel ως PDF με το Aspose.Cells, ακολουθώντας έναν πλήρη οδηγό βήμα‑βήμα. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/greek/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md b/cells/greek/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md new file mode 100644 index 0000000000..344ede12b7 --- /dev/null +++ b/cells/greek/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-03-30 +description: Μάθετε πώς να αποθηκεύσετε ένα βιβλίο εργασίας ως PDF χρησιμοποιώντας + το Aspose.Cells. Αυτό το σεμινάριο καλύπτει επίσης την εξαγωγή φύλλου εργασίας σε + PDF, πώς να εξάγετε το Excel σε PDF και να δημιουργήσετε PDF από φύλλο εργασίας. +draft: false +keywords: +- save workbook as pdf +- export worksheet to pdf +- how to export excel to pdf +- save excel as pdf +- create pdf from worksheet +language: el +og_description: Αποθηκεύστε το βιβλίο εργασίας ως PDF εύκολα. Αυτός ο οδηγός δείχνει + πώς να εξάγετε το φύλλο εργασίας σε PDF, πώς να εξάγετε το Excel σε PDF και πώς + να δημιουργήσετε PDF από το φύλλο εργασίας χρησιμοποιώντας C#. +og_title: Αποθήκευση βιβλίου εργασίας ως PDF με το Aspose.Cells – Πλήρης Οδηγός +tags: +- Aspose.Cells +- C# +- PDF generation +title: Αποθήκευση βιβλίου εργασίας ως PDF με το Aspose.Cells – Πλήρης Οδηγός Βήμα‑βήμα +url: /el/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Αποθήκευση βιβλίου εργασίας ως pdf – Πλήρης Οδηγός Βήμα‑βήμα + +Έχετε ποτέ χρειαστεί να **αποθηκεύσετε βιβλίο εργασίας ως pdf** αλλά δεν ήσασταν σίγουροι ποια βιβλιοθήκη θα διατηρήσει τους αριθμούς σας ακριβείς; Δεν είστε μόνοι. Σε πολλά έργα πρέπει να μετατρέψουμε δεδομένα Excel σε ένα επαγγελματικό PDF, και η σωστή προσέγγιση εξοικονομεί ώρες εντοπισμού σφαλμάτων. + +Σε αυτό το tutorial θα περάσουμε από τον ακριβή κώδικα που χρειάζεστε για να **αποθηκεύσετε βιβλίο εργασίας ως pdf** με το Aspose.Cells, και εν τω μεταξύ θα σας δείξουμε επίσης πώς να **εξάγετε φύλλο εργασίας σε pdf**, να απαντήσουμε σε ερωτήσεις *πώς να εξάγετε excel σε pdf* και να παρουσιάσουμε έναν καθαρό τρόπο για **δημιουργία pdf από φύλλο εργασίας** με προσαρμοσμένες ρυθμίσεις ακρίβειας. + +Στο τέλος του οδηγού θα έχετε μια έτοιμη προς εκτέλεση εφαρμογή C# console που παράγει ένα PDF που περιέχει μόνο τα σημαντικά ψηφία που σας ενδιαφέρουν. Χωρίς περιττά στοιχεία, μόνο μια σταθερή, έτοιμη για παραγωγή λύση. + +--- + +## Τι Θα Μάθετε + +- Πώς να δημιουργήσετε ένα νέο `Workbook` και να στοχεύσετε το πρώτο του φύλλο εργασίας. +- Τη συγκεκριμένη μέθοδο για **αποθήκευση βιβλίου εργασίας ως pdf** διατηρώντας την αριθμητική ακρίβεια. +- Γιατί η ιδιότητα `SignificantDigits` είναι σημαντική όταν **εξάγετε φύλλο εργασίας σε pdf**. +- Συνηθισμένα προβλήματα όταν προσπαθείτε να **πώς να εξάγετε excel σε pdf** και πώς να τα αποφύγετε. +- Γρήγοροι τρόποι για **αποθήκευση excel ως pdf** με διαφορετικές επιλογές σελίδας, και πώς να **δημιουργήσετε pdf από φύλλο εργασίας** προγραμματιστικά. + +### Προαπαιτούμενα + +- .NET 6.0 ή νεότερο (ο κώδικας λειτουργεί επίσης με .NET Framework 4.5+). +- Ένα έγκυρο άδεια Aspose.Cells (ή μια δωρεάν προσωρινή άδεια για δοκιμές). +- Visual Studio 2022 ή οποιοδήποτε IDE συμβατό με C#. + +Αν έχετε καλύψει αυτά τα βασικά, ας ξεκινήσουμε. + +--- + +## Βήμα 1 – Εγκατάσταση Aspose.Cells και Αρχικοποίηση του Workbook + +Πρώτα απ' όλα: χρειάζεστε το πακέτο NuGet Aspose.Cells. Ανοίξτε ένα τερματικό στον φάκελο του έργου σας και εκτελέστε: + +```bash +dotnet add package Aspose.Cells +``` + +Μόλις εγκατασταθεί το πακέτο, δημιουργήστε ένα νέο αντικείμενο `Workbook`. Αυτό είναι το αντικείμενο που τελικά θα **αποθηκεύσετε βιβλίο εργασίας ως pdf**. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialise a fresh workbook – think of it as a blank Excel file. + Workbook workbook = new Workbook(); + + // Grab the first worksheet (index 0). This is where we’ll put our data. + Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Γιατί αυτό το βήμα;* +Η δημιουργία του workbook σας παρέχει έναν καθαρό καμβά, και η επιλογή του πρώτου φύλλου εργασίας εξασφαλίζει ότι εργάζεστε σε μια γνωστή θέση. Η παράλειψη αυτού μπορεί να οδηγήσει σε σφάλματα *null reference* όταν αργότερα προσπαθήσετε να **εξάγετε φύλλο εργασίας σε pdf**. + +--- + +## Βήμα 2 – Εισαγωγή Δεδομένων Υψηλής Ακρίβειας + +Τώρα θα εισάγουμε έναν αριθμό που έχει περισσότερα δεκαδικά ψηφία από όσα θέλουμε πραγματικά να εμφανίσουμε στο PDF. Αυτό δείχνει πώς η ρύθμιση `SignificantDigits` περικόπτει το αποτέλεσμα. + +```csharp + // Place a high‑precision number in cell A1. + worksheet.Cells["A1"].PutValue(1234.56789); +``` + +Αν εκτελέσετε το πρόγραμμα τώρα και απλώς καλέσετε `workbook.Save("output.pdf")`, το PDF θα εμφανίσει το πλήρες `1234.56789`. Αυτό είναι εντάξει για ορισμένες περιπτώσεις, αλλά συχνά χρειάζεται να στρογγυλοποιήσετε σε συγκεκριμένο αριθμό σημαντικών ψηφίων—ιδιαίτερα για οικονομικές αναφορές. + +--- + +## Βήμα 3 – Διαμόρφωση Επιλογών Αποθήκευσης PDF + +Το Aspose.Cells σας παρέχει λεπτομερή έλεγχο μέσω του `PdfSaveOptions`. Η ιδιότητα που μας ενδιαφέρει είναι η `SignificantDigits`. Ορίζοντάς την στο `4` λέει στη μηχανή να διατηρήσει μόνο τέσσερα σημαντικά ψηφία όταν **αποθηκεύει βιβλίο εργασίας ως pdf**. + +```csharp + // Configure PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 // This trims the number to 1235 in the PDF. + }; +``` + +*Γιατί να χρησιμοποιήσετε την `SignificantDigits`;* +Όταν **δημιουργείτε pdf από φύλλο εργασίας**, συχνά πρέπει να τηρείτε κανόνες στρογγυλοποίησης. Αυτή η επιλογή κάνει τη στρογγυλοποίηση για εσάς, ώστε να μην χρειάζεται να μορφοποιήσετε χειροκίνητα κάθε κελί. + +--- + +## Βήμα 4 – Εξαγωγή Φύλλου Εργασίας σε PDF με τις Επιλογές + +Εδώ είναι η στιγμή της αλήθειας: στην πραγματικότητα **αποθηκεύουμε το βιβλίο εργασίας ως pdf** χρησιμοποιώντας τις επιλογές που μόλις ορίσαμε. + +```csharp + // Save the workbook as a PDF using the configured options. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + } +} +``` + +Η εκτέλεση του προγράμματος θα δημιουργήσει ένα αρχείο με όνομα `SignificantDigits.pdf` στο φάκελο εξόδου του έργου σας. Ανοίξτε το και θα δείτε `1235` στο κελί A1 – ο αριθμός έχει στρογγυλοποιηθεί σε τέσσερα σημαντικά ψηφία. + +*Κύριο σημείο:* Η μέθοδος `Save` δέχεται τόσο τη διαδρομή του αρχείου όσο και το `PdfSaveOptions`. Αν παραλείψετε τις επιλογές, θα επιστρέψετε στην προεπιλεγμένη συμπεριφορά, η οποία μπορεί να μην ικανοποιεί τις απαιτήσεις ακρίβειας. + +--- + +## Βήμα 5 – Επαλήθευση του Αποτελέσματος και Επίλυση Συνηθισμένων Προβλημάτων + +### Αναμενόμενο Αποτέλεσμα + +- Ένα PDF μιας σελίδας με όνομα `SignificantDigits.pdf`. +- Το κελί A1 εμφανίζει `1235` (τέσσερα σημαντικά ψηφία). +- Δεν εμφανίζονται επιπλέον φύλλα εργασίας ή κρυφό περιεχόμενο. + +### Συχνές Ερωτήσεις + +| Ερώτηση | Απάντηση | +|----------|--------| +| **Τι γίνεται αν χρειάζομαι περισσότερα από ένα φύλλα εργασίας;** | Κάντε βρόχο μέσω `workbook.Worksheets` και εφαρμόστε τις ίδιες `PdfSaveOptions` όταν αποθηκεύετε κάθε φύλλο ξεχωριστά, ή ορίστε `OnePagePerSheet = true` στις επιλογές. | +| **Μπορώ να διατηρήσω την αρχική μορφή αριθμού;** | Ναι – ορίστε `PdfSaveOptions.AllColumnsInOnePage = true` και αφήστε τους κανόνες μορφοποίησης του Excel να το διαχειριστούν, αλλά θυμηθείτε ότι η `SignificantDigits` θα παρακάμπτει την αριθμητική ακρίβεια. | +| **Λειτουργεί αυτό με αρχεία .xlsx που ήδη υπάρχουν;** | Απόλυτα. Αντικαταστήστε το `new Workbook()` με `new Workbook("input.xlsx")` και το υπόλοιπο του κώδικα παραμένει το ίδιο. | +| **Τι γίνεται αν το PDF είναι κενό;** | Επαληθεύστε ότι το workbook περιέχει πραγματικά δεδομένα και ότι αποθηκεύετε σε έναν εγγράψιμο φάκελο. Επίσης, βεβαιωθείτε ότι η άδεια Aspose.Cells έχει εφαρμοστεί σωστά· μια μη αδειοδοτημένη δοκιμή μπορεί να περιορίζει την έξοδο. | + +### Συμβουλή Επαγγελματία + +Αν χρειάζεστε να **αποθηκεύσετε excel ως pdf** με συγκεκριμένη προσανατολισμό σελίδας, ορίστε `pdfSaveOptions.PageSetup.Orientation = PageOrientation.Landscape;` πριν καλέσετε το `Save`. Αυτή η μικρή ρύθμιση συχνά σας εξοικονομεί το χειροκίνητο προσαρμογή του PDF αργότερα. + +--- + +## Παραλλαγές: Εξαγωγή Πολλαπλών Φύλλων ή Προσαρμοσμένες Ρυθμίσεις Σελίδας + +### Εξαγωγή Όλων των Φύλλων σε Μία Κλήση + +```csharp +PdfSaveOptions allSheetsOptions = new PdfSaveOptions +{ + SignificantDigits = 4, + OnePagePerSheet = true // Each worksheet gets its own page. +}; + +workbook.Save("AllSheets.pdf", allSheetsOptions); +``` + +### Εξαγωγή Ενός Φύλλου ως PDF + +Αν θέλετε μόνο να **εξάγετε φύλλο εργασίας σε pdf** για ένα συγκεκριμένο φύλλο, χρησιμοποιήστε τη μέθοδο `ToPdf` του αντικειμένου `Worksheet`: + +```csharp +Worksheet sheet = workbook.Worksheets["Sheet2"]; +sheet.ToPdf("Sheet2.pdf", pdfSaveOptions); +``` + +### Προσαρμογή Περιθωρίων Σελίδας + +```csharp +pdfSaveOptions.PageSetup.TopMargin = 20; +pdfSaveOptions.PageSetup.BottomMargin = 20; +``` + +Αυτές οι ρυθμίσεις σας επιτρέπουν να ρυθμίσετε ακριβώς το τελικό έγγραφο χωρίς μετα‑επεξεργασία. + +--- + +## Πλήρες Παράδειγμα Λειτουργίας + +Παρακάτω βρίσκεται το πλήρες πρόγραμμα, έτοιμο για αντιγραφή‑και‑επικόλληση, που ενσωματώνει όλα όσα συζητήσαμε. Αποθηκεύστε το ως `Program.cs` και εκτελέστε `dotnet run`. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and select the first worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Insert a high‑precision number. + worksheet.Cells["A1"].PutValue(1234.56789); + + // 3️⃣ Set PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 + }; + + // 4️⃣ Save the workbook as PDF. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + + // Optional: Export another sheet with custom settings. + // Worksheet sheet2 = workbook.Worksheets.Add("Report"); + // sheet2.Cells["B2"].PutValue(9876.54321); + // sheet2.ToPdf("Report.pdf", pdfSaveOptions); + } +} +``` + +**Αποτέλεσμα:** Ανοίξτε το `SignificantDigits.pdf` – θα δείτε την στρογγυλοποιημένη τιμή `1235`. Το μέγεθος του αρχείου είναι μικρό, και η διάταξη ταιριάζει με το αρχικό φύλλο Excel. + +--- + +## Συμπέρασμα + +Μόλις σας δείξαμε πώς να **αποθηκεύσετε βιβλίο εργασίας ως pdf** χρησιμοποιώντας το Aspose.Cells, καλύπτοντας τα πάντα από τη βασική ρύθμιση μέχρι τις προχωρημένες επιλογές όπως **εξάγετε φύλλο εργασίας σε pdf**, **πώς να εξάγετε excel σε pdf**, και **δημιουργία pdf από φύλλο εργασίας** με ακριβή αριθμητικό έλεγχο. + +Η προσέγγιση είναι απλή, απαιτεί μόνο λίγες γραμμές C#, και λειτουργεί σε όλες τις εκδόσεις .NET. Στη συνέχεια, μπορείτε να εξερευνήσετε την προσθήκη κεφαλίδων/υποσέλιδων, την ενσωμάτωση εικόνων ή τη δημιουργία PDF από πρότυπα—κάθε ένα από αυτά βασίζεται στο θεμέλιο που έχετε τώρα. + +Έχετε κάποιο ιδιαίτερο σενάριο που θέλετε να δοκιμάσετε; Ίσως χρειάζεται να προστατεύσετε με κωδικό πρόσβασης το PDF ή να συγχωνεύσετε πολλά PDF μαζί. Αυτά είναι φυσικές επεκτάσεις, και το API του Aspose.Cells σας καλύπτει. Βυθιστείτε, πειραματιστείτε, και αφήστε τη βιβλιοθήκη να κάνει τη βαριά δουλειά. + +*Καλό προγραμματισμό! Αν αντιμετωπίσατε προβλήματα, αφήστε ένα σχόλιο παρακάτω και θα τα λύσουμε μαζί.* + +![στιγμιότυπο αποθήκευσης βιβλίου εργασίας ως pdf](/images/save-workbook-as-pdf.png){alt="παράδειγμα αποθήκευσης βιβλίου εργασίας ως pdf που δείχνει το παραγόμενο αρχείο 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/greek/net/converting-excel-files-to-other-formats/_index.md b/cells/greek/net/converting-excel-files-to-other-formats/_index.md index 2682537f00..884399da74 100644 --- a/cells/greek/net/converting-excel-files-to-other-formats/_index.md +++ b/cells/greek/net/converting-excel-files-to-other-formats/_index.md @@ -56,6 +56,8 @@ Μάθετε πώς να μετατρέψετε JSON σε CSV μέσω προγραμματισμού σε .NET χρησιμοποιώντας το Aspose.Cells. Ακολουθήστε τον αναλυτικό οδηγό μας για να διασφαλίσετε τον απρόσκοπτο μετασχηματισμό δεδομένων. ### [Μετατροπή αρχείου Excel σε PPTX μέσω προγραμματισμού σε .NET](./converting-excel-file-to-pptx/) Μάθετε πώς να μετατρέψετε ένα αρχείο Excel σε παρουσίαση PowerPoint (PPTX) μέσω προγραμματισμού χρησιμοποιώντας το Aspose.Cells για .NET με αυτόν τον οδηγό βήμα προς βήμα. +### [Δημιουργία PowerPoint από Excel – Οδηγός βήμα‑βήμα C#](./create-powerpoint-from-excel-step-by-step-c-guide/) +Μάθετε πώς να μετατρέψετε ένα αρχείο Excel σε παρουσίαση PowerPoint χρησιμοποιώντας C# και Aspose.Cells, βήμα προς βήμα. ### [Καθορισμός 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/greek/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md b/cells/greek/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md new file mode 100644 index 0000000000..6f446a94a2 --- /dev/null +++ b/cells/greek/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md @@ -0,0 +1,254 @@ +--- +category: general +date: 2026-03-30 +description: Δημιουργήστε PowerPoint από το Excel γρήγορα χρησιμοποιώντας το Aspose.Cells + και το Aspose.Slides. Μάθετε πώς να εξάγετε το φύλλο εργασίας ως εικόνα και να αποθηκεύσετε + την παρουσίαση ως PPTX σε C#. +draft: false +keywords: +- create powerpoint from excel +- convert excel to powerpoint +- export worksheet as image +- save presentation as pptx +- export excel chart as picture +language: el +og_description: Δημιουργήστε PowerPoint από το Excel σε C# με το Aspose. Εξάγετε το + φύλλο εργασίας ως εικόνα, διατηρήστε τα σχήματα επεξεργάσιμα και αποθηκεύστε το + αποτέλεσμα ως PPTX. +og_title: Δημιουργία PowerPoint από Excel – Πλήρης οδηγός C# +tags: +- Aspose +- C# +- Office Automation +title: Δημιουργία PowerPoint από Excel – Οδηγός C# βήμα‑προς‑βήμα +url: /el/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Δημιουργία PowerPoint από Excel – Πλήρης Οδηγός C# + +Έχετε χρειαστεί ποτέ να **δημιουργήσετε PowerPoint από Excel** αλλά δεν ήσασταν σίγουροι ποια βιβλιοθήκη μπορεί να διατηρήσει τα διαγράμματα σας επεξεργάσιμα; Δεν είστε μόνοι. Σε πολλές περιπτώσεις αναφοράς θα θέλετε να μετατρέψετε ένα λογιστικό φύλλο σε μια παρουσίαση χωρίς να χάσετε τη δυνατότητα να προσαρμόσετε τα πλαίσια κειμένου αργότερα. Αυτός ο οδηγός σας δείχνει ακριβώς πώς να **μετατρέψετε το Excel σε PowerPoint** χρησιμοποιώντας Aspose.Cells και Aspose.Slides, καλύπτοντας επίσης πώς να **εξάγετε το φύλλο εργασίας ως εικόνα** και τελικά **αποθηκεύσετε την παρουσίαση ως PPTX**. + +Θα περάσουμε από κάθε γραμμή κώδικα, θα εξηγήσουμε *γιατί* κάθε ρύθμιση είναι σημαντική, και ακόμη θα συζητήσουμε τι να κάνετε αν το βιβλίο εργασίας σας περιέχει σύνθετα διαγράμματα που προτιμάτε να εξάγετε ως εικόνα. Στο τέλος θα έχετε μια έτοιμη‑για‑εκτέλεση εφαρμογή C# console που παίρνει το `ShapesDemo.xlsx` και παράγει το `Result.pptx` – όλα με επεξεργάσιμα πλαίσια κειμένου και καθαρές εικόνες. + +## Τι Θα Χρειαστεί + +- .NET 6.0 ή νεότερο (το API λειτουργεί και με .NET Framework, αλλά το .NET 6 είναι η ιδανική επιλογή). +- Πακέτα NuGet **Aspose.Cells** και **Aspose.Slides** (δωρεάν δοκιμαστικές άδειες λειτουργούν για δοκιμές). +- Βασική εξοικείωση με τη σύνταξη C# – αν μπορείτε να γράψετε ένα `Console.WriteLine`, είστε έτοιμοι. + +Καμία πρόσθετη COM διασύνδεση, χωρίς εγκατεστημένο Office στον διακομιστή, και χωρίς χειροκίνητη αντιγραφή‑επικόλληση εικόνων. Όλα διαχειρίζονται προγραμματιστικά. + +--- + +## Δημιουργία PowerPoint από Excel – Φόρτωση Βιβλίου Εργασίας και Ορισμός Επιλογών Εξαγωγής + +Το πρώτο που κάνουμε είναι να ανοίξουμε το αρχείο Excel και να πούμε στο Aspose.Cells πώς θέλουμε να αποδοθεί το φύλλο. Το αντικείμενο `ImageOrPrintOptions` είναι όπου συμβαίνει η μαγεία: ενεργοποιούμε το `ExportShapes` και το `ExportEditableTextBoxes` ώστε οποιοδήποτε σχήμα (συμπεριλαμβανομένων των διαγραμμάτων) να γίνει μέρος της διαφάνειας **και** να παραμείνει επεξεργάσιμο μετά τη μετατροπή. + +```csharp +using Aspose.Cells; +using Aspose.Slides; + +// 1️⃣ Load the Excel workbook +string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; +Workbook workbook = new Workbook(excelPath); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first sheet + +// 2️⃣ Configure image export – keep shapes editable +ImageOrPrintOptions imageOptions = new ImageOrPrintOptions +{ + OnePagePerSheet = true, // Export the whole sheet as one slide + ExportShapes = true, // Include shapes (charts, drawings) + ExportEditableTextBoxes = true // Make text boxes editable in PPTX +}; +``` + +**Γιατί αυτά τα flags;** +- `OnePagePerSheet` αποτρέπει το φύλλο να χωριστεί σε πολλές διαφάνειες – παίρνετε μια ενιαία, πλήρους‑μεγέθους εικόνα. +- `ExportShapes` λέει στο Aspose.Cells να ραστεροποιήσει τα διαγράμματα *και* τα διανυσματικά σχήματα, διατηρώντας την εμφάνισή τους. +- `ExportEditableTextBoxes` είναι το μυστικό συστατικό που σας επιτρέπει να κάνετε διπλό‑κλικ σε ένα πλαίσιο κειμένου στο PowerPoint και να επεξεργαστείτε το κείμενο χωρίς να ανοίξετε ξανά το Excel. + +> **Συμβουλή:** Αν χρειάζεστε μόνο μια στατική εικόνα ενός διαγράμματος, ορίστε `ExportShapes = false` και χρησιμοποιήστε τη μέθοδο `ExportExcelChartAsPicture` αργότερα (δείτε την τελική ενότητα). + +--- + +## Μετατροπή Excel σε PowerPoint – Δημιουργία Εικόνας από Φύλλο Εργασίας + +Με τις επιλογές έτοιμες, τώρα μετατρέπουμε το φύλλο εργασίας σε ένα `System.Drawing.Image`. Η `WorksheetToImageConverter` κάνει τη βαριά δουλειά, εφαρμόζοντας τις ρυθμίσεις που μόλις ορίσαμε. + +```csharp +// 3️⃣ Convert the worksheet to an image using the options above +WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); +System.Drawing.Image sheetImage = converter.ConvertToImage(0, imageOptions); +``` + +Το όρισμα `0` υποδεικνύει την πρώτη σελίδα (έχουμε μόνο μία λόγω του `OnePagePerSheet`). Η προκύπτουσα `sheetImage` διατηρεί το αρχικό DPI, ώστε η διαφάνειά σας να μην φαίνεται pixelated ακόμη και σε οθόνες υψηλής ανάλυσης. + +--- + +## Αποθήκευση Παρουσίασης ως PPTX – Εισαγωγή Εικόνας σε Διαφάνεια + +Τώρα δημιουργούμε ένα νέο αρχείο PowerPoint, προσθέτουμε μια διαφάνεια και τοποθετούμε το bitmap σε αυτήν. Το Aspose.Slides αντιμετωπίζει την εικόνα ως σχήμα *picture frame*, το οποίο μπορείτε αργότερα να αλλάξετε σε μέγεθος ή να μετακινήσετε όπως οποιοδήποτε ενσωματωμένο αντικείμενο PowerPoint. + +```csharp +// 4️⃣ Create a new PowerPoint presentation +Presentation presentation = new Presentation(); +ISlide slide = presentation.Slides[0]; // The default blank slide + +// Add the Excel‑derived image as a picture frame +slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, // Simple rectangle container + 0, 0, // Top‑left corner (0,0) + sheetImage.Width, // Width of the picture + sheetImage.Height, // Height of the picture + sheetImage); // The bitmap we generated +``` + +> **Τι γίνεται αν η εικόνα είναι μεγαλύτερη από το μέγεθος της διαφάνειας;** +> Το PowerPoint θα κόψει αυτόματα οτιδήποτε υπερβαίνει τις διαστάσεις της διαφάνειας. Μια γρήγορη λύση είναι να κλιμακώσετε την εικόνα πριν την εισαγάγετε: + +```csharp +float scale = Math.Min(presentation.SlideSize.Size.Width / (float)sheetImage.Width, + presentation.SlideSize.Size.Height / (float)sheetImage.Height); +int newWidth = (int)(sheetImage.Width * scale); +int newHeight = (int)(sheetImage.Height * scale); +``` + +Στη συνέχεια μπορείτε να περάσετε τα `newWidth` και `newHeight` στη μέθοδο `AddPictureFrame`. + +--- + +## Εξαγωγή Φύλλου Εργασίας ως Εικόνα – Αποθήκευση του Αρχείου PPTX + +Τέλος αποθηκεύουμε την παρουσίαση στο δίσκο. Η σημαία `SaveFormat.Pptx` εγγυάται τη σύγχρονη μορφή OpenXML, η οποία λειτουργεί σε όλες τις πρόσφατες εκδόσεις του PowerPoint. + +```csharp +// 5️⃣ Save the presentation as a PPTX file +string pptxPath = "YOUR_DIRECTORY/Result.pptx"; +presentation.Save(pptxPath, SaveFormat.Pptx); +``` + +Όταν ανοίξετε το `Result.pptx` θα δείτε μια ενιαία διαφάνεια που φαίνεται ακριβώς όπως το φύλλο Excel σας, αλλά μπορείτε ακόμη να κάνετε κλικ σε οποιοδήποτε πλαίσιο κειμένου και να επεξεργαστείτε το περιεχόμενό του απευθείας στο PowerPoint. + +--- + +## Εξαγωγή Διαγράμματος Excel ως Εικόνα – Όταν Προτιμώνται Raster Εικόνες + +Μερικές φορές δεν χρειάζεστε επεξεργάσιμα σχήματα· ένα υψηλής ποιότητας PNG ενός διαγράμματος αρκεί. Το Aspose.Cells μπορεί να εξάγει ένα συγκεκριμένο διάγραμμα σε εικόνα χωρίς να μετατρέπει ολόκληρο το φύλλο: + +```csharp +// Example: Export the first chart on the sheet as a PNG +int chartIndex = 0; // Adjust if you have multiple charts +Chart chart = worksheet.Charts[chartIndex]; +ImageOrPrintOptions chartOptions = new ImageOrPrintOptions +{ + ImageFormat = ImageFormat.Png, + OnePagePerSheet = false +}; +chart.ToImage("chart.png", chartOptions); +``` + +Στη συνέχεια μπορείτε να ενσωματώσετε το `chart.png` σε μια διαφάνεια με τον ίδιο τρόπο που προσθέσαμε το `sheetImage`. Αυτή η προσέγγιση μειώνει το μέγεθος του αρχείου PPTX και είναι χρήσιμη όταν τα περιβάλλοντα δεδομένα δεν χρειάζονται στη διαφάνεια. + +--- + +## Συνηθισμένα Προβλήματα & Πώς να τα Αποφύγετε + +| Πρόβλημα | Γιατί συμβαίνει | Διόρθωση | +|----------|----------------|----------| +| **Το κείμενο φαίνεται θολό** | Εξάγεται με χαμηλό DPI (προεπιλογή 96). | Ορίστε `imageOptions.Dpi = 300;` πριν τη μετατροπή. | +| **Τα σχήματα εξαφανίζονται** | `ExportShapes` παραμένει `false`. | Βεβαιωθείτε ότι `ExportShapes = true` όταν χρειάζεστε επεξεργάσιμα γραφικά. | +| **Ασυμφωνία μεγέθους διαφάνειας** | Η εικόνα είναι μεγαλύτερη από τις διαστάσεις της διαφάνειας. | Κλιμακώστε την εικόνα (δείτε το απόσπασμα κώδικα) ή αλλάξτε το μέγεθος της διαφάνειας μέσω του `presentation.SlideSize`. | +| **Εξαίρεση άδειας** | Χρήση δοκιμαστικής έκδοσης χωρίς σωστή ενεργοποίηση. | Καλέστε `License license = new License(); license.SetLicense("Aspose.Total.lic");` νωρίς στο `Main`. | + +--- + +## Πλήρες Παράδειγμα Εργασίας (Έτοιμο για Αντιγραφή‑Επικόλληση) + +Παρακάτω βρίσκεται ολόκληρο το πρόγραμμα, έτοιμο να ενσωματωθεί σε ένα νέο έργο console. Αντικαταστήστε το `YOUR_DIRECTORY` με το φάκελο που περιέχει το αρχείο Excel σας. + +```csharp +using System; +using Aspose.Cells; +using Aspose.Slides; +using System.Drawing; + +namespace ExcelToPowerPointDemo +{ + class Program + { + static void Main(string[] args) + { + // ----------------------------------------------------------------- + // 1️⃣ Load the Excel workbook + // ----------------------------------------------------------------- + string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; + Workbook workbook = new Workbook(excelPath); + Worksheet worksheet = workbook.Worksheets[0]; + + // ----------------------------------------------------------------- + // 2️⃣ Set up export options – keep shapes editable + // ----------------------------------------------------------------- + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + OnePagePerSheet = true, + ExportShapes = true, + ExportEditableTextBoxes = true, + Dpi = 300 // High‑resolution output + }; + + // ----------------------------------------------------------------- + // 3️⃣ Convert worksheet to an image + // ----------------------------------------------------------------- + WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); + Image sheetImage = converter.ConvertToImage(0, imageOptions); + + // ----------------------------------------------------------------- + // 4️⃣ Create PowerPoint and add the image as a slide + // ----------------------------------------------------------------- + Presentation presentation = new Presentation(); + ISlide slide = presentation.Slides[0]; + slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, + 0, 0, + sheetImage.Width, + sheetImage.Height, + sheetImage); + + // ----------------------------------------------------------------- + // 5️⃣ Save the PPTX file + // ----------------------------------------------------------------- + string pptxPath = "YOUR_DIRECTORY/Result.pptx"; + presentation.Save(pptxPath, SaveFormat.Pptx); + + Console.WriteLine("✅ PowerPoint created successfully at: " + pptxPath); + } + } +} +``` + +**Αναμενόμενο αποτέλεσμα:** +Η εκτέλεση του προγράμματος εκτυπώνει `✅ PowerPoint created successfully at: YOUR_DIRECTORY/Result.pptx`. Το άνοιγμα του PPTX εμφανίζει μια ενιαία διαφάνεια που αντικατοπτρίζει το αρχικό φύλλο Excel, με επεξεργάσιμα πλαίσια κειμένου. + +--- + +## Ανακεφαλαίωση & Επόμενα Βήματα + +Τώρα ξέρετε πώς να **δημιουργήσετε PowerPoint από Excel** χρησιμοποιώντας τα ισχυρά API της Aspose, πώς να **εξάγετε το φύλλο εργασίας ως εικόνα**, και πώς να **αποθηκεύσετε την παρουσίαση ως PPTX** διατηρώντας την επεξεργασιμότητα. Το ίδιο μοτίβο λειτουργεί για βιβλία εργασίας με πολλά φύλλα — απλώς κάντε βρόχο μέσω του `workbook.Worksheets` και προσθέστε μια νέα διαφάνεια για κάθε ένα. + +**Τι να εξερευνήσετε στη συνέχεια;** + +- **Μαζική μετατροπή:** Κάντε βρόχο σε έναν φάκελο Excel αρχείων και δημιουργήστε μια παρουσίαση ανά αρχείο. +- **Δυναμικές διατάξεις:** Χρησιμοποιήστε το `slide.LayoutSlide` για να εφαρμόσετε προ‑σχεδιασμένα πρότυπα PowerPoint. +- **Εξαγωγή μόνο διαγράμματος:** Συνδυάστε το απόσπασμα “Export Excel chart as picture” με placeholders διαφάνειας για μια πιο ελαφριά παρουσίαση. +- **Προηγμένη μορφοποίηση:** Εφαρμόστε προσαρμοσμένα φόντα διαφάνειας, μεταβάσεις ή animation μέσω του Aspose.Slides. + +Μη διστάσετε να πειραματιστείτε — αλλάξτε το DPI, αντικαταστήστε το `ShapeType.Ellipse` με ένα κυκλικό picture frame, ή ακόμη ενσωματώστε πολλαπλές εικόνες ανά διαφάνεια. Ο ουρανός είναι το όριο όταν έχετε προγραμματιστικό έλεγχο πάνω σε + +{{< /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/greek/net/document-properties/_index.md b/cells/greek/net/document-properties/_index.md index b3ac6256f7..054a84eaf2 100644 --- a/cells/greek/net/document-properties/_index.md +++ b/cells/greek/net/document-properties/_index.md @@ -35,6 +35,8 @@ Μάθετε πώς να αποκτάτε πρόσβαση στις ιδιότητες εγγράφων στο Excel χρησιμοποιώντας το Aspose.Cells για .NET με τον αναλυτικό μας οδηγό. Διαχειριστείτε τα υπολογιστικά σας φύλλα αποτελεσματικά. ### [Προσθήκη ιδιοτήτων εγγράφου στο .NET](./adding-document-properties/) Μάθετε πώς να προσθέτετε ιδιότητες εγγράφου στο Excel χρησιμοποιώντας το Aspose.Cells για .NET με αυτόν τον λεπτομερή οδηγό βήμα προς βήμα. +### [Πώς να αποθηκεύσετε XLSB με προσαρμοσμένες ιδιότητες σε C# – Οδηγός βήμα‑βήμα](./how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/) +Μάθετε πώς να αποθηκεύετε αρχεία XLSB με προσαρμοσμένες ιδιότητες χρησιμοποιώντας το Aspose.Cells για .NET σε C#. Οδηγός βήμα‑βήμα. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/greek/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md b/cells/greek/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md new file mode 100644 index 0000000000..ea786b1578 --- /dev/null +++ b/cells/greek/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md @@ -0,0 +1,233 @@ +--- +category: general +date: 2026-03-30 +description: Μάθετε πώς να αποθηκεύετε XLSB σε C# ενώ προσθέτετε προσαρμοσμένη ιδιότητα, + την διαβάζετε ξανά και να κυριαρχήσετε στην αποθήκευση του βιβλίου εργασίας ως XLSB + χρησιμοποιώντας το Aspose.Cells. Περιλαμβάνεται πλήρης κώδικας. +draft: false +keywords: +- how to save xlsb +- add custom property +- how to add property +- how to read property +- save workbook as xlsb +language: el +og_description: Πώς να αποθηκεύσετε XLSB σε C#; Αυτό το σεμινάριο σας δείχνει πώς + να προσθέσετε προσαρμοσμένη ιδιότητα, να την διαβάσετε ξανά και να αποθηκεύσετε + το βιβλίο εργασίας ως XLSB με το Aspose.Cells. +og_title: Πώς να αποθηκεύσετε XLSB με προσαρμοσμένες ιδιότητες σε C# – Πλήρης οδηγός +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Πώς να αποθηκεύσετε XLSB με προσαρμοσμένες ιδιότητες σε C# – Οδηγός βήμα‑προς‑βήμα +url: /el/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Πώς να Αποθηκεύσετε XLSB με Προσαρμοσμένες Ιδιότητες σε C# – Οδηγός Βήμα‑βήμα + +Έχετε αναρωτηθεί ποτέ **πώς να αποθηκεύσετε XLSB** διατηρώντας επιπλέον μεταδεδομένα συνδεδεμένα με ένα φύλλο εργασίας; Δεν είστε οι μόνοι. Σε πολλές επιχειρηματικές περιπτώσεις χρειάζεστε ένα δυαδικό αρχείο Excel που να μεταφέρει τα δικά σας ζεύγη κλειδί/τιμή — σκεφτείτε ένα ID σύμβασης, μια σημαία επεξεργασίας ή μια ετικέτα έκδοσης. + +Το καλό νέο είναι ότι το Aspose.Cells το κάνει παιχνιδάκι. Σε αυτόν τον οδηγό θα δείτε ακριβώς πώς να προσθέσετε μια προσαρμοσμένη ιδιότητα, να την αποθηκεύσετε και, στη συνέχεια, να τη διαβάσετε ξανά, όλα ενώ **αποθηκεύετε το βιβλίο εργασίας ως XLSB**. Χωρίς ασαφείς αναφορές, μόνο ένα πλήρες, εκτελέσιμο παράδειγμα που μπορείτε να ενσωματώσετε στο έργο σας σήμερα. + +## Τι Θα Αποκομίσετε + +- Ένα νέο αρχείο `.xlsb` δημιουργημένο από το μηδέν. +- Την ικανότητα να **προσθέσετε προσαρμοσμένη ιδιότητα** σε ένα φύλλο εργασίας. +- Κώδικα που δείχνει **πώς να διαβάσετε την ιδιότητα** μετά την επαναφόρτωση του αρχείου. +- Συμβουλές για πιθανά προβλήματα όταν **αποθηκεύετε βιβλίο εργασίας ως XLSB**. + +> **Προαπαιτούμενα:** .NET 6+ (ή .NET Framework 4.6+), Visual Studio (ή οποιοδήποτε IDE για C#) και η βιβλιοθήκη Aspose.Cells for .NET εγκατεστημένη μέσω NuGet. Τίποτα άλλο. + +--- + +## Βήμα 1: Ρύθμιση του Έργου και Δημιουργία Νέου Workbook + +Πρώτα απ' όλα — ας δημιουργήσουμε ένα καθαρό αντικείμενο workbook. + +```csharp +using Aspose.Cells; +using System; + +// Initialize a new workbook; this will be an in‑memory Excel file. +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0) – it’s created automatically. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Γιατί είναι σημαντικό:* Η `Workbook` είναι το σημείο εισόδου για κάθε λειτουργία στο Aspose.Cells. Ξεκινώντας με μια ολοκαίνουργια παρουσία αποφεύγετε τυχόν κρυφές καταστάσεις που θα μπορούσαν να καταστρέψουν τα προσαρμοσμένα μεταδεδομένα αργότερα. + +--- + +## Βήμα 2: **Προσθήκη Προσαρμοσμένης Ιδιότητας** στο Φύλλο Εργασίας + +Τώρα θα συνδέσουμε ένα ζεύγος κλειδί/τιμή που υπάρχει μόνο σε αυτό το φύλλο. + +```csharp +// Add a user‑defined property called "MyProperty" with the value "CustomValue". +worksheet.CustomProperties.Add("MyProperty", "CustomValue"); +``` + +> **Pro tip:** Τα ονόματα των ιδιοτήτων είναι case‑sensitive. Αν αργότερα προσπαθήσετε να ανακτήσετε το `"myproperty"` θα λάβετε `KeyNotFoundException`. Χρησιμοποιήστε μια σταθερή σύμβαση ονοματοδοσίας — camelCase ή PascalCase — από την αρχή. + +--- + +## Βήμα 3: **Αποθήκευση Workbook ως XLSB** – Διατήρηση της Ιδιότητας + +Η μαγεία συμβαίνει όταν γράφετε το workbook στη δυαδική μορφή XLSB. + +```csharp +// Define the output path. Adjust the folder to something writable on your machine. +string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + +// Save the workbook; the custom property travels with the file. +workbook.Save(outputPath, SaveFormat.Xlsb); +``` + +*Τι κάνετε στην πραγματικότητα:* Η τιμή `SaveFormat.Xlsb` του enum λέει στο Aspose.Cells να δημιουργήσει ένα δυαδικό αρχείο Excel (πιο γρήγορο στο άνοιγμα, μικρότερο στο δίσκο). Όλες οι προσαρμοσμένες ιδιότητες σε επίπεδο φύλλου εργασίας σειριοποιούνται αυτόματα — δεν απαιτούνται επιπλέον βήματα. + +--- + +## Βήμα 4: Επαναφόρτωση του Αρχείου και **Πώς να Διαβάσετε την Ιδιότητα** + +Ας αποδείξουμε ότι η ιδιότητα επέζησε του κύκλου. + +```csharp +// Load the just‑saved XLSB file back into memory. +Workbook reloadedWorkbook = new Workbook(outputPath); + +// Access the same worksheet (index 0) and fetch the property value. +string customValue = reloadedWorkbook.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); +``` + +Αν όλα πήγαν καλά, η μεταβλητή `customValue` τώρα περιέχει `"CustomValue"`. + +--- + +## Βήμα 5: Επαλήθευση του Αποτελέσματος – Γρήγορη Έξοδος στην Κονσόλα + +Μια μικρή επιβεβαίωση βοηθάει κατά την ανάπτυξη. + +```csharp +Console.WriteLine($"Custom property value: {customValue}"); +``` + +Η εκτέλεση του προγράμματος θα πρέπει να εκτυπώσει: + +``` +Custom property value: CustomValue +``` + +Η εμφάνιση αυτής της γραμμής σημαίνει ότι έχετε κατακτήσει **πώς να αποθηκεύσετε XLSB**, **πώς να προσθέσετε προσαρμοσμένη ιδιότητα** και **πώς να διαβάσετε την ιδιότητα** — όλα σε μια καθαρή ροή. + +--- + +## Πλήρες Παράδειγμα (Έτοιμο για Αντιγραφή‑Επικόλληση) + +Παρακάτω είναι ολόκληρο το πρόγραμμα. Επικολλήστε το σε μια νέα Console App, πατήστε **F5**, και παρακολουθήστε την κονσόλα να επιβεβαιώνει την τιμή της ιδιότητας. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // 1️⃣ Create a new workbook and get its first sheet + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // 2️⃣ Add a custom property (key/value) to the sheet + // ------------------------------------------------- + worksheet.CustomProperties.Add("MyProperty", "CustomValue"); + + // ------------------------------------------------- + // 3️⃣ Save the workbook as XLSB – the property is kept + // ------------------------------------------------- + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(outputPath, SaveFormat.Xlsb); + + // ------------------------------------------------- + // 4️⃣ Reload the saved file to demonstrate persistence + // ------------------------------------------------- + Workbook reloaded = new Workbook(outputPath); + + // ------------------------------------------------- + // 5️⃣ Retrieve the custom property's value + // ------------------------------------------------- + string customValue = reloaded.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); + + // ------------------------------------------------- + // 6️⃣ Display the retrieved value (optional) + // ------------------------------------------------- + Console.WriteLine($"Custom property value: {customValue}"); + } +} +``` + +> **Θυμηθείτε:** Αλλάξτε το `outputPath` σε φάκελο όπου έχετε δικαίωμα εγγραφής. Αν εργάζεστε σε Linux/macOS, χρησιμοποιήστε διαδρομή όπως `"/tmp/WithCustomProp.xlsb"`. + +--- + +## Συχνές Ερωτήσεις & Ακραίες Περιπτώσεις + +### Τι γίνεται αν η ιδιότητα υπάρχει ήδη; +Η κλήση `Add` με υπάρχον κλειδί ρίχνει `ArgumentException`. Χρησιμοποιήστε `ContainsKey` ή τυλίξτε την κλήση σε `try/catch` αν δεν είστε σίγουροι. + +```csharp +if (!worksheet.CustomProperties.ContainsKey("MyProperty")) +{ + worksheet.CustomProperties.Add("MyProperty", "AnotherValue"); +} +``` + +### Μπορώ να αποθηκεύσω τιμές μη‑συμβολοσειράς; +Απολύτως. Η ιδιότητα `Value` δέχεται οποιοδήποτε `object`. Για αριθμούς, ημερομηνίες ή boolean περάστε τον αντίστοιχο τύπο — το Aspose.Cells θα διαχειριστεί τη μετατροπή κατά την ανάγνωση. + +### Διατηρείται η ιδιότητα όταν μετατρέπω σε XLSX; +Ναι. Οι προσαρμοσμένες ιδιότητες αποτελούν μέρος της XML αναπαράστασης του φύλλου, επομένως παραμένουν σε μορφές XLSX, XLS και XLSB. + +### Πώς να **προσθέσετε ιδιότητα** σε πολλά φύλλα; +Κάντε βρόχο στη συλλογή `Worksheets` και εφαρμόστε την ίδια κλήση `CustomProperties.Add` σε κάθε φύλλο που χρειάζεται. + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + ws.CustomProperties.Add("ExportedBy", "MyApp"); +} +``` + +### Συμβουλή απόδοσης όταν **αποθηκεύετε βιβλία εργασίας ως XLSB** μαζικά +Αν δημιουργείτε εκατοντάδες αρχεία, επαναχρησιμοποιήστε το ίδιο αντικείμενο `Workbook` και καλέστε `Clear` μετά από κάθε αποθήκευση για να ελευθερώσετε μνήμη. Επίσης, ορίστε `Workbook.Settings.CalculateFormulaOnOpen = false` αν δεν χρειάζεται να υπολογίζονται τύποι κατά το άνοιγμα. + +--- + +## Συμπέρασμα + +Τώρα ξέρετε **πώς να αποθηκεύσετε XLSB** σε C# ενσωματώνοντας και αργότερα ανακτώντας μια προσαρμοσμένη ιδιότητα με το Aspose.Cells. Η πλήρης λύση — δημιουργία του workbook, προσθήκη ιδιότητας, αποθήκευση με **save workbook as XLSB**, επαναφόρτωση και ανάγνωση της τιμής — χωράει σε λιγότερο από 50 γραμμές κώδικα. + +Από εδώ μπορείτε να εξερευνήσετε: + +- Προσθήκη πολλαπλών προσαρμοσμένων ιδιοτήτων ανά φύλλο. +- Αποθήκευση σύνθετων αντικειμένων μέσω JSON συμβολοσειρών. +- Κρυπτογράφηση του αρχείου XLSB για επιπλέον ασφάλεια. + +Δοκιμάστε αυτές τις ιδέες και θα γίνετε γρήγορα το άτομο-αναφορά για αυτοματοποίηση Excel στην ομάδα σας. Έχετε ερωτήσεις ή κάποιο δύσκολο σενάριο; Αφήστε ένα σχόλιο παρακάτω, και καλή προγραμματιστική! + +![How to save XLSB with custom property](/images/how-to-save-xlsb.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/greek/net/excel-copy-worksheet/_index.md b/cells/greek/net/excel-copy-worksheet/_index.md index 132e3325b8..6122c885b4 100644 --- a/cells/greek/net/excel-copy-worksheet/_index.md +++ b/cells/greek/net/excel-copy-worksheet/_index.md @@ -21,7 +21,7 @@ ## Αντιγραφή Φύλλων Εργασίας Εύκολη -Σας άρεσε ποτέ να μπορούσατε να αντιγράψετε ένα φύλλο εργασίας από ένα βιβλίο εργασίας του Excel σε ένα άλλο με λίγες μόνο γραμμές κώδικα; Ακούγεται μαγικό! Με το Aspose.Cells για .NET, είναι απολύτως εφικτό. Το σεμινάριό μας για... [Αντιγραφή φύλλου εργασίας Excel από άλλο βιβλίο εργασίας](./excel-copy-worksheet-from-other-workbook/) σας καθοδηγεί βήμα προς βήμα σε αυτή τη διαδικασία, καθιστώντας την απλή και ξεκάθαρη. Θα μάθετε τα ακριβή αποσπάσματα κώδικα που πρέπει να χρησιμοποιήσετε, επιτρέποντάς σας να εφαρμόσετε αυτήν τη λειτουργία στα δικά σας έργα με ευκολία. Επιπλέον, εξοικονομεί χρόνο όταν εργάζεστε με μεγάλα σύνολα δεδομένων! +Σας άρεσε ποτέ να μπορείτε να αντιγράψετε ένα φύλλο εργασίας από ένα βιβλίο εργασίας του Excel σε ένα άλλο με λίγες μόνο γραμμές κώδικα; Ακούγεται μαγικό! Με το Aspose.Cells για .NET, είναι απολύτως εφικτό. Το σεμινάριό μας για... [Αντιγραφή φύλλου εργασίας Excel από άλλο βιβλίο εργασίας](./excel-copy-worksheet-from-other-workbook/) σας καθοδηγεί βήμα προς βήμα σε αυτή τη διαδικασία, καθιστώντας την απλή και ξεκάθαρη. Θα μάθετε τα ακριβή αποσπάσματα κώδικα που πρέπει να χρησιμοποιήσετε, επιτρέποντάς σας να εφαρμόσετε αυτήν τη λειτουργία στα δικά σας έργα με ευκολία. Επιπλέον, εξοικονομεί χρόνο όταν εργάζεστε με μεγάλα σύνολα δεδομένων! ## Βελτιστοποιήστε τη διαχείριση του Excel σας @@ -38,10 +38,11 @@ ## Εκπαιδευτικά σεμινάρια | Τίτλος | Περιγραφή | | --- | --- | -| [Αντιγραφή φύλλου εργασίας 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-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. | +| [Πώς να αντιγράψετε φύλλο εργασίας σε C# με Aspose.Cells – Πλήρης οδηγός](./how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/) | Μάθετε πώς να αντιγράψετε ένα φύλλο εργασίας σε C# χρησιμοποιώντας το Aspose.Cells με πλήρη οδηγό βήμα προς βήμα. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/greek/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md b/cells/greek/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md new file mode 100644 index 0000000000..61e954624e --- /dev/null +++ b/cells/greek/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md @@ -0,0 +1,274 @@ +--- +category: general +date: 2026-03-30 +description: Πώς να αντιγράψετε φύλλο εργασίας σε C# χρησιμοποιώντας το Aspose.Cells + – βήμα‑βήμα οδηγός που καλύπτει την αντιγραφή περιοχής κελιών, την αντιγραφή στηλών + μεταξύ φύλλων, την αντιγραφή του πίνακα Pivot του φύλλου εργασίας και την προσθήκη + κώδικα για νέο φύλλο εργασίας. +draft: false +keywords: +- how to copy worksheet +- copy cell range +- copy columns between sheets +- copy worksheet pivot table +- add new worksheet code +language: el +og_description: Μάθετε πώς να αντιγράψετε φύλλο εργασίας σε C# με το Aspose.Cells. + Αυτός ο οδηγός δείχνει πώς να αντιγράψετε περιοχή κελιών, να διατηρήσετε πίνακες + Pivot, να αντιγράψετε στήλες μεταξύ φύλλων και να προσθέσετε κώδικα για νέο φύλλο + εργασίας. +og_title: Πώς να αντιγράψετε φύλλο εργασίας σε C# – Πλήρες σεμινάριο Aspose.Cells +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Πώς να αντιγράψετε φύλλο εργασίας σε C# με το Aspose.Cells – Πλήρης οδηγός +url: /el/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Πώς να Αντιγράψετε Φύλλο Εργασίας σε C# με Aspose.Cells – Πλήρης Οδηγός + +Έχετε αναρωτηθεί ποτέ **πώς να αντιγράψετε φύλλο εργασίας** σε C# χωρίς να χάσετε ούτε έναν πίνακα pivot ή τύπο; Δεν είστε μόνοι—πολλοί προγραμματιστές συναντούν πρόβλημα όταν πρέπει να διπλασιάσουν ένα φύλλο διατηρώντας όλα τα στοιχεία ανέπαφα. Σε αυτό το tutorial θα περάσουμε βήμα‑βήμα μια πρακτική, ολοκληρωμένη λύση που όχι μόνο αντιγράφει τα δεδομένα αλλά επίσης διατηρεί το **copy worksheet pivot table**, διαχειρίζεται το **copy cell range**, και δείχνει τον **add new worksheet code** που χρειάζεστε. + +Θα καλύψουμε τα πάντα, από τη φόρτωση του πηγαίου workbook μέχρι την αποθήκευση του αρχείου προορισμού, ώστε να μπορείτε να **copy columns between sheets**, να διατηρήσετε αντικείμενα και να κρατήσετε τον κώδικά σας καθαρό. Χωρίς ασαφείς αναφορές, μόνο ένα πλήρες, εκτελέσιμο παράδειγμα που μπορείτε να ενσωματώσετε στο πρότζεκτ σας σήμερα. + +## Τι Καλύπτει Αυτός ο Οδηγός + +- Φόρτωση υπάρχοντος αρχείου Excel με Aspose.Cells +- Χρήση **add new worksheet code** για δημιουργία φύλλου προορισμού +- Ορισμός ενός **copy cell range** που περιλαμβάνει πίνακα pivot +- Ρύθμιση **CopyOptions** για διατήρηση διαγραμμάτων, τύπων και πινάκων pivot ανέπαφων +- Εκτέλεση **copy columns between sheets** με ακρίβεια ανά γραμμή +- Αποθήκευση του αποτελέσματος και επαλήθευση ότι το φύλλο εργασίας αντιγράφηκε σωστά + +Στο τέλος αυτού του οδηγού θα μπορείτε να απαντήσετε με σιγουριά στην ερώτηση “how to copy worksheet”, είτε αυτοματοποιείτε αναφορές είτε δημιουργείτε UI που βασίζεται σε υπολογιστικά φύλλα. + +--- + +## Πώς να Αντιγράψετε Φύλλο Εργασίας – Επισκόπηση + +Πριν βουτήξουμε στον κώδικα, ας περιγράψουμε τη γενική ροή. Σκεφτείτε το ως μια συνταγή: + +1. **Load** το πηγαίο workbook (`Source.xlsx`). +2. **Add** ένα νέο φύλλο για να κρατήσει το αντίγραφο (`add new worksheet code`). +3. **Define** την περιοχή που θέλετε να αντιγράψετε (`copy cell range`). +4. **Configure** τις επιλογές αντιγραφής ώστε ο πίνακας pivot να παραμείνει (`copy worksheet pivot table`). +5. **Copy** γραμμές και στήλες (`copy columns between sheets`). +6. **Save** το νέο workbook (`Destination.xlsx`). + +Αυτό είναι—έξι βήματα, χωρίς μαγεία. Κάθε βήμα εξηγείται παρακάτω με αποσπάσματα κώδικα και τη λογική που τα υποστηρίζει. + +--- + +## Βήμα 1 – Φόρτωση του Πηγαίου Workbook + +Πρώτα απ’ όλα: χρειάζεστε μια παρουσία `Workbook` που να δείχνει στο αρχείο που θέλετε να αντιγράψετε. Αυτό το βήμα είναι απαραίτητο επειδή το Aspose.Cells λειτουργεί άμεσα με το σύστημα αρχείων, όχι με το UI του Office. + +```csharp +using Aspose.Cells; + +// Path to the original file +string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; +string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + +// Load the workbook – this is the starting point for how to copy worksheet +Workbook workbook = new Workbook(sourcePath); +``` + +*Why this matters:* Η φόρτωση του αρχείου δημιουργεί μια αναπαράσταση στη μνήμη για κάθε φύλλο, κελί και αντικείμενο. Χωρίς αυτό, δεν υπάρχει τίποτα για αντιγραφή, και οποιαδήποτε προσπάθεια `add new worksheet code` αργότερα θα αποτύχει επειδή τα δεδομένα πηγής δεν υπάρχουν. + +## Βήμα 2 – Προσθήκη Νέου Φύλλου Εργασίας (add new worksheet code) + +Τώρα χρειαζόμαστε ένα μέρος για να επικολλήσουμε τα αντιγραμμένα δεδομένα. Εδώ ξεχωρίζει ο **add new worksheet code**. Μπορείτε να ονομάσετε το φύλλο όπως θέλετε· εδώ το ονομάζουμε `"Copy"`. + +```csharp +// Grab the first worksheet (the one we want to copy) +Worksheet sourceSheet = workbook.Worksheets[0]; + +// Add a fresh worksheet to receive the copy +Worksheet copySheet = workbook.Worksheets.Add("Copy"); +``` + +*Pro tip:* Αν σκοπεύετε να αντιγράψετε πολλά φύλλα, καλέστε `Worksheets.Add` μέσα σε βρόχο και δώστε σε κάθε φύλλο ένα μοναδικό όνομα. Έτσι αποφεύγετε συγκρούσεις ονομάτων και κρατάτε το workbook σας τακτοποιημένο. + +## Βήμα 3 – Ορισμός του Copy Cell Range + +Ένα **copy cell range** λέει στο Aspose.Cells ακριβώς ποιες γραμμές και στήλες να διπλασιαστούν. Σε πολλές πραγματικές περιπτώσεις η περιοχή περιλαμβάνει πίνακα pivot, οπότε πρέπει να είμαστε ακριβείς. + +```csharp +// Define the area that contains the pivot table (A1:G20) +CellArea sourceRange = new CellArea +{ + StartRow = 0, // Row 1 (zero‑based) + StartColumn = 0, // Column A + EndRow = 19, // Row 20 + EndColumn = 6 // Column G +}; + +// Destination range – we start at the same top‑left corner +CellArea destinationRange = new CellArea +{ + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 +}; +``` + +*Why we need this:* Αναφέροντας ρητά την περιοχή, αποφεύγετε την αντιγραφή ολόκληρου του φύλλου (που μπορεί να είναι σπατάλη) και εξασφαλίζετε ότι ο πίνακας pivot βρίσκεται μέσα στην αντιγραμμένη περιοχή. Αυτό είναι το κεντρικό στοιχείο του **how to copy worksheet** όταν χρειάζεστε μόνο μέρος του φύλλου. + +## Βήμα 4 – Ρύθμιση Copy Options (preserve copy worksheet pivot table) + +Το Aspose.Cells προσφέρει ένα αντικείμενο `CopyOptions` που ελέγχει τι θα επικολληθεί. Για να διατηρήσετε τον πίνακα pivot, τα διαγράμματα και τους τύπους, ορίζουμε `PasteType.All` και ενεργοποιούμε `PasteSpecial`. + +```csharp +CopyOptions copyOptions = new CopyOptions +{ + PasteType = PasteType.All, // Copy everything: values, formats, objects + PasteSpecial = true // Enable special paste to retain pivot tables +}; +``` + +*Explanation:* Το `PasteType.All` είναι η πιο περιεκτική επιλογή, ενώ το `PasteSpecial` λέει στη μηχανή να χειριστεί σωστά πολύπλοκα αντικείμενα—όπως πίνακες pivot. Η παράλειψη αυτού του βήματος είναι κοινό λάθος· το αντιγραμμένο φύλλο θα χάσει τις διαδραστικές του λειτουργίες. + +## Βήμα 5 – Αντιγραφή Γραμμών και Στηλών (copy columns between sheets) + +Τώρα έρχεται η βαριά δουλειά: η πραγματική μετακίνηση των δεδομένων. Θα χρησιμοποιήσουμε `CopyRows` και `CopyColumns` για να χειριστούμε το **copy columns between sheets**. Η εκτέλεση και των δύο εξασφαλίζει ότι τα συγχωνευμένα κελιά και τα πλάτη των στηλών διατηρούνται. + +```csharp +// Copy rows from the source to the destination sheet +sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + +// Copy columns from the source to the destination sheet +sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); +``` + +*What’s happening:* Το `CopyRows` μεταφέρει τα δεδομένα γραμμή‑με‑γραμμή, ενώ το `CopyColumns` κάνει το ίδιο στήλη‑με‑στήλη. Η εκτέλεση και των δύο εγγυάται ότι ολόκληρο το ορθογώνιο μπλοκ αντιγράφεται, κάτι που είναι κρίσιμο όταν πρέπει να **copy columns between sheets** που έχουν διαφορετικά πλάτη στηλών ή κρυφές στήλες. + +## Βήμα 6 – Αποθήκευση του Workbook + +Τέλος, γράψτε τις αλλαγές πίσω στο δίσκο. Αυτό το βήμα ολοκληρώνει τη διαδικασία **how to copy worksheet**. + +```csharp +// Save the workbook with the newly copied sheet +workbook.Save(destinationPath); +``` + +*Verification tip:* Ανοίξτε το `Destination.xlsx` και ελέγξτε ότι το φύλλο `"Copy"` φαίνεται ταυτόσημο με το αρχικό, οι πίνακες pivot λειτουργούν και τα πλάτη των στηλών ταιριάζουν. Αν κάτι φαίνεται λανθασμένο, επανεξετάστε τις ρυθμίσεις του `CopyOptions`. + +## Περιπτώσεις Άκρων & Συνηθισμένες Παραλλαγές + +### Αντιγραφή Πολλαπλών Φύλλων Εργασίας + +Αν χρειάζεται να διπλασιάσετε αρκετά φύλλα, τυλίξτε τη λογική σε έναν βρόχο `foreach`: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + Worksheet newWs = workbook.Worksheets.Add(ws.Name + "_Copy"); + // Re‑use sourceRange/destinationRange or calculate per sheet + // Then call CopyRows/CopyColumns as shown earlier +} +``` + +### Διατήρηση Τύπων μεταξύ Διαφορετικών Workbook + +Όταν τα πηγαία και προορισμένα workbooks έχουν διαφορετικές ονομαστικές περιοχές, ορίστε το `copyOptions` σε `PasteType.Formulas` επιπλέον του `All`: + +```csharp +copyOptions.PasteType = PasteType.All | PasteType.Formulas; +``` + +### Μεγάλες Περιοχές και Απόδοση + +Για τεράστιες βάσεις δεδομένων (εκατοντάδες χιλιάδες γραμμές), σκεφτείτε να χρησιμοποιήσετε μόνο `CopyRows` και να παραλείψετε το `CopyColumns` αν τα πλάτη των στηλών δεν είναι κρίσιμα. Αυτό μπορεί να εξοικονομήσει μερικά δευτερόλεπτα. + +## Πλήρες Παράδειγμα Λειτουργίας + +Παρακάτω βρίσκεται το πλήρες, έτοιμο‑για‑εκτέλεση πρόγραμμα που ενσωματώνει όλα όσα συζητήσαμε. Επικολλήστε το σε μια εφαρμογή console, προσαρμόστε τις διαδρομές αρχείων και πατήστε **F5**. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // ---------- Step 1: Load the source workbook ---------- + string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; + string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + Workbook workbook = new Workbook(sourcePath); + + // ---------- Step 2: Add a new worksheet (add new worksheet code) ---------- + Worksheet sourceSheet = workbook.Worksheets[0]; + Worksheet copySheet = workbook.Worksheets.Add("Copy"); + + // ---------- Step 3: Define the copy cell range ---------- + CellArea sourceRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + CellArea destinationRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + + // ---------- Step 4: Set copy options (preserve copy worksheet pivot table) ---------- + CopyOptions copyOptions = new CopyOptions + { + PasteType = PasteType.All, + PasteSpecial = true + }; + + // ---------- Step 5: Copy rows and columns (copy columns between sheets) ---------- + sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + + sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); + + // ---------- Step 6: Save the workbook ---------- + workbook.Save(destinationPath); + } +} +``` + +**Expected result:** Το άνοιγμα του `Destination.xlsx` δείχνει ένα φύλλο με όνομα **Copy** που αντικατοπτρίζει το πρώτο φύλλο του `Source.xlsx`—συμπεριλαμβανομένων τυχόν πινάκων pivot, μορφοποίησης και πλάτους στηλών. Το αρχικό αρχείο παραμένει αμετάβλητο. + +## Συχνές Ερωτήσεις + +**Q: Λειτουργεί αυτό με αρχεία .xlsx που δημιουργήθηκαν από το Excel 2019;** +A: Απόλυτα. Το Aspose.Cells υποστηρίζει όλες τις σύγχρονες μορφές Excel, οπότε ο ίδιος κώδικας λειτουργεί για `.xlsx`, `.xlsm` και ακόμη και παλαιότερα αρχεία `.xls`. + +{{< /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/greek/net/excel-custom-number-date-formatting/_index.md b/cells/greek/net/excel-custom-number-date-formatting/_index.md index 67c63daf64..ce2d0296ff 100644 --- a/cells/greek/net/excel-custom-number-date-formatting/_index.md +++ b/cells/greek/net/excel-custom-number-date-formatting/_index.md @@ -36,6 +36,10 @@ Μάθετε πώς να ελέγχετε τις τιμές κελιών του Excel σε σχέση με τις προσαρμοσμένες μορφές αριθμών χρησιμοποιώντας το Aspose.Cells για .NET με αυτό το βήμα προς βήμα σεμινάριο. ### [Καθορισμός πεδίων τύπου κατά την εισαγωγή δεδομένων σε φύλλο Excel](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) Μάθετε πώς να εισάγετε δεδομένα σε φύλλα Excel με καθορισμένα πεδία τύπων χρησιμοποιώντας το Aspose.Cells για .NET σε αυτό το λεπτομερές σεμινάριο. +### [Μορφοποίηση αριθμού με διαχωριστικό σε C# – Πλήρης οδηγός Aspose.Cells](./format-number-with-separator-in-c-complete-aspose-cells-guid/) +Μάθετε πώς να μορφοποιείτε αριθμούς με διαχωριστικά σε C# χρησιμοποιώντας το Aspose.Cells σε αυτόν τον ολοκληρωμένο οδηγό. +### [Μορφοποίηση ημερομηνίας ISO από Excel – Πλήρης οδηγός C#](./format-date-iso-from-excel-complete-c-guide/) +Μάθετε πώς να μορφοποιείτε ημερομηνίες ISO από Excel χρησιμοποιώντας το Aspose.Cells σε αυτόν τον πλήρη οδηγό C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/greek/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md b/cells/greek/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..8458f8e3b1 --- /dev/null +++ b/cells/greek/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md @@ -0,0 +1,203 @@ +--- +category: general +date: 2026-03-30 +description: Μάθετε πώς να μορφοποιείτε την ημερομηνία σε ISO ενώ διαβάζετε τιμές + ημερομηνίας/ώρας από το Excel και εξάγετε δεδομένα ημερομηνίας/ώρας του Excel χρησιμοποιώντας + το Aspose.Cells σε C#. +draft: false +keywords: +- format date iso +- read excel datetime +- extract datetime excel +- Aspose.Cells date parsing +- Japanese era dates +language: el +og_description: Διαμορφώστε ημερομηνίες ISO από δεδομένα Excel χρησιμοποιώντας το + Aspose.Cells. Αυτός ο οδηγός δείχνει πώς να διαβάσετε ημερομηνίες/ώρες Excel, να + εξάγετε τις τιμές ημερομηνίας/ώρας του Excel και να εξάγετε ημερομηνίες ISO. +og_title: Μορφοποίηση ημερομηνίας ISO από το Excel – Βήμα‑βήμα οδηγός C# +tags: +- C# +- Excel +- DateTime +- Aspose.Cells +title: Μορφοποίηση ημερομηνίας ISO από το Excel – Πλήρης Οδηγός C# +url: /el/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# μορφοποίηση ημερομηνίας iso από το Excel – Πλήρης Οδηγός C# + +Έχετε χρειαστεί ποτέ να **format date iso** όταν εξάγετε ημερομηνίες από ένα φύλλο Excel; Ίσως διαχειρίζεστε ημερομηνίες ιαπωνικής εποχής, ή απλώς θέλετε μια καθαρή συμβολοσειρά `yyyy‑MM‑dd` για ένα payload API. Σε αυτό το tutorial θα δείτε ακριβώς πώς να **read Excel datetime** κελιά, **extract datetime Excel** τιμές, και να τις μετατρέψετε σε μορφή ISO‑8601 — χωρίς εικασίες. + +Θα περάσουμε από ένα πραγματικό παράδειγμα που χρησιμοποιεί Aspose.Cells, θα εξηγήσουμε γιατί κάθε γραμμή έχει σημασία, και θα σας δείξουμε το τελικό αποτέλεσμα που μπορείτε να αντιγράψετε‑επικολλήσετε στο πρόγραμμά σας. Στο τέλος, θα μπορείτε να χειριστείτε περίεργες συμβολοσειρές εποχής όπως “令和3年5月1日” και να παραγάγετε μια τυπική ημερομηνία ISO, έτοιμη για βάσεις δεδομένων, JSON ή όπου τη χρειάζεστε. + +## Προαπαιτούμενα + +- .NET 6.0 ή νεότερο (ο κώδικας λειτουργεί και με .NET Framework) +- Aspose.Cells για .NET (δωρεάν δοκιμή ή έκδοση με άδεια) +- Βασική εξοικείωση με C# και έννοιες του Excel +- Visual Studio ή οποιονδήποτε επεξεργαστή C# προτιμάτε + +Δεν απαιτούνται επιπλέον πακέτα NuGet πέρα από το Aspose.Cells, οπότε η ρύθμιση είναι αρκετά απλή. + +--- + +## Βήμα 1: Δημιουργία Workbook και Στόχευση του Πρώτου Worksheet + +Το πρώτο πράγμα που κάνετε είναι να δημιουργήσετε ένα νέο αντικείμενο `Workbook`. Αυτό σας δίνει μια αναπαράσταση σε μνήμη ενός αρχείου Excel, την οποία μπορείτε στη συνέχεια να επεξεργαστείτε ή να διαβάσετε. + +```csharp +using Aspose.Cells; +using System.Globalization; + +// Step 1: Initialize a new workbook and grab the first worksheet +Workbook workbook = new Workbook(); // creates an empty .xlsx +Worksheet worksheet = workbook.Worksheets[0]; // the default sheet is "Sheet1" +``` + +*Why this matters:* +Creating the workbook programmatically lets you avoid dealing with physical files during testing. It also ensures the worksheet reference is always valid—no null‑reference surprises later when you try to **read Excel datetime** values. + +## Βήμα 2: Εγγραφή Συμβολοσειράς Ημερομηνίας Ιαπωνικής Εποχής σε Κελί + +Ο στόχος μας είναι να δείξουμε την ανάλυση μιας μη‑Γρηγοριανής ημερομηνίας. Θα τοποθετήσουμε τη συμβολοσειρά εποχής απευθείας στο κελί **A1**. + +```csharp +// Step 2: Insert a Japanese era date string into cell A1 +worksheet.Cells["A1"].PutValue("令和3年5月1日"); +``` + +*Pro tip:* If you’re pulling data from an existing workbook, you’d skip the `PutValue` call and just reference the cell that already contains the date. The key is that the cell holds a **string** that represents a date in the Japanese lunisolar calendar. + +## Βήμα 3: Διαμόρφωση Culture που Κατανοεί το Ιαπωνικό Λουνισολάριο Ημερολόγιο + +Η κλάση `CultureInfo` του .NET σας επιτρέπει να καθορίσετε πώς πρέπει να ερμηνεύονται οι ημερομηνίες. Αντικαθιστώντας το προεπιλεγμένο Γρηγοριανό ημερολόγιο με το `JapaneseLunisolarCalendar`, δίνετε στον αναλυτή το απαραίτητο πλαίσιο. + +```csharp +// Step 3: Set up a culture using the Japanese lunisolar calendar +CultureInfo japaneseCulture = new CultureInfo("ja-JP"); +japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); +``` + +*Why we do this:* +If you tried to parse “令和3年5月1日” with the default culture, .NET would throw a `FormatException`. Swapping in the lunisolar calendar tells the runtime exactly how to map “令和3年” (the 3rd year of the Reiwa era) to the Gregorian year 2021. + +## Βήμα 4: Ανάλυση Τιμής Κελιού ως `DateTime` Χρησιμοποιώντας το Διαμορφωμένο Culture + +Τώρα έρχεται η καρδιά της λειτουργίας—η μετατροπή της συμβολοσειράς εποχής σε ένα έγκυρο αντικείμενο `DateTime`. Το Aspose.Cells παρέχει μια βολική υπερφόρτωση `GetDateTime` που δέχεται ένα `CultureInfo`. + +```csharp +// Step 4: Retrieve the cell value as a DateTime, respecting the Japanese culture +DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); +``` + +*What’s happening under the hood:* +`GetDateTime` reads the raw string, applies the supplied culture’s calendar rules, and returns a `DateTime` that represents the same moment in the Gregorian calendar. This is the moment where you **extract datetime Excel** data in a form you can work with in .NET. + +## Βήμα 5: Εξαγωγή της Αναλυμένης Ημερομηνίας σε Μορφή ISO 8601 + +Τέλος, μορφοποιούμε το `DateTime` ως συμβολοσειρά ISO—`yyyy‑MM‑dd`—που γίνεται ευρέως αποδεκτό από APIs, βάσεις δεδομένων και front‑end frameworks. + +```csharp +// Step 5: Print the date in ISO format (e.g., 2021-05-01) +Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // Output: 2021-05-01 +``` + +*Why ISO?* +ISO 8601 eliminates ambiguity. “05/01/2021” could be May 1st or January 5th depending on locale. `2021-05-01` is crystal clear, which is why we **format date iso** in almost every integration scenario. + +## Πλήρες Παράδειγμα Εργασίας + +Παρακάτω είναι το πλήρες, έτοιμο‑για‑εκτέλεση πρόγραμμα. Αντιγράψτε το σε ένα project console app, προσθέστε την αναφορά Aspose.Cells, και πατήστε **F5**. + +```csharp +using Aspose.Cells; +using System; +using System.Globalization; + +class Program +{ + static void Main() + { + // 1️⃣ Create workbook and select the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("令和3年5月1日"); + + // 3️⃣ Set up Japanese lunisolar culture + CultureInfo japaneseCulture = new CultureInfo("ja-JP"); + japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); + + // 4️⃣ Parse the cell value as DateTime using the culture + DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); + + // 5️⃣ Output the date in ISO format + Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // 2021-05-01 + } +} +``` + +**Αναμενόμενο αποτέλεσμα** + +``` +2021-05-01 +``` + +Τρέξτε το μία φορά, και θα δείτε την ημερομηνία σε μορφή ISO να εμφανίζεται στην κονσόλα. Αυτό είναι ολόκληρη η αλυσίδα από **read Excel datetime** μέχρι **format date iso**. + +## Διαχείριση Συνηθισμένων Edge Cases + +### 1. Κελιά που Περιέχουν Πραγματικούς Αριθμούς Ημερομηνίας Excel + +Μερικές φορές το Excel αποθηκεύει ημερομηνίες ως σειριακούς αριθμούς (π.χ., `44204`). Σε αυτή την περίπτωση, δεν χρειάζεται culture· απλώς καλέστε `GetDateTime()` χωρίς παραμέτρους: + +```csharp +DateTime serialDate = worksheet.Cells["B2"].GetDateTime(); // B2 holds a numeric date +Console.WriteLine(serialDate.ToString("yyyy-MM-dd")); +``` + +### 2. Κενά ή Μη Έγκυρα Κελιά + +Αν ένα κελί είναι κενό ή περιέχει μη αναγνώσιμη συμβολοσειρά, το `GetDateTime` θα ρίξει εξαίρεση. Τυλίξτε την κλήση σε `try/catch` ή ελέγξτε πρώτα το `IsDateTime`: + +```csharp +if (worksheet.Cells["C3"].Type == CellValueType.IsDateTime) +{ + DateTime safeDate = worksheet.Cells["C3"].GetDateTime(); + Console.WriteLine(safeDate.ToString("yyyy-MM-dd")); +} +else +{ + Console.WriteLine("Cell C3 does not contain a valid date."); +} +``` + +### 3. Διαφορετικές Μορφές Εποχής + +Άλλες ιαπωνικές εποχές (Heisei, Showa) ακολουθούν το ίδιο μοτίβο. Το ίδιο `JapaneseLunisolarCalendar` θα τις διαχειριστεί αυτόματα, οπότε δεν χρειάζεται επιπλέον λογική· απλώς δώστε τη συμβολοσειρά. + +## Pro Tips & Gotchas + +- **Performance:** When processing large spreadsheets, reuse a single `CultureInfo` instance instead of creating a new one inside a loop. +- **Thread Safety:** `CultureInfo` objects are read‑only after you set the calendar, so they’re safe to share across threads. +- **Aspose.Cells Licensing:** If you’re using the free trial, remember that some features may be limited after the trial period expires. The date parsing shown here works fine in both trial and licensed modes. +- **Time Zones:** The `DateTime` you get is **unspecified** (no time zone). If you need UTC, call `DateTime.SpecifyKind(parsedDate, DateTimeKind.Utc)` or convert using `TimeZoneInfo`. + +## Συμπέρασμα + +Καλύψαμε όλα όσα χρειάζεστε για να **format date iso** από ένα βιβλίο εργασίας Excel χρησιμοποιώντας C#. Ξεκινώντας από μια ακατέργαστη συμβολοσειρά ιαπωνικής εποχής, **read Excel datetime**, ρυθμίσαμε το κατάλληλο culture, **extract datetime excel** δεδομένα, και τελικά εξάγαμε μια καθαρή συμβολοσειρά ISO‑8601. Η προσέγγιση λειτουργεί για οποιαδήποτε αναπαράσταση ημερομηνίας που μπορεί να σας πετάξει το Excel, είτε είναι σειριακός αριθμός, συμβολοσειρά εξειδικευμένης τοπικής ρύθμισης ή παραδοσιακή μορφή εποχής. + +Τι επόμενα βήματα; Δοκιμάστε να κάνετε βρόχο σε ολόκληρη μια στήλη ημερομηνιών, να γράψετε τα αποτελέσματα ISO πίσω σε νέο φύλλο, ή να τα στείλετε απευθείας σε payload JSON για μια web υπηρεσία. Αν σας ενδιαφέρουν άλλα ημερολογιακά συστήματα (Εβραϊκό, Ισλαμικό), το Aspose.Cells και το `CultureInfo` του .NET κάνουν αυτά τα πειράματα εξίσου εύκολα. + +Έχετε ερωτήσεις ή μια δύσκολη μορφή ημερομηνίας που δεν μπορείτε να λύσετε; Αφήστε ένα σχόλιο παρακάτω, και καλή προγραμματιστική! + +{{< /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/greek/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md b/cells/greek/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md new file mode 100644 index 0000000000..5199025557 --- /dev/null +++ b/cells/greek/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md @@ -0,0 +1,255 @@ +--- +category: general +date: 2026-03-30 +description: Μάθετε πώς να μορφοποιείτε αριθμούς με διαχωριστικό χρησιμοποιώντας το + Aspose.Cells σε C#. Περιλαμβάνει ορισμό προσαρμοσμένης μορφής αριθμού, προσθήκη + διαχωριστικού χιλιάδων, μορφοποίηση δεκαδικών θέσεων και πώς να μορφοποιήσετε το + κελί. +draft: false +keywords: +- format number with separator +- set custom number format +- add thousands separator +- format decimal places +- how to format cell +language: el +og_description: Μορφοποίηση αριθμού με διαχωριστικό σε C#. Αυτός ο οδηγός δείχνει + πώς να ορίσετε προσαρμοσμένη μορφή αριθμού, να προσθέσετε διαχωριστικό χιλιάδων, + να μορφοποιήσετε δεκαδικά ψηφία και πώς να μορφοποιήσετε κελί χρησιμοποιώντας το + Aspose.Cells. +og_title: Μορφοποίηση αριθμού με διαχωριστικό σε C# – Εκπαίδευση Aspose.Cells +tags: +- C# +- Aspose.Cells +- Number Formatting +title: Μορφοποίηση Αριθμού με Διαχωριστικό σε C# – Πλήρης Οδηγός Aspose.Cells +url: /el/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Μορφοποίηση Αριθμού με Διαχωριστικό σε C# – Πλήρης Οδηγός Aspose.Cells + +Έχετε ποτέ χρειαστεί να **μορφοποιήσετε αριθμό με διαχωριστικό** σε ένα φύλλο εργασίας αλλά δεν ήσασταν σίγουροι ποια κλήση API να χρησιμοποιήσετε; Δεν είστε μόνοι—οι προγραμματιστές αντιμετωπίζουν συνεχώς διαχωριστικά χιλιάδων, δεκαδικά ψηφία και προσαρμοσμένα μοτίβα κατά την εξαγωγή δεδομένων. + +Καλή νέα: το Aspose.Cells το κάνει παιχνιδάκι. Σε αυτό το tutorial θα περάσουμε από ένα πραγματικό παράδειγμα που **ορίζει προσαρμοσμένη μορφή αριθμού**, **προσθέτει διαχωριστικό χιλιάδων**, **μορφοποιεί δεκαδικά ψηφία**, και δείχνει **πώς να μορφοποιήσετε το κελί** ώστε η έξοδος να είναι συμβολοσειρά. Στο τέλος θα έχετε ένα έτοιμο κομμάτι κώδικα που μπορείτε να ενσωματώσετε σε οποιοδήποτε .NET project. + +## Τι Καλύπτει Αυτός ο Οδηγός + +* Το ακριβές πακέτο NuGet που χρειάζεστε και πώς να το εγκαταστήσετε. +* Κώδικας βήμα‑βήμα που δημιουργεί ένα workbook, γράφει μια αριθμητική τιμή και εφαρμόζει προσαρμοσμένη μορφή. +* Γιατί το `ExportTableOptions.ExportAsString` είναι η προτιμώμενη μέθοδος για την ανάκτηση μορφοποιημένης τιμής. +* Συνηθισμένα λάθη—όπως η παράλειψη ενεργοποίησης του `ExportAsString` ή η χρήση λανθασμένης μάσκας μορφής. +* Πώς να προσαρμόσετε τη μάσκα μορφής αν χρειάζεστε διαφορετικό αριθμό δεκαδικών ή διαφορετικό στυλ διαχωριστικού. + +Δεν απαιτούνται εξωτερικοί σύνδεσμοι τεκμηρίωσης· όλα όσα χρειάζεστε είναι εδώ. Ας βουτήξουμε. + +--- + +## Προαπαιτήσεις + +| Απαίτηση | Λόγος | +|-------------|--------| +| .NET 6.0 ή νεότερο | Το Aspose.Cells 23.10+ στοχεύει στο .NET Standard 2.0+, οπότε το .NET 6 είναι ασφαλές και σύγχρονο. | +| Visual Studio 2022 (ή οποιοδήποτε IDE C#) | Καθιστά τον εντοπισμό σφαλμάτων και τη διαχείριση πακέτων απλό. | +| Aspose.Cells for .NET NuGet package | Παρέχει τις κλάσεις `Workbook`, `Worksheet` και `ExportTableOptions` που θα χρησιμοποιήσουμε. | + +Μπορείτε να εγκαταστήσετε το πακέτο μέσω του Package Manager Console: + +```powershell +Install-Package Aspose.Cells +``` + +Αυτό είναι όλο—χωρίς επιπλέον DLLs, χωρίς COM interop, μόνο μια αναφορά NuGet. + +--- + +## Βήμα 1: Αρχικοποίηση Νέου Workbook (Πώς να Μορφοποιήσετε Κελί) + +Το πρώτο που κάνουμε είναι να δημιουργήσουμε μια νέα παρουσία `Workbook`. Σκεφτείτε το ως ένα κενό αρχείο Excel έτοιμο να λάβει δεδομένα. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Create a new workbook – this is where we’ll format the cell. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Why this matters:** `Workbook` είναι το σημείο εισόδου για κάθε λειτουργία στο Aspose.Cells. Παίρνοντας το πρώτο φύλλο εργασίας (`Worksheets[0]`) έχουμε έναν καθαρό καμβά χωρίς να χρειάζεται να ονομάσουμε το φύλλο. + +--- + +## Βήμα 2: Εγγραφή Αριθμητικής Τιμής στο Στόχο Κελί + +Στη συνέχεια, τοποθετούμε έναν ακατέργαστο αριθμό στο κελί **A1**. Η τιμή αυτή δεν είναι ακόμη μορφοποιημένη· είναι απλώς ένα double. + +```csharp + // Step 2: Insert a raw numeric value. + worksheet.Cells["A1"].PutValue(12345.6789); +``` + +> **Pro tip:** Χρησιμοποιήστε `PutValue` αντί για `PutString` όταν σκοπεύετε να εφαρμόσετε αριθμητική μορφοποίηση αργότερα. Αυτό διατηρεί τον υποκείμενο τύπο δεδομένων, επιτρέποντας υπολογισμούς συμβατούς με το Excel. + +--- + +## Βήμα 3: Ορισμός Προσαρμοσμένης Μάσκας Αριθμού (Προσθήκη Διαχωριστικού Χιλιάδων & Μορφοποίηση Δεκαδικών) + +Τώρα έρχεται η καρδιά του tutorial: ορίζουμε μια μάσκα μορφής που λέει στο Aspose.Cells πώς να εμφανίσει τον αριθμό. Η μάσκα `#,##0.00` κάνει τρία πράγματα: + +1. **`#,##0`** – προσθέτει διαχωριστικό χιλιάδων (κόμμα από προεπιλογή). +2. **`.00`** – εξαναγκάζει ακριβώς δύο δεκαδικά ψηφία. + +Αν χρειάζεστε διαφορετικό αριθμό δεκαδικών, απλώς αλλάξτε τον αριθμό των `0` μετά το δεκαδικό σημείο. + +```csharp + // Step 3: Configure the custom number format. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, // Return the value as a formatted string. + NumberFormat = "#,##0.00" // Add thousands separator and fix to 2 decimals. + }; +``` + +> **Why we use `ExportAsString`**: By default, `ExportString` returns the raw value. Setting `ExportAsString = true` forces the API to apply the `NumberFormat` mask before converting to text. This is essential when you need the exact string representation for reports, JSON payloads, or UI display. + +--- + +## Βήμα 4: Εξαγωγή Μορφοποιημένου Κειμένου (Πώς να Μορφοποιήσετε Κελί) + +Με τις επιλογές έτοιμες, καλούμε `ExportString` στο ίδιο κελί. Η μέθοδος σέβεται τη μάσκα που ορίσαμε και επιστρέφει μια ωραία μορφοποιημένη συμβολοσειρά. + +```csharp + // Step 4: Export the formatted value. + string formattedCellText = worksheet.Cells["A1"].ExportString(exportOptions); + + // Step 5: Show the result. + Console.WriteLine(formattedCellText); // Expected output: 12,345.68 + } +} +``` + +Η εκτέλεση του προγράμματος εμφανίζει **`12,345.68`** στην κονσόλα—ακριβώς τη μορφή που ζητήσαμε. + +> **Edge case:** If the source number has more than two decimal places, the mask rounds it. If you need truncation instead of rounding, you’ll have to pre‑process the value with `Math.Truncate` before calling `PutValue`. + +--- + +## Βήμα 5: Ρύθμιση Μορφής – Συνηθισμένες Παραλλαγές + +### 5.1 Αλλαγή Ακρίβειας Δεκαδικών + +Θέλετε τρία δεκαδικά ψηφία; Απλώς αντικαταστήστε τη μάσκα: + +```csharp +NumberFormat = "#,##0.000" // → 12,345.679 +``` + +### 5.2 Χρήση Διαφορετικού Διαχωριστικού Χιλιάδων + +Ορισμένες περιοχές προτιμούν κενό ή τελεία. Μπορείτε να ενσωματώσετε το χαρακτήρα απευθείας: + +```csharp +NumberFormat = "# ##0.00" // Uses a non‑breaking space as separator. +``` + +Ή να βασιστείτε στις ρυθμίσεις πολιτισμού του workbook: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("de-DE"); +NumberFormat = "#.##0,00"; // German style: 12.345,68 +``` + +### 5.3 Πρόθεμα ή Επίθημα (Νόμισμα, Ποσοστό) + +Προσθέστε το σύμβολο δολαρίου ή το σύμβολο ποσοστού απευθείας στη μάσκα: + +```csharp +NumberFormat = "$#,##0.00"; // → $12,345.68 +NumberFormat = "0.00%"; // → 1,234,568.00% +``` + +> **Note:** The mask is case‑sensitive. `$` and `%` are literal symbols; they don’t affect the underlying numeric value. + +--- + +## Βήμα 6: Πλήρες Παράδειγμα Εργασίας (Έτοιμο για Αντιγραφή‑Επικόλληση) + +Παρακάτω είναι το πλήρες πρόγραμμα που μπορείτε να αντιγράψετε σε μια νέα εφαρμογή console. Περιλαμβάνει όλα τα βήματα, σχόλια και την τελική επαλήθευση εξόδου. + +```csharp +using System; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write raw numeric value to A1. + worksheet.Cells["A1"].PutValue(12345.6789); + + // 3️⃣ Define custom format: thousands separator + two decimals. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + NumberFormat = "#,##0.00" + }; + + // 4️⃣ Export the formatted string. + string result = worksheet.Cells["A1"].ExportString(exportOptions); + + // 5️⃣ Display the outcome. + Console.WriteLine(result); // Output: 12,345.68 + + // Optional: keep console open. + Console.WriteLine("Press any key to exit..."); + Console.ReadKey(); + } +} +``` + +Τρέξτε το πρόγραμμα (`dotnet run` από το τερματικό ή πατήστε F5 στο Visual Studio) και θα δείτε τον μορφοποιημένο αριθμό να εκτυπώνεται ακριβώς όπως φαίνεται. + +--- + +## Συχνές Ερωτήσεις (FAQ) + +**Q: Λειτουργεί αυτό με παλαιότερες εκδόσεις του Excel;** +A: Ναι. Η μάσκα μορφής ακολουθεί τη φυσική σύνταξη μορφής αριθμού του Excel, οπότε οποιαδήποτε έκδοση που καταλαβαίνει `#,##0.00` θα αποδώσει την ίδια συμβολοσειρά. + +**Q: Τι γίνεται αν χρειαστεί να μορφοποιήσω μια περιοχή κελιών;** +A: Κάντε βρόχο πάνω στην επιθυμητή περιοχή και εφαρμόστε το ίδιο `ExportTableOptions` σε κάθε κελί, ή ορίστε την ιδιότητα `Style.Custom` στην περιοχή και μετά καλέστε `ExportString` σε ένα μόνο κελί. + +**Q: Μπορώ να εξάγω απευθείας σε CSV με αυτές τις μορφές εφαρμοσμένες;** +A: Απόλυτα. Χρησιμοποιήστε `Workbook.Save("output.csv", SaveFormat.CSV);` μετά τον ορισμό της μορφής σε κάθε κελί. Το Aspose.Cells σέβεται το `Style` του κελιού κατά τη δημιουργία CSV. + +--- + +## Συμπέρασμα + +Μόλις δείξαμε πώς να **μορφοποιήσετε αριθμό με διαχωριστικό** σε C# χρησιμοποιώντας το Aspose.Cells, καλύπτοντας τα πάντα από **ορισμό προσαρμοσμένης μορφής αριθμού** μέχρι **προσθήκη διαχωριστικού χιλιάδων**, **μορφοποίηση δεκαδικών**, και το ουσιώδες **πώς να μορφοποιήσετε το κελί** για εξαγωγή ως συμβολοσειρά. Ο κώδικας είναι πλήρως αυτόνομος, λειτουργεί με .NET 6+ και μπορεί να προσαρμοστεί σε οποιοδήποτε πολιτισμό ή απαίτηση ακρίβειας. + +Επόμενα βήματα, μπορείτε να εξερευνήσετε: + +* Εφαρμογή της ίδιας τεχνικής σε ημερομηνίες και ώρες (`NumberFormat = "dd‑MMM‑yyyy"`). +* Αυτοματοποίηση μαζικών εξαγωγών όπου κάθε στήλη χρειάζεται διαφορετική μάσκα. +* Ενσωμάτωση των μορφοποιημένων συμβολοσειρών σε PDF αναφορές με Aspose.Words. + +Δοκιμάστε τα και θα γίνετε γρήγορα το άτομο-αναφορά για μορφοποίηση υπολογιστικών φύλλων στην ομάδα σας. Καλή προγραμματιστική! + +(Image: ![Screenshot showing formatted number with separator in Aspose.Cells](image-placeholder.png){alt="Formatted number with separator displayed in Aspose.Cells output"} ) + +{{< /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/greek/net/excel-data-import-export/_index.md b/cells/greek/net/excel-data-import-export/_index.md index d32905c200..d3f2cec8a0 100644 --- a/cells/greek/net/excel-data-import-export/_index.md +++ b/cells/greek/net/excel-data-import-export/_index.md @@ -32,6 +32,10 @@ Μάθετε πώς να εισάγετε δεδομένα στο Excel με προσαρμοσμένη μορφοποίηση DB Num χρησιμοποιώντας το Aspose.Cells για .NET σε αυτό το εύχρηστο σεμινάριο. ### [Μετατόπιση της πρώτης γραμμής προς τα κάτω κατά την εισαγωγή γραμμών πίνακα δεδομένων στο Excel](./shift-first-row-down-when-inserting-cells-datatable-rows-in-excel/) Μάθετε να εισάγετε γραμμές DataTable στο Excel χωρίς να μετακινήσετε την πρώτη γραμμή προς τα κάτω χρησιμοποιώντας το Aspose.Cells για .NET. Οδηγός βήμα προς βήμα για εύκολη αυτοματοποίηση. +### [Δημιουργία βιβλίου εργασίας Excel C# – Εισαγωγή JSON και αποθήκευση ως XLSX](./create-excel-workbook-c-insert-json-and-save-as-xlsx/) +Μάθετε πώς να δημιουργήσετε ένα βιβλίο εργασίας Excel σε C#, να εισάγετε δεδομένα JSON και να το αποθηκεύσετε ως αρχείο XLSX με το Aspose.Cells. +### [Δημιουργία βιβλίου εργασίας Excel C# – Εφαρμογή μορφοποίησης νομίσματος και εισαγωγή DataTable](./create-excel-workbook-c-apply-currency-format-and-import-dat/) +Μάθετε πώς να δημιουργήσετε ένα βιβλίο εργασίας Excel σε C#, να εφαρμόσετε μορφοποίηση νομίσματος και να εισάγετε DataTable χρησιμοποιώντας το Aspose.Cells. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/greek/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md b/cells/greek/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md new file mode 100644 index 0000000000..364c503a96 --- /dev/null +++ b/cells/greek/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md @@ -0,0 +1,286 @@ +--- +category: general +date: 2026-03-30 +description: Δημιουργήστε βιβλίο εργασίας Excel με C# με μορφοποίηση νομίσματος. Μάθετε + πώς να εισάγετε ένα DataTable, να προσθέσετε μορφοποίηση αριθμών στο Excel και να + εφαρμόσετε μορφοποίηση νομίσματος σε στήλη μέσα σε λίγα λεπτά. +draft: false +keywords: +- create excel workbook c# +- format cells currency +- import datatable to excel +- add number format excel +- apply currency format column +language: el +og_description: Δημιουργήστε βιβλίο εργασίας Excel με C# και μορφοποιήστε αμέσως τα + κελιά ως νόμισμα. Αυτός ο οδηγός βήμα‑βήμα δείχνει πώς να εισάγετε ένα DataTable + στο Excel και να προσθέσετε μορφοποίηση αριθμού για μια στήλη. +og_title: Δημιουργία βιβλίου εργασίας Excel C# – Οδηγός μορφοποίησης νομίσματος +tags: +- Aspose.Cells +- C# +- Excel automation +title: Δημιουργία βιβλίου εργασίας Excel C# – Εφαρμογή μορφής νομίσματος και εισαγωγή + DataTable +url: /el/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Δημιουργία Excel Workbook C# – Εφαρμογή Μορφής Νομίσματος και Εισαγωγή DataTable + +Κάποτε χρειάστηκε να **δημιουργήσετε Excel workbook C#** που να μοιάζει ήδη με ένα επαγγελματικό αναφορά; Ίσως εξάγετε αριθμούς πωλήσεων από μια βάση δεδομένων και θέλετε η στήλη τιμής να εμφανίζεται σε δολάρια χωρίς να παίζετε με το Excel χειροκίνητα. Ακούγεται γνώριμο; Δεν είστε μόνοι—πολλοί προγραμματιστές αντιμετωπίζουν αυτό το πρόβλημα όταν αυτοματοποιούν τις εξαγωγές Excel για πρώτη φορά. + +Σε αυτόν τον οδηγό θα περάσουμε βήμα‑βήμα από μια πλήρη, έτοιμη‑για‑εκτέλεση λύση που **δημιουργεί ένα Excel workbook C#**, εισάγει ένα `DataTable`, και **μορφοποιεί τη στήλη Price ως νόμισμα**. Στο τέλος θα έχετε ένα αρχείο που ονομάζεται `StyledTable.xlsx` το οποίο μπορείτε να ανοίξετε και να δείτε αριθμούς ωραία μορφοποιημένους. Δεν απαιτείται επιπλέον επεξεργασία. + +> **Τι θα μάθετε** +> - Πώς να ρυθμίσετε το Aspose.Cells σε ένα .NET project +> - Πώς να **import datatable to excel** με ένα style array +> - Πώς να **add number format excel** για μια συγκεκριμένη στήλη +> - Συμβουλές για τη διαχείριση περισσότερων στηλών ή διαφορετικών τοπικών ρυθμίσεων + +> **Προαπαιτούμενα** +> - .NET 6+ (ή .NET Framework 4.6+) εγκατεστημένο +> - Πακέτο NuGet Aspose.Cells for .NET (`Install-Package Aspose.Cells`) +> - Βασική εξοικείωση με C# και DataTables + +--- + +## Step 1: Prepare the DataTable (import datatable to excel) + +Πρώτα, χρειαζόμαστε κάποια δείγμα δεδομένων. Σε μια πραγματική εφαρμογή πιθανότατα θα γεμίσετε αυτόν τον πίνακα από ένα ερώτημα DB, αλλά ένα σκληρά κωδικοποιημένο παράδειγμα κρατά τα πράγματα απλά. + +```csharp +using System.Data; + +// Create a DataTable with two columns: Product (string) and Price (double) +DataTable dataTable = new DataTable(); +dataTable.Columns.Add("Product", typeof(string)); +dataTable.Columns.Add("Price", typeof(double)); + +// Add a few rows – you can add as many as you like +dataTable.Rows.Add("Apple", 1.23); +dataTable.Rows.Add("Banana", 0.78); +dataTable.Rows.Add("Cherry", 2.50); +``` + +*Γιατί είναι σημαντικό*: Το `DataTable` είναι η γέφυρα μεταξύ των επιχειρηματικών σας δεδομένων και του αρχείου Excel. Το Aspose.Cells μπορεί να το εισάγει απευθείας, διατηρώντας τα ονόματα στηλών και τους τύπους δεδομένων. + +--- + +## Step 2: Spin Up a New Workbook (create excel workbook c#) + +Τώρα δημιουργούμε το πραγματικό αντικείμενο αρχείου Excel. Σκεφτείτε το ως το κενό καμβά πάνω στον οποίο θα ζωγραφίσετε. + +```csharp +using Aspose.Cells; + +// Instantiate a fresh workbook – this is the core of create excel workbook c# +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0). You could also add more sheets later. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Pro tip:** Αν χρειάζεστε πολλαπλά φύλλα, καλέστε `workbook.Worksheets.Add()` και δώστε σε κάθε ένα ένα περιγραφικό όνομα. + +--- + +## Step 3: Define a Currency Style (format cells currency) + +Το Aspose.Cells σας επιτρέπει να δημιουργήσετε ένα αντικείμενο `Style` που περιγράφει πώς πρέπει να φαίνονται τα κελιά. Για νόμισμα χρησιμοποιούμε το ενσωματωμένο number format ID 164 (`"$#,##0.00"`). + +```csharp +// Create a new style object for the price column +Style priceStyle = workbook.CreateStyle(); +priceStyle.Number = 164; // Built‑in currency format "$#,##0.00" +``` + +*Γιατί να μην ορίσετε απλώς τη συμβολοσειρά μορφής;* Η χρήση του ενσωματωμένου ID εξασφαλίζει συμβατότητα μεταξύ εκδόσεων του Excel και αποφεύγει ιδιαιτερότητες τοπικών ρυθμίσεων. + +--- + +## Step 4: Build the Style Array (apply currency format column) + +Κατά την εισαγωγή ενός `DataTable`, μπορείτε να περάσετε έναν πίνακα αντικειμένων `Style`—ένα για κάθε στήλη. `null` σημαίνει “χρησιμοποίησε το προεπιλεγμένο στυλ”. Εδώ εφαρμόζουμε το `priceStyle` μόνο στη δεύτερη στήλη. + +```csharp +// Column 0 (Product) gets the default style, Column 1 (Price) gets the currency style +Style[] columnStyles = { null, priceStyle }; +``` + +Αν αργότερα προσθέσετε περισσότερες στήλες, απλώς επεκτείνετε τον πίνακα αναλόγως. Το μήκος του `columnStyles` πρέπει να ταιριάζει με τον αριθμό των στηλών που εισάγετε, διαφορετικά το Aspose θα πετάξει εξαίρεση. + +--- + +## Step 5: Import the DataTable with Styles (import datatable to excel) + +Τώρα συμβαίνει η μαγεία—το `DataTable` μας καταλήγει στο φύλλο εργασίας, και η στήλη τιμής εμφανίζεται αμέσως ως νόμισμα. + +```csharp +// Parameters: +// - dataTable: source data +// - true: include column headers +// - startRow: 0 (top of sheet) +// - startColumn: 0 (first column) +// - columnStyles: style array defined above +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +*Τι γίνεται αν έχετε περισσότερες από δύο στήλες;* Απλώς επεκτείνετε το `columnStyles` ώστε κάθε στήλη να λαμβάνει το κατάλληλο στυλ (ή `null` για προεπιλογή). Αυτός είναι ο πιο καθαρός τρόπος να **add number format excel** επιλεκτικά. + +--- + +## Step 6: Save the Workbook (create excel workbook c#) + +Τέλος, γράφουμε το αρχείο στο δίσκο. Επιλέξτε οποιονδήποτε φάκελο στον οποίο έχετε δικαίωμα εγγραφής. + +```csharp +// Save the workbook as an XLSX file +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +Ανοίξτε το `StyledTable.xlsx` στο Excel και θα πρέπει να δείτε: + +| Product | Price | +|---------|-------| +| Apple | $1.23 | +| Banana | $0.78 | +| Cherry | $2.50 | + +Η στήλη **Price** είναι ήδη μορφοποιημένη ως νόμισμα—χωρίς επιπλέον βήματα. + +--- + +## Edge Cases & Variations + +### More Columns, Different Formats + +Αν χρειάζεται να **format cells currency** για πολλές στήλες (π.χ. Cost, Tax, Total), δημιουργήστε ξεχωριστό `Style` για κάθε μία και γεμίστε το `columnStyles` αναλόγως: + +```csharp +Style costStyle = workbook.CreateStyle(); +costStyle.Number = 164; // currency + +Style taxStyle = workbook.CreateStyle(); +taxStyle.Number = 164; + +// Assuming columns: Product, Cost, Tax, Total +Style[] styles = { null, costStyle, taxStyle, priceStyle }; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, styles); +``` + +### Locale‑Specific Currency + +Για Ευρώ ή Βρετανική Λίρα, χρησιμοποιήστε διαφορετικά ενσωματωμένα IDs (π.χ. 165 για `€#,##0.00`). Εναλλακτικά, ορίστε μια προσαρμοσμένη συμβολοσειρά μορφής: + +```csharp +priceStyle.Custom = "€#,##0.00"; +``` + +### Large Data Sets + +Το Aspose.Cells μπορεί να διαχειριστεί εκατομμύρια γραμμές, αλλά η κατανάλωση μνήμης αυξάνεται με τα αντικείμενα στυλ. Επαναχρησιμοποιήστε ένα μόνο αντικείμενο `Style` για όλες τις στήλες νομίσματος ώστε να κρατήσετε το αποτύπωμα χαμηλό. + +### Missing Styles + +Αν το `columnStyles` είναι μικρότερο από τον αριθμό των στηλών, το Aspose θα εφαρμόσει το προεπιλεγμένο στυλ στις υπόλοιπες στήλες. Αυτό είναι χρήσιμο όταν σας ενδιαφέρουν μόνο λίγες στήλες. + +--- + +## Full Working Example (All Steps Combined) + +Παρακάτω είναι το πλήρες πρόγραμμα που μπορείτε να αντιγράψετε‑και‑επικολλήσετε σε μια console app. Περιλαμβάνει όλα τα κομμάτια που συζητήσαμε, συν μερικά χρήσιμα σχόλια. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // Step 1: Build sample DataTable (import datatable to excel) + // ------------------------------------------------- + DataTable dataTable = new DataTable(); + dataTable.Columns.Add("Product", typeof(string)); + dataTable.Columns.Add("Price", typeof(double)); + dataTable.Rows.Add("Apple", 1.23); + dataTable.Rows.Add("Banana", 0.78); + dataTable.Rows.Add("Cherry", 2.50); + // You can add as many rows as you like here. + + // ------------------------------------------------- + // Step 2: Create a new workbook (create excel workbook c#) + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // Step 3: Define a currency style (format cells currency) + // ------------------------------------------------- + Style priceStyle = workbook.CreateStyle(); + priceStyle.Number = 164; // "$#,##0.00" – built‑in currency format + + // ------------------------------------------------- + // Step 4: Build the style array (apply currency format column) + // ------------------------------------------------- + // First column gets default style (null), second column uses priceStyle. + Style[] columnStyles = { null, priceStyle }; + + // ------------------------------------------------- + // Step 5: Import the DataTable with the style array + // ------------------------------------------------- + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // ------------------------------------------------- + // Step 6: Save the workbook to disk + // ------------------------------------------------- + string outputPath = @"YOUR_DIRECTORY\StyledTable.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } +} +``` + +**Αναμενόμενο αποτέλεσμα:** Το άνοιγμα του `StyledTable.xlsx` δείχνει τη στήλη `Price` με σύμβολο δολαρίου και δύο δεκαδικά ψηφία, ακριβώς όπως απαιτεί η οδηγία **format cells currency**. + +--- + +## Frequently Asked Questions + +**Q: Does this work with .NET Core?** +A: Absolutely. Aspose.Cells is .NET‑standard compliant, so you can target .NET 5, .NET 6, or later without changes. + +**Q: What if my DataTable has 10 columns but I only want to format column 5?** +A: Create a `Style[]` of length 10, fill positions 0‑4 and 6‑9 with `null`, and put your custom style at index 4 (zero‑based). Aspose will respect each entry. + +**Q: Can I hide the header row?** +A: After import, set `worksheet.Cells.Rows[0].Hidden = true;` or simply pass `false` for the `includeColumnNames` parameter in `ImportDataTable`. + +--- + +## Conclusion + +We’ve just **created an Excel workbook C#**, imported a `DataTable`, and **applied a currency format column** using Aspose.Cells. The primary steps—preparing data, defining a style, building a style array, importing with `ImportDataTable`, and saving—cover the core of most Excel‑automation tasks. + +From here you might explore: + +- **add number format excel** for dates or percentages +- Exporting multiple worksheets in a single file +- Using **format cells currency** with locale‑specific symbols +- Automating chart creation based on the same data + +Give those a try, and you’ll quickly become the go‑to person for Excel reporting in your team. Got a twist you’d like to share? Drop a comment below—happy coding! + +![create excel workbook c# screenshot](image.png "create excel workbook c#") + +{{< /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/greek/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md b/cells/greek/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md new file mode 100644 index 0000000000..82dffea1ce --- /dev/null +++ b/cells/greek/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md @@ -0,0 +1,249 @@ +--- +category: general +date: 2026-03-30 +description: Δημιουργήστε γρήγορα ένα βιβλίο εργασίας Excel με C# εισάγοντας δεδομένα + JSON και αποθηκεύστε το βιβλίο εργασίας ως XLSX. Μάθετε πώς να δημιουργείτε Excel + από JSON, να γράφετε JSON σε Excel και να εισάγετε JSON στο Excel. +draft: false +keywords: +- create excel workbook c# +- save workbook as xlsx +- generate excel from json +- write json to excel +- insert json into excel +language: el +og_description: Δημιουργήστε γρήγορα ένα βιβλίο εργασίας Excel με C# εισάγοντας δεδομένα + JSON και αποθηκεύοντας το βιβλίο εργασίας ως XLSX. Ακολουθήστε αυτόν τον οδηγό βήμα-βήμα + για να δημιουργήσετε Excel από JSON. +og_title: Δημιουργία βιβλίου εργασίας Excel C# – Εισαγωγή JSON και αποθήκευση ως XLSX +tags: +- Aspose.Cells +- C# +- Excel automation +title: Δημιουργία βιβλίου εργασίας Excel C# – Εισαγωγή JSON και αποθήκευση ως XLSX +url: /el/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Δημιουργία Excel Workbook C# – Εισαγωγή JSON και Αποθήκευση ως XLSX + +Έχετε ποτέ χρειαστεί να **create Excel workbook C#** και να ρίξετε κάποιο JSON κατευθείαν σε ένα κελί; Δεν είστε μόνοι—οι προγραμματιστές συχνά αντιμετωπίζουν το ίδιο πρόβλημα όταν έχουν φορτία API ή αρχεία ρυθμίσεων που πρέπει να τοποθετηθούν σε ένα φύλλο εργασίας για αναφορές ή κοινή χρήση. + +Τα καλά νέα είναι ότι με το Aspose.Cells μπορείτε να το κάνετε σε λίγες γραμμές, **save workbook as XLSX**, και να διατηρήσετε όλη τη διαδικασία type‑safe. Σε αυτό το tutorial θα **generate Excel from JSON**, **write JSON to Excel**, και θα σας δείξουμε τα ακριβή βήματα για **insert JSON into Excel** χωρίς περίπλοκες συνενώσεις συμβολοσειρών. + +## Τι Καλύπτει Αυτός Ο Οδηγός + +Θα περάσουμε από: + +1. Ρύθμιση ενός νέου workbook. +2. Προσθήκη ενός Smart Marker που αναμένει JSON. +3. Παροχή ενός JSON array στον marker. +4. Ρύθμιση του `SmartMarkerOptions` ώστε το JSON να παραμείνει σε ένα κελί. +5. Αποθήκευση του αρχείου ως βιβλίο εργασίας XLSX. + +Στο τέλος θα έχετε ένα έτοιμο προς χρήση αρχείο `JsonSingleCell.xlsx` και ένα στιβαρό πρότυπο που μπορείτε να επαναχρησιμοποιήσετε για οποιοδήποτε σενάριο JSON‑to‑Excel. Χωρίς εξωτερικές υπηρεσίες, μόνο απλό C# και τη βιβλιοθήκη Aspose.Cells. + +**Προαπαιτούμενα** + +- .NET 6+ (ή .NET Framework 4.6+). +- Visual Studio 2022 ή οποιοδήποτε IDE συμβατό με C#. +- Πακέτο NuGet `Aspose.Cells` (δωρεάν δοκιμή ή έκδοση με άδεια). + +Αν τα έχετε, ας βουτήξουμε—χωρίς επιπλέον ρυθμίσεις. + +--- + +## Βήμα 1: Δημιουργία Νέου Workbook σε C# + +Το πρώτο που χρειάζεστε είναι ένα κενό αντικείμενο workbook. Σκεφτείτε το ως ένα νέο αρχείο Excel που περιμένει δεδομένα. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is your empty Excel file +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; +``` + +**Γιατί είναι σημαντικό:** +`Workbook` είναι το σημείο εισόδου για όλες τις λειτουργίες Excel. Δημιουργώντας το πρώτα, εξασφαλίζετε ότι η επόμενη κλήση **save workbook as xlsx** έχει ένα συγκεκριμένο αντικείμενο για σειριοποίηση. + +> **Συμβουλή:** Αν σκοπεύετε να εργαστείτε με πολλαπλά φύλλα, μπορείτε να τα προσθέσετε τώρα με `workbook.Worksheets.Add()`. + +--- + +## Βήμα 2: Τοποθετήστε ένα Smart Marker που Αναμένει JSON + +Τα Smart Markers είναι placeholders που το Aspose.Cells αντικαθιστά κατά την εκτέλεση. Εδώ του λέμε να ψάξει για μια συμβολοσειρά JSON με όνομα `data`. + +```csharp +// Put a Smart Marker in cell A1 – {{data:json}} tells Aspose to expect JSON +worksheet.Cells["A1"].PutValue("{{data:json}}"); +``` + +**Γιατί είναι σημαντικό:** +Το επίθημα `:json` λέει στη μηχανή ότι η εισερχόμενη τιμή είναι JSON, όχι απλό κείμενο. Αυτό είναι το κλειδί για **write json to excel** χωρίς χειροκίνητη ανάλυση. + +--- + +## Βήμα 3: Ορίστε το JSON Array + +Τώρα δημιουργούμε το JSON που θέλουμε να εισάγουμε. Για επίδειξη θα χρησιμοποιήσουμε μια απλή λίστα ατόμων. + +```csharp +// Sample JSON array – could come from an API, file, or DB +string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; +``` + +**Ειδική περίπτωση:** +Αν το JSON σας περιέχει διπλά εισαγωγικά, βεβαιωθείτε ότι είναι escaped (όπως φαίνεται) ή χρησιμοποιήστε μια ακριβή συμβολοσειρά (`@\"...\"`) για να αποφύγετε σφάλματα μεταγλώττισης. + +--- + +## Βήμα 4: Διαμορφώστε τις Smart Marker Options – Κρατήστε το Array Ολόκληρο + +Από προεπιλογή, το Aspose θα προσπαθήσει να επεκτείνει το array σε πολλές γραμμές. Θέλουμε ολόκληρη τη συμβολοσειρά JSON να παραμείνει μέσα σε ένα μόνο κελί, κάτι που είναι ιδανικό για σενάρια **insert json into excel** όπου ο καταναλωτής θα αναλύσει το JSON αργότερα. + +```csharp +SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions +{ + // Treat the whole array as a single cell value + ArrayAsSingle = true +}; +``` + +**Γιατί είναι σημαντικό:** +`ArrayAsSingle = true` αποτρέπει την επέκταση σε γραμμές, παρέχοντάς σας ένα καθαρό JSON blob σε ένα μόνο κελί. Αυτό είναι απαραίτητο όταν το φύλλο εργασίας λειτουργεί ως μορφή μεταφοράς και όχι ως αναφορά. + +--- + +## Βήμα 5: Επεξεργασία του Smart Marker με τα Δεδομένα JSON + +Τώρα συνδέουμε το JSON με το marker και αφήνουμε το Aspose να κάνει τη βαριά δουλειά. + +```csharp +// Process the marker – the anonymous object maps "data" to our JSON string +worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); +``` + +**Τι συμβαίνει στο παρασκήνιο:** +Το Aspose αξιολογεί το placeholder `{{data:json}}`, σειριοποιεί τη συμβολοσειρά `jsonData` και τη γράφει στο κελί A1, τηρώντας τις επιλογές που ορίσαμε. + +--- + +## Βήμα 6: Αποθήκευση του Workbook ως Αρχείο XLSX + +Τέλος, γράφουμε το workbook στο δίσκο. Εδώ έρχεται σε δράση το **save workbook as xlsx**. + +```csharp +// Save the workbook – the extension determines the format (XLSX here) +workbook.Save("JsonSingleCell.xlsx"); +``` + +**Αποτέλεσμα:** +Ανοίξτε το `JsonSingleCell.xlsx` στο Excel και θα δείτε το JSON array ακριβώς όπως το ορίσαμε, τοποθετημένο καθαρά στο κελί A1. + +--- + +## Πλήρες, Εκτελέσιμο Παράδειγμα + +Παρακάτω είναι το πλήρες πρόγραμμα που μπορείτε να αντιγράψετε‑και‑επικολλήσετε σε μια εφαρμογή console. Περιλαμβάνει όλα τα παραπάνω βήματα και λειτουργεί αμέσως (υπό την προϋπόθεση ότι το πακέτο NuGet Aspose.Cells είναι εγκατεστημένο). + +```csharp +using System; +using Aspose.Cells; + +namespace JsonToExcelDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add a Smart Marker that expects JSON + worksheet.Cells["A1"].PutValue("{{data:json}}"); + + // 3️⃣ Define the JSON array + string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; + + // 4️⃣ Configure options – keep array as a single cell value + SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions + { + ArrayAsSingle = true + }; + + // 5️⃣ Process the marker with the JSON payload + worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); + + // 6️⃣ Save the workbook as XLSX + workbook.Save("JsonSingleCell.xlsx"); + + Console.WriteLine("Excel file created successfully! Check JsonSingleCell.xlsx."); + } + } +} +``` + +**Αναμενόμενο αποτέλεσμα στο Excel** + +| A | +|---| +| `[{"Name":"John","Age":30},{"Name":"Jane","Age":28}]` | + +Αυτό το μοναδικό κελί περιέχει τώρα ένα τέλεια έγκυρο JSON array έτοιμο για επεξεργασία. + +--- + +## Συχνές Ερωτήσεις & Ειδικές Περιπτώσεις + +### Τι γίνεται αν χρειάζομαι το JSON να διασπαρείται σε γραμμές; + +Ορίστε `ArrayAsSingle = false` (η προεπιλογή). Το Aspose θα δημιουργήσει μια γραμμή για κάθε στοιχείο του array, αντιστοιχίζοντας τις ιδιότητες του αντικειμένου σε στήλες. Αυτό είναι χρήσιμο όταν θέλετε μια πινάκωση αντί για μια ακατέργαστη συμβολοσειρά JSON. + +### Μπορώ να χρησιμοποιήσω αρχείο JSON αντί για σκληρά κωδικοποιημένη συμβολοσειρά; + +Απόλυτα. Διαβάστε το αρχείο σε μια συμβολοσειρά: + +```csharp +string jsonData = File.ReadAllText("people.json"); +``` + +Στη συνέχεια περάστε το `jsonData` στην ίδια κλήση `Process`. Το υπόλοιπο του pipeline παραμένει αμετάβλητο. + +### Λειτουργεί αυτό με μεγάλα JSON payloads; + +Ναι, αλλά προσέξτε τη χρήση μνήμης. Για τεράστια arrays, σκεφτείτε τη ροή δεδομένων ή τη γραφή απευθείας σε γραμμές (`ArrayAsSingle = false`) ώστε να αποφύγετε ένα ενιαίο τεράστιο κελί που μπορεί να δυσκολεύει το Excel. + +### Είναι το παραγόμενο XLSX συμβατό με παλαιότερες εκδόσεις του Excel; + +Η μορφή `.xlsx` βασίζεται στο Office Open XML και λειτουργεί από το Excel 2007 και μετά. Αν χρειάζεστε την παλαιότερη μορφή `.xls`, αλλάξτε την κλήση αποθήκευσης: + +```csharp +workbook.Save("JsonSingleCell.xls", SaveFormat.Excel97To2003); +``` + +## Επαγγελματικές Συμβουλές για Εργασία με JSON και Excel + +- **Επικυρώστε πρώτα το JSON** – χρησιμοποιήστε `System.Text.Json.JsonDocument.Parse(jsonData)` για να εντοπίσετε εσφαλμένη είσοδο νωρίς. +- **Αποφύγετε ειδικούς χαρακτήρες** – αν το JSON σας περιέχει αλλαγές γραμμής, θα εμφανιστούν ως κυριολεκτικό `\n` στο κελί· μπορείτε να τις αντικαταστήσετε με `Environment.NewLine` πριν την επεξεργασία. +- **Επαναχρησιμοποίηση Smart Markers** – μπορείτε να τοποθετήσετε πολλαπλά markers στο ίδιο φύλλο, το καθένα να δείχνει σε διαφορετική ιδιότητα JSON. +- **Συνδυάστε με τύπους** – μόλις το JSON είναι σε ένα κελί, μπορείτε να χρησιμοποιήσετε το `FILTERXML` του Excel (σε νεότερες εκδόσεις) για να το αναλύσετε άμεσα. + +## Συμπέρασμα + +Τώρα ξέρετε πώς να **create excel workbook c#**, να ενσωματώσετε ένα JSON payload, και να **save workbook as xlsx** χρησιμοποιώντας το Aspose.Cells. Αυτό το πρότυπο σας επιτρέπει να **generate excel from json**, **write json to excel**, και **insert json into excel** με λίγες μόνο γραμμές κώδικα, καθιστώντας την ανταλλαγή δεδομένων μεταξύ υπηρεσιών και αναλυτών απροβλημάτιστη. + +Έτοιμοι για το επόμενο βήμα; Δοκιμάστε να μετατρέψετε το JSON array σε έναν σωστό πίνακα (ορίστε `ArrayAsSingle = false`) ή εξερευνήστε το στυλ του φύλλου μετά την εισαγωγή. Η ίδια προσέγγιση λειτουργεί για CSV, XML, ή ακόμη και προσαρμοσμένα αντικείμενα—απλώς προσαρμόστε τον τύπο Smart Marker. + +Καλό κώδικα, και νιώστε ελεύθεροι να πειραματιστείτε! Αν αντιμετωπίσετε προβλήματα, αφήστε ένα σχόλιο παρακάτω ή ρίξτε μια ματιά στην επίσημη τεκμηρίωση του Aspose για πιο βαθιές εξερευνήσεις των Smart Markers. + +{{< /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/greek/net/excel-workbook/_index.md b/cells/greek/net/excel-workbook/_index.md index 8112e41e53..91e0632ab7 100644 --- a/cells/greek/net/excel-workbook/_index.md +++ b/cells/greek/net/excel-workbook/_index.md @@ -75,6 +75,7 @@ | [Ρύθμιση επιπέδου συμπίεσης](./adjust-compression-level/) Μάθετε πώς να προσαρμόζετε τα επίπεδα συμπίεσης για αρχεία Excel χρησιμοποιώντας το Aspose.Cells για .NET. Βελτιστοποιήστε αποτελεσματικά τα μεγέθη των αρχείων σας με αυτόν τον οδηγό βήμα προς βήμα. | | [Επιτρέπεται η αρχική απόστροφος](./allow-leading-apostrophe/) | Διαχειριστείτε εύκολα τις πρώτες απόστροφους στο Excel με το Aspose.Cells για .NET. Αυτό το ολοκληρωμένο σεμινάριο σας καθοδηγεί βήμα προς βήμα στη διαδικασία. | | [Δημιουργία κοινόχρηστου βιβλίου εργασίας](./create-shared-workbook/) | Μάθετε πώς να δημιουργήσετε ένα κοινόχρηστο βιβλίο εργασίας χρησιμοποιώντας το Aspose.Cells για .NET με αυτόν τον απλό οδηγό βήμα προς βήμα. Ιδανικό για την ενίσχυση της συνεργασίας της ομάδας. | +| [Δημιουργία master sheet σε C# – Πλήρης οδηγός Aspose.Cells](./create-master-sheet-in-c-complete-aspose-cells-guide/) | Μάθετε πώς να δημιουργήσετε ένα master sheet στο Excel χρησιμοποιώντας C# και το Aspose.Cells με αυτόν τον πλήρη οδηγό. | | [Εντοπισμός τύπων συνδέσμων](./detect-link-types/) | Μάθετε πώς να εντοπίζετε τύπους υπερσυνδέσμων στο Excel χρησιμοποιώντας το Aspose.Cells για .NET. Περιλαμβάνονται εύκολα βήματα και παραδείγματα κώδικα. | | [Εξαγωγή ενσωματωμένου αρχείου Mol](./extract-embedded-mol-file/) | Μάθετε πώς να εξαγάγετε εύκολα ενσωματωμένα αρχεία MOL από ένα βιβλίο εργασίας του Excel χρησιμοποιώντας το Aspose.Cells για .NET. | | [Φιλτράρισμα καθορισμένων ονομάτων κατά τη φόρτωση του βιβλίου εργασίας](./filter-defined-names-while-loading-workbook/) Μάθετε πώς να φιλτράρετε καθορισμένα ονόματα κατά τη φόρτωση ενός βιβλίου εργασίας με το Aspose.Cells για .NET σε αυτόν τον ολοκληρωμένο οδηγό. | diff --git a/cells/greek/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md b/cells/greek/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md new file mode 100644 index 0000000000..b78655c70d --- /dev/null +++ b/cells/greek/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md @@ -0,0 +1,230 @@ +--- +category: general +date: 2026-03-30 +description: Δημιουργήστε το κύριο φύλλο χρησιμοποιώντας το Aspose.Cells σε C#. Μάθετε + πώς να δημιουργήσετε ένα βιβλίο εργασίας Excel σε C#, να επιτρέψετε διπλότυπα ονόματα + φύλλων και να αποθηκεύσετε το βιβλίο εργασίας ως XLSX σε λίγα βήματα. +draft: false +keywords: +- create master sheet +- create excel workbook c# +- save workbook as xlsx +- allow duplicate sheet names +language: el +og_description: Δημιουργήστε κύριο φύλλο με το Aspose.Cells σε C#. Αυτός ο οδηγός + δείχνει πώς να δημιουργήσετε ένα βιβλίο εργασίας Excel σε C#, να επιτρέψετε διπλά + ονόματα φύλλων και να αποθηκεύσετε το βιβλίο εργασίας ως XLSX. +og_title: Δημιουργία κύριου φύλλου σε C# – Πλήρης οδηγός Aspose.Cells +tags: +- Aspose.Cells +- C# +- Excel automation +title: Δημιουργία κύριου φύλλου σε C# – Πλήρης οδηγός Aspose.Cells +url: /el/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Δημιουργία κύριου φύλλου σε C# – Πλήρης Οδηγός Aspose.Cells + +Έχετε ποτέ χρειαστεί να **create master sheet** σε ένα αρχείο Excel αλλά δεν ήσασταν σίγουροι πώς να διαχειριστείτε μια σειρά από φύλλα λεπτομερειών που μοιράζονται το ίδιο βασικό όνομα; Δεν είστε μόνοι. Σε πολλές περιπτώσεις αναφοράς καταλήγετε με δεκάδες καρτέλες λεπτομερειών, και η προεπιλεγμένη συμπεριφορά των περισσότερων βιβλιοθηκών είναι να πετάξει μια εξαίρεση όταν δύο φύλλα θα έχουν το ίδιο όνομα. + +Ευτυχώς, το Aspose.Cells κάνει πανεύκολο το **create master sheet**, τη διαμόρφωση της μηχανής για **allow duplicate sheet names**, και στη συνέχεια το **save workbook as XLSX**—όλα από καθαρό κώδικα C#. Σε αυτό το tutorial θα περάσουμε από ένα πλήρως εκτελέσιμο παράδειγμα, θα εξηγήσουμε γιατί κάθε γραμμή είναι σημαντική, και θα σας δώσουμε μια σειρά από συμβουλές που μπορείτε να αντιγράψετε απευθείας στα δικά σας έργα. + +> **Τι θα αποκομίσετε** +> * Πώς να **create Excel workbook C#**‑style χρησιμοποιώντας το Aspose.Cells. +> * Πώς να ενσωματώσετε ένα smart‑marker που δημιουργεί ένα φύλλο λεπτομέρειας για κάθε γραμμή δεδομένων. +> * Πώς να ορίσετε `DetailSheetNewName = DuplicateAllowed` ώστε η βιβλιοθήκη να προσθέτει αυτόματα αριθμητικό επίθημα. +> * Πώς να **save workbook as XLSX** στο δίσκο χωρίς επιπλέον βήματα. + +Δεν απαιτείται εξωτερική τεκμηρίωση—όλα όσα χρειάζεστε είναι εδώ. + +--- + +## Προαπαιτούμενα + +Πριν βουτήξουμε, βεβαιωθείτε ότι έχετε: + +| Απαίτηση | Γιατί είναι σημαντικό | +|-------------|----------------| +| .NET 6.0 ή νεότερο (ή .NET Framework 4.7+) | Το Aspose.Cells 23.x+ στοχεύει σε αυτά τα runtime. | +| Visual Studio 2022 (ή οποιοδήποτε IDE C#) | Για εύκολη δημιουργία έργου και αποσφαλμάτωση. | +| Aspose.Cells for .NET NuGet package (`Install-Package Aspose.Cells`) | Η βιβλιοθήκη που τροφοδοτεί όλη τη μαγεία των smart‑marker. | +| Basic C# knowledge | Θα κατανοήσετε τη σύνταξη χωρίς εκπαιδευτικό μάθημα. | + +Αν λείπει κάτι από αυτά, προσθέστε τα τώρα—δεν έχει νόημα να συνεχίσετε με ένα ημιτελές περιβάλλον. + +--- + +## Βήμα 1: Δημιουργία κύριου φύλλου με Aspose.Cells + +Το πρώτο που κάνουμε είναι **create Excel workbook C#** style δημιουργώντας ένα αντικείμενο `Workbook`. Αυτό το αντικείμενο περιέχει ήδη ένα προεπιλεγμένο φύλλο εργασίας, το οποίο θα μετονομάσουμε σε “Master” και θα το χρησιμοποιήσουμε ως πρότυπο για όλες τις σελίδες λεπτομερειών. + +```csharp +using Aspose.Cells; + +// Step 1: Initialise a new workbook – this automatically gives us one sheet +Workbook workbook = new Workbook(); + +// Grab the first (and only) worksheet that comes with a fresh workbook +Worksheet masterSheet = workbook.Worksheets[0]; + +// Give it a meaningful name – this will be our master sheet +masterSheet.Name = "Master"; +``` + +*Γιατί να μετονομάσουμε το φύλλο;* +Ένα προεπιλεγμένο όνομα όπως “Sheet1” δεν μεταδίδει πρόθεση, και αργότερα όταν ελέγχετε το αρχείο θα θέλετε την καρτέλα master να είναι άμεσα αναγνωρίσιμη. Η ονομασία επίσης αποτρέπει τυχαίες συγκρούσεις όταν προσθέτετε περισσότερα φύλλα. + +## Βήμα 2: Προετοιμασία του smart‑marker που θα δημιουργεί φύλλα λεπτομερειών + +Τα smart‑markers είναι placeholders που το Aspose.Cells αντικαθιστά με δεδομένα κατά την εκτέλεση. Τοποθετώντας `{{#detail:DataSheetName}}` στο κελί **A1**, λέμε στη μηχανή: “Για κάθε εγγραφή στην πηγή δεδομένων, δημιουργήστε ένα νέο φύλλο του οποίου το όνομα προέρχεται από το πεδίο `DataSheetName`.” + +```csharp +// Step 2: Insert a smart‑marker into cell A1. +// The marker #detail tells Aspose.Cells to generate a new sheet per data row. +masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); +``` + +Σκεφτείτε το marker ως μια μικρή κάρτα οδηγιών κολλημένη στο φύλλο εργασίας. Όταν εκτελείται ο επεξεργαστής, διαβάζει την κάρτα, τραβά την κατάλληλη τιμή από την πηγή δεδομένων, και στη συνέχεια κλωνοποιεί το κύριο φύλλο σε μια νέα καρτέλα. + +## Βήμα 3: Δημιουργία της πηγής δεδομένων – σκόπιμα διπλότυπα ονόματα φύλλων + +Στην πραγματική ζωή μπορεί να το αντλήσετε από μια βάση δεδομένων, αλλά για τη demo θα χρησιμοποιήσουμε έναν πίνακα μνήμης με ανώνυμα αντικείμενα. Παρατηρήστε ότι και τα δύο στοιχεία χρησιμοποιούν το ίδιο βασικό όνομα `"Detail"`· αυτό είναι το σενάριο όπου το **allow duplicate sheet names** γίνεται κρίσιμο. + +```csharp +// Step 3: Create a data source with two items that share the same base sheet name. +var dataSource = new[] +{ + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } +}; +``` + +Αν το δοκιμάζατε χωρίς ειδικές επιλογές, το Aspose.Cells θα έριχνε εξαίρεση στη δεύτερη επανάληψη επειδή υπάρχει ήδη ένα φύλλο με το όνομα “Detail”. Γι' αυτό το επόμενο βήμα είναι σημαντικό. + +## Βήμα 4: Ενεργοποίηση διπλότυπων ονομάτων φύλλων + +Το Aspose.Cells εκθέτει το `SmartMarkerOptions.DetailSheetNewName`. Ορίζοντάς το σε `DetailSheetNewName.DuplicateAllowed` λέτε στη μηχανή να προσθέτει αυτόματα αριθμητικό επίθημα (π.χ., “Detail_1”) όποτε συμβαίνει σύγκρουση ονομάτων. + +```csharp +// Step 4: Configure SmartMarker options to permit duplicate sheet names. +var smartMarkerOptions = new SmartMarkerOptions +{ + // This makes the library rename clashes to "Detail_1", "Detail_2", etc. + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed +}; +``` + +*Γιατί να μην δώσουμε σε κάθε γραμμή ένα μοναδικό όνομα χειροκίνητα;* +Επειδή συχνά τα δεδομένα πηγής δεν εγγυώνται μοναδικότητα, ειδικά όταν οι χρήστες εισάγουν ελεύθερο κείμενο. Αφήνοντας τη βιβλιοθήκη να διαχειριστεί το επίθημα αφαιρεί μια ολόκληρη κατηγορία σφαλμάτων. + +## Βήμα 5: Επεξεργασία των smart‑markers και δημιουργία των φύλλων λεπτομερειών + +Τώρα καλούμε το `SmartMarkers.Process`, περνώντας τόσο την πηγή δεδομένων όσο και τις επιλογές που μόλις διαμορφώσαμε. Η μέθοδος περνάει από κάθε στοιχείο, κλωνοποιεί το κύριο φύλλο, και μετονομάζει το κλώνο σύμφωνα με το πεδίο `DataSheetName` (συμπεριλαμβανομένου ενός επιθήματος αν χρειάζεται). + +```csharp +// Step 5: Run the smart‑marker processor – this creates the detail sheets. +masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); +``` + +Μετά την εκτέλεση αυτής της γραμμής θα έχετε τρεις καρτέλες στο βιβλίο εργασίας: + +1. **Master** – το αρχικό πρότυπο. +2. **Detail** – το πρώτο παραγόμενο φύλλο (χωρίς επίθημα). +3. **Detail_1** – το δεύτερο παραγόμενο φύλλο (επίθημα προστέθηκε αυτόματα). + +Μπορείτε να το επαληθεύσετε ανοίγοντας το αρχείο στο Excel· θα δείτε τα δύο φύλλα λεπτομερειών δίπλα‑δίπλα. + +## Βήμα 6: Αποθήκευση του βιβλίου εργασίας ως αρχείο XLSX + +Τέλος, αποθηκεύουμε το αρχείο στο δίσκο. Η μέθοδος `Save` επιλέγει αυτόματα τη μορφή XLSX όταν της δίνετε μια επέκταση `.xlsx`. + +```csharp +// Step 6: Persist the workbook – this is the moment we finally “save workbook as XLSX”. +string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; +workbook.Save(outputPath); +``` + +**Pro tip:** Αν χρειάζεται να μεταδώσετε το αρχείο απευθείας σε απάντηση web (π.χ., ASP.NET Core), χρησιμοποιήστε `workbook.Save(stream, SaveFormat.Xlsx)` αντί για διαδρομή αρχείου. + +## Πλήρες Παράδειγμα Εργασίας + +Παρακάτω βρίσκεται το πλήρες, έτοιμο‑για‑εκτέλεση πρόγραμμα. Αντιγράψτε‑και‑επικολλήστε το σε μια εφαρμογή console, πατήστε F5, και ανοίξτε το παραγόμενο αρχείο για να δείτε το αποτέλεσμα. + +```csharp +using System; +using Aspose.Cells; + +namespace MasterSheetDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook and rename the default sheet to "Master" + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert a smart‑marker that will generate a detail sheet per data row + masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); + + // 3️⃣ Prepare a data source where two rows share the same sheet name + var dataSource = new[] + { + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } + }; + + // 4️⃣ Allow duplicate sheet names – the library will add "_1", "_2", … + var smartMarkerOptions = new SmartMarkerOptions + { + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed + }; + + // 5️⃣ Process the smart‑markers; this creates the detail sheets + masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); + + // 6️⃣ Save the workbook as an XLSX file + string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Expected outcome:** Ανοίξτε το `DuplicateDetailSheets.xlsx` και θα δείτε τρία φύλλα εργασίας—`Master`, `Detail` και `Detail_1`. Κάθε φύλλο λεπτομέρειας είναι ακριβής αντίγραφο του κύριου, έτοιμο για να το γεμίσετε με δεδομένα συγκεκριμένων γραμμών αργότερα. + +## Συχνές Ερωτήσεις & Ακραίες Περιπτώσεις + +### Τι γίνεται αν χρειαστώ περισσότερα από δύο διπλότυπα φύλλα; + +Κανένα πρόβλημα. Η ίδια ρύθμιση `DuplicateAllowed` θα συνεχίσει να προσθέτει αυξανόμενους αριθμούς (`Detail_2`, `Detail_3`, …) μέχρι κάθε γραμμή να έχει τη δική της καρτέλα. + +### Μπορώ να προσαρμόσω τη μορφή του επιθήματος; + +Από προεπιλογή, το Aspose.Cells χρησιμοποιεί μια υπογράμμιση ακολουθούμενη από αριθμητικό δείκτη. Αν χρειάζεστε διαφορετικό μοτίβο (π.χ., “Detail‑A”, “Detail‑B”), θα πρέπει να επεξεργαστείτε το βιβλίο εργασίας μετά την εκτέλεση του `Process`, διασχίζοντας το `workbook.Worksheets` και μετονομάζοντας όπως κρίνετε κατάλληλο. + +### Λειτουργεί αυτή η προσέγγιση με μεγάλα σύνολα δεδομένων (εκατοντάδες γραμμές); + +Ναι, αλλά προσέξτε τη χρήση μνήμης. Κάθε παραγόμενο φύλλο είναι πλήρες αντίγραφο του κύριου, έτσι ένας τεράστιος αριθμός γραμμών μπορεί να αυξήσει γρήγορα το μέγεθος του αρχείου. Αν χρειάζεστε μόνο λίγες γραμμές ανά φύλλο, σκεφτείτε τη χρήση του `SmartMarkerOptions.RemoveEmptyRows = true` για να αφαιρέσετε περιττά κελιά. + +### Είναι το παραγόμενο αρχείο πραγματικά αρχείο XLSX; + +Απόλυτα. Η μέθοδος `Save` γράφει το πακέτο Open XML που περιμένει το Excel. Μπορείτε ακόμη να ανοίξετε το αρχείο με LibreOffice ή Google Sheets χωρίς καμία μετατροπή. + +## Συμβουλές για Κώδικα Έτοιμο για Παραγωγή + +| Συμβουλή | Γιατί είναι σημαντικό | +|-----|----------------| +| **Dispose `Workbook + +{{< /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/greek/net/formulas-functions/_index.md b/cells/greek/net/formulas-functions/_index.md index 48cb61ab7e..ec21283c25 100644 --- a/cells/greek/net/formulas-functions/_index.md +++ b/cells/greek/net/formulas-functions/_index.md @@ -102,6 +102,9 @@ ### [Ενημέρωση τύπων Power Query του Excel με Aspose.Cells .NET](./update-power-query-formulas-aspose-cells-net) Μάθετε πώς να ενημερώνετε μέσω προγραμματισμού τύπους Power Query σε βιβλία εργασίας του Excel χρησιμοποιώντας το Aspose.Cells για .NET. Διαχείριση κύριας προέλευσης δεδομένων για δυναμικές αναφορές. +### [Δημιουργία βιβλίου εργασίας Excel C# – Οδηγός Lambda, SEQUENCE & EXPAND](./create-excel-workbook-c-lambda-sequence-expand-guide/) +Μάθετε πώς να δημιουργήσετε βιβλία εργασίας Excel σε C# χρησιμοποιώντας τις συναρτήσεις Lambda, SEQUENCE και EXPAND του Aspose.Cells. + ## Κατανόηση των τύπων τύπων του Excel Οι τύποι του Excel διατίθενται σε διάφορες μορφές, καθεμία από τις οποίες έχει μοναδικά χαρακτηριστικά που μπορεί να διαχειριστεί το Aspose.Cells: diff --git a/cells/greek/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md b/cells/greek/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md new file mode 100644 index 0000000000..be2c7992ad --- /dev/null +++ b/cells/greek/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-30 +description: Δημιουργήστε βιβλίο εργασίας Excel σε C# χρησιμοποιώντας το Aspose.Cells. + Μάθετε πώς να εφαρμόζετε τη συνάρτηση λάμδα στο Excel, τη συνάρτηση sequence στο + Excel, την επέκταση πίνακα στο Excel και να αποθηκεύετε το βιβλίο εργασίας ως xlsx. +draft: false +keywords: +- create excel workbook c# +- lambda function excel +- save workbook as xlsx +- sequence function excel +- expand array excel +language: el +og_description: Δημιουργήστε γρήγορα βιβλίο εργασίας Excel με C#. Αυτός ο οδηγός δείχνει + πώς να χρησιμοποιήσετε τη συνάρτηση lambda στο Excel, τη συνάρτηση sequence στο + Excel, την επέκταση πίνακα στο Excel και να αποθηκεύσετε το βιβλίο εργασίας ως xlsx. +og_title: Δημιουργία βιβλίου εργασίας Excel C# – Οδηγός Lambda, SEQUENCE & EXPAND +tags: +- Aspose.Cells +- C# +- Excel automation +title: Δημιουργία βιβλίου εργασίας Excel C# – Οδηγός Lambda, SEQUENCE & EXPAND +url: /el/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Δημιουργία Excel Workbook C# – Οδηγός Lambda, SEQUENCE & EXPAND + +Κάποτε χρειάστηκε να **δημιουργήσετε Excel workbook C#** για μια αυτοματοποιημένη αναφορά, αλλά δεν ήξερες ποια κλήση API να χρησιμοποιήσεις; Δεν είσαι μόνος—πολλοί προγραμματιστές αντιμετωπίζουν το ίδιο πρόβλημα όταν βουτούν για πρώτη φορά στη δημιουργία Excel προγραμματιστικά. Σε αυτόν τον οδηγό θα δεις ένα πλήρες, εκτελέσιμο παράδειγμα που καλύπτει τα πάντα, από τη νέα **συνάρτηση SEQUENCE του Excel** μέχρι τη δυνατή **συνάρτηση LAMBDA του Excel**, και ακόμη και πώς να **επεκτείνεις τα αποτελέσματα array στο Excel**. + +Θα σου δείξουμε επίσης τα ακριβή βήματα για **αποθήκευση του workbook ως xlsx** ώστε να μπορείς να παραδώσεις το αρχείο σε όποιον χρησιμοποιεί Excel. Στο τέλος αυτού του tutorial θα έχεις ένα σταθερό, έτοιμο για παραγωγή snippet που μπορείς να ενσωματώσεις σε οποιοδήποτε .NET project. Χωρίς ασαφείς συνδέσμους «δείτε την τεκμηρίωση»—απλώς κώδικας που λειτουργεί σήμερα. + +## Τι Θα Χρειαστείς + +- **.NET 6.0 ή νεότερο** – το παράδειγμα στοχεύει στο .NET 6, αλλά οποιαδήποτε πρόσφατη έκδοση λειτουργεί. +- **Aspose.Cells for .NET** – εγκατάσταση μέσω NuGet (`Install-Package Aspose.Cells`). +- Βασική κατανόηση της σύνταξης C# (μεταβλητές, αντικείμενα και εκφράσεις lambda). +- Ένα IDE που προτιμάς (Visual Studio, Rider ή VS Code). + +Αυτό είναι όλο. Χωρίς επιπλέον COM interop, χωρίς Office εγκατεστημένο στον server—το Aspose.Cells διαχειρίζεται τα πάντα στη μνήμη. + +## Δημιουργία Excel Workbook C# – Υλοποίηση Βήμα‑Βήμα + +Παρακάτω χωρίζουμε τη διαδικασία σε μικρά βήματα. Κάθε βήμα έχει σαφή επικεφαλίδα, σύντομο απόσπασμα κώδικα και εξήγηση του **γιατί** το κάνουμε. Μπορείς να αντιγράψεις το πλήρες μπλοκ στο τέλος και να το τρέξεις ως console app. + +### Βήμα 1 – Αρχικοποίηση Νέου Workbook + +Πρώτα απ’ όλα: χρειάζεται ένα κενό αντικείμενο workbook που να αντιπροσωπεύει το αρχείο Excel στη μνήμη. + +```csharp +using Aspose.Cells; + +// Step 1: Create a new workbook and get the first worksheet +Workbook workbook = new Workbook(); // empty workbook +Worksheet sheet = workbook.Worksheets[0]; // default first sheet +``` + +*Γιατί είναι σημαντικό:* `Workbook` είναι το σημείο εισόδου για όλες τις λειτουργίες του Aspose.Cells. Παίρνοντας το πρώτο `Worksheet` αποκτούμε έναν καμβά όπου μπορούμε να γράψουμε τύπους, τιμές ή μορφοποίηση. + +> **Συμβουλή:** Αν χρειάζεσαι πολλαπλά φύλλα, απλώς κάλεσε `workbook.Worksheets.Add()` και κράτησε μια αναφορά σε καθένα. + +### Βήμα 2 – Χρήση της Συνάρτησης SEQUENCE του Excel για Δημιουργία Δεδομένων + +Η **sequence function excel** δημιουργεί έναν δυναμικό πίνακα αριθμών χωρίς κανένα VBA. Θα την τοποθετήσουμε στο κελί `A1` και θα αφήσουμε το Excel να την επεκτείνει αυτόματα. + +```csharp +// Step 2: Generate a 5‑row, 1‑column array from a SEQUENCE +sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; // 1..3 padded with blanks +``` + +*Γιατί είναι σημαντικό:* `SEQUENCE(3)` επιστρέφει `[1,2,3]`. Περιβάλλοντάς το με `EXPAND` εξαναγκάζουμε το αποτέλεσμα σε περιοχή 5‑γραμμών, γεμίζοντας τις επιπλέον γραμμές με κενά. Αυτό δείχνει ταυτόχρονα τη **sequence function excel** και το **expand array excel**. + +### Βήμα 3 – Συγκέντρωση Αριθμών με τη Συνάρτηση LAMBDA του Excel + +Τώρα ας παρουσιάσουμε τη δυνατότητα **lambda function excel**. Θα αθροίσουμε τους αριθμούς 1‑5 χρησιμοποιώντας τη νέα συνάρτηση `REDUCE`, η οποία εσωτερικά βασίζεται σε μια lambda. + +```csharp +// Step 3: Aggregate a sequence (sum 1..5) using REDUCE/LAMBDA +sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; // result = 15 +``` + +*Γιατί είναι σημαντικό:* `REDUCE` διατρέχει τον πίνακα που παράγει η `SEQUENCE(5)`, τροφοδοτώντας κάθε στοιχείο (`b`) στη lambda μαζί με τον συσσωρευτή (`a`). Η lambda `a+b` τα προσθέτει, αφήνοντας το `15` στο `B1`. Αυτός είναι ένας καθαρός, μόνο‑τύπου τρόπος για να κάνεις μειώσεις χωρίς βρόχους στο C#. + +### Βήμα 4 – Εφαρμογή Τριγωνομετρικών Συναρτήσεων Απευθείας στα Κελιά + +Οι ενσωματωμένες μαθηματικές συναρτήσεις του Excel είναι χρήσιμες για γρήγορους υπολογισμούς. Θα βάλουμε ένα συνημίτονο (cotangent) και ένα υπερβολικό συνημίτονο σε διπλά κελία. + +```csharp +// Step 4: Trigonometric functions directly in Excel cells +sheet["C1"].Formula = "COT(PI()/4)"; // evaluates to 1 +sheet["D1"].Formula = "COTH(1)"; // hyperbolic cotangent of 1 +``` + +*Γιατί είναι σημαντικό:* Δείχνει ότι μπορείς να συνδυάσεις κλασικές μαθηματικές συναρτήσεις με τις νεότερες δυναμικές‑πίνακες. Δεν χρειάζεται να υπολογίσεις αυτές τις τιμές στο C# εκτός αν υπάρχει συγκεκριμένος λόγος απόδοσης. + +### Βήμα 5 – Υπολογισμός Όλων των Τύπων + +Το Aspose.Cells δεν αξιολογεί αυτόματα τους τύπους όταν τους ορίζεις. Πρέπει να το ζητήσεις να υπολογίσει. + +```csharp +// Step 5: Force calculation so that cells store the results +workbook.CalculateFormula(); +``` + +*Γιατί είναι σημαντικό:* Με αυτή την κλήση, η ιδιότητα `Value` κάθε κελιού περιέχει το αξιολογημένο αποτέλεσμα, έτοιμο για αποθήκευση ή ανάγνωση. + +### Βήμα 6 – Αποθήκευση του Workbook ως Xlsx + +Τέλος, αποθηκεύουμε το workbook στο δίσκο χρησιμοποιώντας το πρότυπο **save workbook as xlsx**. + +```csharp +// Step 6: Save the workbook to an Excel file (XLSX format) +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + +workbook.Save(outputPath); +Console.WriteLine($"Workbook saved to: {outputPath}"); +``` + +*Γιατί είναι σημαντικό:* Η μέθοδος `Save` ανιχνεύει αυτόματα την επέκταση του αρχείου. Χρησιμοποιώντας “.xlsx” εξασφαλίζουμε ότι το αρχείο είναι συμβατό με τις σύγχρονες εκδόσεις του Excel. Η διαδρομή δείχνει στην επιφάνεια εργασίας για εύκολη πρόσβαση κατά τη δοκιμή. + +### Πλήρες Παράδειγμα Εργασίας + +Ακολουθεί το ολοκληρωμένο πρόγραμμα που μπορείς να επικολλήσεις σε ένα νέο console project. Περιλαμβάνει όλα τα παραπάνω βήματα, καθώς και ένα μικρό μπλοκ επαλήθευσης που εκτυπώνει τις υπολογισμένες τιμές στην κονσόλα. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialize workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + + // SEQUENCE + EXPAND + sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; + + // REDUCE with LAMBDA + sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; + + // Trig functions + sheet["C1"].Formula = "COT(PI()/4)"; + sheet["D1"].Formula = "COTH(1)"; + + // Calculate formulas + workbook.CalculateFormula(); + + // Verify results (optional) + Console.WriteLine("A1‑A5 (expanded SEQUENCE):"); + for (int i = 0; i < 5; i++) + { + Console.WriteLine($" Row {i + 1}: {sheet.Cells[i, 0].Value ?? "blank"}"); + } + Console.WriteLine($"B1 (sum 1‑5): {sheet["B1"].Value}"); + Console.WriteLine($"C1 (cot(π/4)): {sheet["C1"].Value}"); + Console.WriteLine($"D1 (coth(1)): {sheet["D1"].Value}"); + + // Save workbook + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + workbook.Save(outputPath); + Console.WriteLine($"Workbook saved to: {outputPath}"); + } +} +``` + +**Αναμενόμενη έξοδος στην κονσόλα** + +``` +A1‑A5 (expanded SEQUENCE): + Row 1: 1 + Row 2: 2 + Row 3: 3 + Row 4: blank + Row 5: blank +B1 (sum 1‑5): 15 +C1 (cot(π/4)): 1 +D1 (coth(1)): 1.31303528549933 +Workbook saved to: C:\Users\YourName\Desktop\NewFunctions.xlsx +``` + +Και όταν ανοίξεις το *NewFunctions.xlsx* θα δεις τους ίδιους αριθμούς τοποθετημένους στις πρώτες τέσσερις στήλες. + +![Δημιουργία Excel workbook c# στιγμιότυπο του τελικού υπολογιστικού φύλλου](/images/create-excel-workbook-csharp.png) + +## Περιπτώσεις Ορίων, Συμβουλές και Συχνές Ερωτήσεις + +- **Τι γίνεται αν χρειαστώ περισσότερα από ένα φύλλο;** + Απλώς κάλεσε `workbook.Worksheets.Add()` και επανάλαβε τις αναθέσεις τύπων σε κάθε νέο αντικείμενο `Worksheet`. + +- **Μπορώ να χρησιμοποιήσω παλαιότερες εκδόσεις του Excel;** + Οι συναρτήσεις δυναμικού‑πίνακα (`SEQUENCE`, `EXPAND`, `REDUCE`) απαιτούν Excel 365 ή Excel 2021+. Αν στοχεύεις σε παλαιότερες εκδόσεις, χρησιμοποίησε κλασικούς τύπους ή υπολόγισε τις τιμές στο C# πριν τις γράψεις. + +- **Ανησυχίες απόδοσης;** + Για χιλιάδες γραμμές, η τοποθέτηση τύπων σε μια περιοχή και μετά η κλήση `CalculateFormula` είναι συνήθως πιο γρήγορη από το βρόχο και την ανάθεση τιμών μία‑μία. + +- **Αποθήκευση σε ροή (stream) αντί για αρχείο;** + `work + +{{< /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/greek/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md b/cells/greek/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md new file mode 100644 index 0000000000..9304da9bb8 --- /dev/null +++ b/cells/greek/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md @@ -0,0 +1,215 @@ +--- +category: general +date: 2026-03-30 +description: Μάθετε πώς να χρησιμοποιείτε το WRAPCOLS σε C# για να δημιουργήσετε ένα + βιβλίο εργασίας Excel, να προσθέσετε δεδομένα στο Excel και να εξαναγκάσετε τον + υπολογισμό τύπων, ενώ χρησιμοποιείτε επίσης το WRAPROWS. +draft: false +keywords: +- how to use wrapcols +- create excel workbook c# +- add data to excel +- force formula calculation +- how to use wraprows +language: el +og_description: Ανακαλύψτε πώς να χρησιμοποιήσετε το WRAPCOLS σε C# για να δημιουργήσετε + ένα βιβλίο εργασίας Excel, να προσθέσετε δεδομένα, να εξαναγκάσετε τον υπολογισμό + τύπων και να αξιοποιήσετε το WRAPROWS για τύπους πίνακα. +og_title: Πώς να χρησιμοποιήσετε το WRAPCOLS σε C# – Πλήρης οδηγός +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Πώς να χρησιμοποιήσετε το WRAPCOLS σε C# – Δημιουργία βιβλίου εργασίας Excel + με λειτουργίες περιτύλιξης +url: /el/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Πώς να χρησιμοποιήσετε το WRAPCOLS σε C# – Δημιουργία βιβλίου εργασίας Excel με λειτουργίες περιτύλιξης + +Έχετε αναρωτηθεί ποτέ **πώς να χρησιμοποιήσετε το WRAPCOLS** όταν αυτοματοποιείτε το Excel με C#; Δεν είστε μόνοι—πολλοί προγραμματιστές συναντούν δυσκολίες όταν πρέπει να μετατρέψουν μια οριζόντια περιοχή σε κατακόρυφο πίνακα χωρίς να γράψουν πολύ κώδικα. Τα καλά νέα είναι ότι το Aspose.Cells το κάνει παιχνιδάκι. + +Σε αυτό το tutorial θα περάσουμε βήμα‑βήμα από ένα πλήρες, εκτελέσιμο παράδειγμα που δείχνει **πώς να χρησιμοποιήσετε το WRAPCOLS**, πώς να **δημιουργήσετε βιβλίο εργασίας Excel σε στυλ C#**, πώς να **προσθέσετε δεδομένα στο Excel**, και ακόμη πώς να **εξαναγκάσετε τον υπολογισμό τύπων** ώστε τα αποτελέσματα να εμφανίζονται αμέσως. Θα ρίξουμε επίσης μια ματιά στο **πώς να χρησιμοποιήσετε το WRAPROWS** για την αντίστροφη μετατροπή. Στο τέλος θα έχετε ένα πρόγραμμα έτοιμο προς εκτέλεση και μια σαφή κατανόηση του γιατί κάθε βήμα είναι σημαντικό. + +--- + +![How to use WRAPCOLs in C# example](alt="Screenshot showing Excel workbook after using WRAPCOLS in C#") + +## Τι καλύπτει αυτός ο οδηγός + +* Ρύθμιση ενός νέου βιβλίου εργασίας με Aspose.Cells. +* Προσθήκη δεδομένων στα κελιά προγραμματιστικά (**add data to Excel**). +* Εφαρμογή της συνάρτησης `WRAPCOLS` για μετατροπή μιας σειράς σε στήλη. +* Χρήση του `WRAPROWS` για να μετατρέψετε μια στήλη ξανά σε σειρά (**how to use wraprows**). +* Εξαναγκάστε τη μηχανή να αξιολογήσει τους τύπους αμέσως (**force formula calculation**). +* Αποθήκευση του αρχείου και έλεγχος του αποτελέσματος. + +Δεν απαιτείται εξωτερική τεκμηρίωση—όλα όσα χρειάζεστε είναι εδώ. + +--- + +## Πώς να χρησιμοποιήσετε το WRAPCOLS σε C# – Υλοποίηση βήμα‑βήμα + +Παρακάτω βρίσκεται το πλήρες αρχείο πηγαίου κώδικα. Μπορείτε να το αντιγράψετε σε ένα νέο έργο console, να προσθέσετε το πακέτο NuGet Aspose.Cells και να πατήσετε **F5**. + +```csharp +// ------------------------------------------------------------ +// How to Use WRAPCOLS in C# – Complete Example +// ------------------------------------------------------------ +using System; +using Aspose.Cells; + +namespace WrapFunctionsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a fresh workbook (this is how we **create excel workbook c#** style) + Workbook workbook = new Workbook(); + + // 2️⃣ Grab the first worksheet – it's created by default + Worksheet sheet = workbook.Worksheets[0]; + + // 3️⃣ **Add data to Excel**: place two numbers side‑by‑side + sheet.Cells["A1"].PutValue(1); // first value + sheet.Cells["B1"].PutValue(2); // second value + + // 4️⃣ **How to use WRAPCOLS** – turn the horizontal range A1:B1 into a vertical array + // The second argument (1) tells WRAPCOLS to create 1 column per element. + sheet["C1"].Formula = "WRAPCOLS(A1:B1, 1)"; + + // 5️⃣ **How to use WRAPROWS** – the opposite; turn the same range into a horizontal array + // Here we ask for 2 rows per element, which produces a single row with both values. + sheet["C2"].Formula = "WRAPROWS(A1:B1, 2)"; + + // 6️⃣ **Force formula calculation** so the workbook reflects the results immediately + workbook.CalculateFormula(); + + // 7️⃣ Save the workbook to disk – change the path to a folder you own + string outputPath = @"WrapFunctions.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + Console.WriteLine("Check cells C1 and C2 for the WRAPCOLS / WRAPROWS results."); + } + } +} +``` + +### Γιατί κάθε γραμμή είναι σημαντική + +| Βήμα | Εξήγηση | +|------|----------| +| **1️⃣ Create a fresh workbook** | Αυτό είναι το θεμέλιο. Το Aspose.Cells θεωρεί ένα αντικείμενο `Workbook` ως ολόκληρο το αρχείο Excel, έτσι ουσιαστικά **δημιουργείτε ένα βιβλίο εργασίας Excel σε στυλ C#**. | +| **2️⃣ Grab the first worksheet** | Ένα νέο βιβλίο εργασίας περιέχει πάντα τουλάχιστον ένα φύλλο (`Worksheets[0]`). Η πρόσβαση σε αυτό νωρίς αποφεύγει εκπλήξεις τύπου null‑reference. | +| **3️⃣ Add data to Excel** | Χρησιμοποιώντας το `PutValue` **προσθέτετε δεδομένα στο Excel** χωρίς να ανησυχείτε για τη μορφοποίηση των κελιών. Οι αριθμοί `1` και `2` είναι τα δεδομένα δοκιμής για τις συναρτήσεις περιτύλιξης. | +| **4️⃣ How to use WRAPCOLS** | Το `WRAPCOLS(A1:B1, 1)` λέει στο Excel να πάρει την περιοχή `A1:B1` και να ρίξει τις τιμές της κάθετα, μία ανά γραμμή. Το αποτέλεσμα τοποθετείται στο `C1` και εξαπλώνεται προς τα κάτω (`C1`, `C2`, …). | +| **5️⃣ How to use WRAPROWS** | Το `WRAPROWS(A1:B1, 2)` κάνει το αντίθετο: δημιουργεί μια οριζόντια εξάπλωση, τοποθετώντας τις δύο τιμές σε μία σειρά που ξεκινά από το `C2`. | +| **6️⃣ Force formula calculation** | Από προεπιλογή, το Aspose.Cells μπορεί να καθυστερήσει τον υπολογισμό μέχρι το αρχείο να ανοιχτεί στο Excel. Καλώντας το `CalculateFormula()` **εξαναγκάζετε τον υπολογισμό τύπων** ώστε να μπορείτε να διαβάσετε τα αποτελέσματα αμέσως μετά την αποθήκευση. | +| **7️⃣ Save the workbook** | Το τελευταίο βήμα γράφει τα πάντα στο δίσκο. Ανοίξτε το παραγόμενο `WrapFunctions.xlsx` για να δείτε το αποτέλεσμα. | + +--- + +## Δημιουργία βιβλίου εργασίας Excel C# – Ρύθμιση του Περιβάλλοντος + +Πριν τρέξετε τον κώδικα, βεβαιωθείτε ότι έχετε τα σωστά εργαλεία: + +1. **.NET 6.0+** – Η πιο πρόσφατη έκδοση LTS λειτουργεί καλύτερα. +2. **Visual Studio 2022** (ή VS Code με την επέκταση C#). +3. **Aspose.Cells for .NET** – Εγκατάσταση μέσω NuGet: + ```bash + dotnet add package Aspose.Cells + ``` +4. Ένας φάκελος με δικαιώματα εγγραφής για το αρχείο εξόδου. + +Αυτές οι προαπαιτήσεις είναι ελάχιστες· δεν απαιτείται COM interop ή εγκατάσταση του Office, γι’ αυτό το Aspose.Cells είναι μια δημοφιλής επιλογή για δημιουργία Excel από τον server. + +--- + +## Προσθήκη δεδομένων στο Excel – Καλές Πρακτικές + +Όταν **προσθέτετε δεδομένα στο Excel** προγραμματιστικά, λάβετε υπόψη τις παρακάτω συμβουλές: + +* **Χρησιμοποιήστε `PutValue`** για ακατέργαστους αριθμούς ή συμβολοσειρές· εντοπίζει αυτόματα τον τύπο δεδομένων. +* **Αποφύγετε το σκληρό κωδικοποίηση διευθύνσεων κελιών** σε μεγάλα έργα—χρησιμοποιήστε βρόχους ή ονομασμένες περιοχές για κλιμακωσιμότητα. +* **Ορίστε στυλ κελιών με μέτρο**· κάθε αλλαγή στυλ δημιουργεί επιπλέον κόστος. Αν χρειάζεστε μορφοποίηση, δημιουργήστε ένα αντικείμενο στυλ και εφαρμόστε το σε πολλά κελιά. + +Στο μικρό μας παράδειγμα εισάγουμε μόνο δύο αριθμούς, αλλά το ίδιο μοτίβο κλιμακώνεται σε χιλιάδες γραμμές. + +--- + +## Πώς να χρησιμοποιήσετε το WRAPROWS – Παράδειγμα Οριζόντιου Πίνακα + +Αν χρειάζεστε το αντίστροφο του `WRAPCOLS`, το `WRAPROWS` είναι η λύση. Η σύνταξη είναι: + +``` +WRAPROWS(source_range, [rows_per_item]) +``` + +* `source_range` – η περιοχή που θέλετε να μετατρέψετε. +* `rows_per_item` – προαιρετικό· καθορίζει πόσες γραμμές καταλαμβάνει κάθε στοιχείο. Στο demo μας χρησιμοποιήσαμε `2` για να βάλουμε και τις δύο τιμές σε μία σειρά. + +Μπορείτε να πειραματιστείτε αλλάζοντας το δεύτερο όρισμα: + +```csharp +// Example: split each value into its own column, three rows per item +sheet["D1"].Formula = "WRAPROWS(A1:B1, 3)"; +``` + +Ανοίξτε το βιβλίο εργασίας και θα δείτε τις τιμές να εξαπλώνονται σε τρεις στήλες, κάθε στήλη να περιέχει τους αρχικούς αριθμούς όπως χρειάζεται. + +--- + +## Εξαναγκασμός Υπολογισμού Τύπων – Πότε και Γιατί + +Μπορεί να αναρωτιέστε, “Χρειάζεται πραγματικά να καλέσω το `CalculateFormula()`;” Η απάντηση είναι **ναι**, αν: + +* Σκοπεύετε να διαβάσετε τις υπολογισμένες τιμές **προγραμματιστικά** μετά την αποθήκευση. +* Θέλετε να εγγυηθείτε ότι το αρχείο ανοίγει στο Excel με τα σωστά αποτελέσματα ήδη εμφανισμένα. +* Εκτελείτε σε **ασυρόμενο περιβάλλον** (π.χ. web API) όπου κανένας χρήστης δεν θα ενεργοποιήσει χειροκίνητα τον επαναϋπολογισμό. + +Παραλείποντας αυτό το βήμα δεν θα σπάσει το βιβλίο εργασίας, αλλά τα κελιά θα εμφανίζουν το κείμενο του τύπου (`=WRAPCOLS(...)`) αντί για τις υπολογισμένες τιμές μέχρι το Excel να επαναϋπολογίσει. + +--- + +## Αναμενόμενο Αποτέλεσμα – Τι να Παρατηρήσετε + +Μετά την εκτέλεση του προγράμματος και το άνοιγμα του `WrapFunctions.xlsx`: + +| Κελί | Τύπος | Τιμή που εμφανίζεται | +|------|-------|-----------------------| +| **C1** | `=WRAPCOLS(A1:B1, 1)` | `1` (στο C1) και `2` (στο C2) – κατακόρυφος κατάλογος | +| **C2** | `=WRAPROWS(A1:B1, 2)` | `1` στο C2 και `2` στο D2 – οριζόντιος κατάλογος | + +Έτσι θα δείτε μια στήλη τιμών που ξεκινά από το **C1** και μια σειρά τιμών που ξεκινά από το **C2**. Αυτό επιβεβαιώνει ότι και οι δύο συναρτήσεις περιτύλιξης λειτούργησαν όπως αναμενόταν. + +--- + +## Ακραίες Περιπτώσεις & Παραλλαγές + +| Σενάριο | Τι αλλάζει; | Προτεινόμενη προσαρμογή | +|----------|-------------|------------------------| +| **Μεγάλη περιοχή (A1:Z1)** | Περισσότερες τιμές για κατακόρυφη εξάπλωση | Αυξήστε το δεύτερο όρισμα του `WRAPCOLS` αν θέλετε πολλαπλές στήλες ανά ομάδα. | +| **Μη‑αριθμητικά δεδομένα** | Οι συμβολοσειρές αντιμετωπίζονται με τον ίδιο τρόπο | Δεν απαιτείται αλλαγή κώδικα· το `PutValue` δέχεται οποιοδήποτε αντικείμενο. | +| **Δυναμική περιοχή** | Δεν γνωρίζετε το μέγεθος κατά τη μεταγλώττιση | Χρησιμοποιήστε `sheet.Cells.MaxDataColumn` και `MaxDataRow` για να δημιουργήσετε τη διεύθυνση. | +| **Πολλαπλά φύλλα εργασίας** | Χρειάζεται εφαρμογή των συναρτήσεων σε διαφορετικά φύλλα | Αναφερθείτε στο σωστό φύλλο (`workbook.Worksheets["Sheet2"]`). | + +Αν προβλέψετε αυτές τις παραλλαγές, μπορείτε να προσαρμόσετε το βασικό μοτίβο σε σχεδόν οποιοδήποτε σενάριο αυτοματοποίησης. + +--- + +## Pro Tips από το Πεδίο Μάχης + +* **Pro tip:** Τυλίξτε τη δημιουργία του βιβλίου εργασίας μέσα σε ένα `using` block αν στοχεύετε .NET Core 3.1+ ώστε να εξασφαλίσετε άμεση απελευθέρωση πόρων. +* **Watch out for:** Η τοποθέτηση του ίδιου τύπου σε μεγάλη περιοχή χωρίς κλήση `CalculateFormula()` μπορεί να προκαλέσει προβλήματα απόδοσης. Επεξεργαστείτε τους τύπους σε batch όταν είναι δυνατόν. +* **Tip:** Αν χρειάζεται να διαβάσετε ξανά τις υπολογισμένες τιμές στον κώδικα, καλέστε ` + +{{< /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/greek/net/tables-and-lists/_index.md b/cells/greek/net/tables-and-lists/_index.md index 4d7b4480e4..6d68447e94 100644 --- a/cells/greek/net/tables-and-lists/_index.md +++ b/cells/greek/net/tables-and-lists/_index.md @@ -51,6 +51,8 @@ Ξεκλειδώστε τη δύναμη του Aspose.Cells για .NET. Μάθετε να διαβάζετε και να γράφετε πίνακες με προελεύσεις δεδομένων ερωτημάτων σε αυτόν τον λεπτομερή οδηγό βήμα προς βήμα. ### [Ορισμός σχολίου για πίνακα ή λίστα στο Excel](./setting-comment-of-table-or-list/) Μάθετε πώς να ορίζετε σχόλια για πίνακες στο Excel χρησιμοποιώντας το Aspose.Cells για .NET με τον εύκολο οδηγό μας βήμα προς βήμα. +### [Δημιουργία πίνακα από εύρος σε C# – Πλήρης οδηγός Aspose.Cells](./create-table-from-range-in-c-complete-aspose-cells-tutorial/) +Μάθετε πώς να δημιουργείτε πίνακα από ένα εύρος κελιών σε C# χρησιμοποιώντας το Aspose.Cells για .NET, βήμα προς βήμα. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/greek/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md b/cells/greek/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md new file mode 100644 index 0000000000..e0cf73cfde --- /dev/null +++ b/cells/greek/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md @@ -0,0 +1,231 @@ +--- +category: general +date: 2026-03-30 +description: Δημιουργία πίνακα από περιοχή σε C# με το Aspose.Cells – προσθήκη δεδομένων + στα κελιά, μετατροπή της περιοχής σε ListObject και αποθήκευση του Excel χωρίς φίλτρο. +draft: false +keywords: +- create table from range +- create excel workbook c# +- add data to cells +- convert range to listobject +- save excel without filter +language: el +og_description: Δημιουργήστε πίνακα από περιοχή σε C# με το Aspose.Cells. Μάθετε πώς + να προσθέτετε δεδομένα σε κελιά, να μετατρέπετε μια περιοχή σε ListObject και να + αποθηκεύετε το Excel χωρίς φίλτρο. +og_title: Δημιουργία Πίνακα από Περιοχή σε C# – Πλήρης Οδηγός Aspose.Cells +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Δημιουργία Πίνακα από Περιοχή σε C# – Πλήρες Μάθημα Aspose.Cells +url: /el/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Δημιουργία Πίνακα από Περιοχή σε C# – Πλήρες Tutorial Aspose.Cells + +Κάποτε χρειάστηκε να **δημιουργήσετε πίνακα από περιοχή** σε C# αλλά δεν ήσασταν σίγουροι πώς να μετατρέψετε ένα απλό μπλοκ δεδομένων σε έναν πλήρως εξοπλισμένο πίνακα Excel; Δεν είστε οι μόνοι. Είτε αυτοματοποιείτε αναφορές, δημιουργείτε scorecards, είτε απλώς καθαρίζετε δεδομένα για περαιτέρω ανάλυση, η κατάκτηση αυτού του μικρού κόλπου μπορεί να σας εξοικονομήσει πολύ χειροκίνητη εργασία. + +Σε αυτόν τον οδηγό θα περάσουμε από όλη τη διαδικασία: **create excel workbook c#**, **add data to cells**, **convert range to ListObject**, και τέλος **save excel without filter**. Στο τέλος θα έχετε ένα έτοιμο κομμάτι κώδικα που μπορείτε να ενσωματώσετε σε οποιοδήποτε έργο .NET που αναφέρεται στο Aspose.Cells. + +--- + +## Προαπαιτούμενα + +- .NET 6+ (ή .NET Framework 4.7.2+) εγκατεστημένο +- Aspose.Cells for .NET (πακέτο NuGet `Aspose.Cells`) – η πιο πρόσφατη έκδοση τη στιγμή της συγγραφής (23.10) λειτουργεί τέλεια. +- Βασική κατανόηση της σύνταξης C# – δεν απαιτείται βαθιά γνώση του Excel interop. + +Αν έχετε όλα αυτά, ας ξεκινήσουμε. + +--- + +## Βήμα 1: Δημιουργία Excel Workbook σε C# + +Πρώτα χρειάζεται ένα νέο αντικείμενο workbook. Σκεφτείτε το ως το κενό αρχείο Excel που θα φιλοξενήσει τελικά τον πίνακά μας. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is equivalent to opening a blank .xlsx file. +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (default) worksheet. +``` + +> **Pro tip:** `Workbook()` χωρίς ορίσματα δημιουργεί ένα workbook με ένα προεπιλεγμένο φύλλο, κάτι που είναι ιδανικό για γρήγορες επιδείξεις. Αν χρειάζεστε πολλαπλά φύλλα, μπορείτε να τα προσθέσετε αργότερα με `workbook.Worksheets.Add()`. + +--- + +## Βήμα 2: Προσθήκη Δεδομένων σε Κελιά + +Τώρα θα γεμίσουμε το φύλλο με ένα μικρό σύνολο δεδομένων – δύο στήλες (Name, Score) και τρεις γραμμές τιμών. Αυτό δείχνει πώς να **add data to cells** με καθαρό και ευανάγνωστο τρόπο. + +```csharp +// Header row +worksheet.Cells["A1"].PutValue("Name"); +worksheet.Cells["B1"].PutValue("Score"); + +// Data rows +worksheet.Cells["A2"].PutValue("Alice"); +worksheet.Cells["B2"].PutValue(85); +worksheet.Cells["A3"].PutValue("Bob"); +worksheet.Cells["B3"].PutValue(92); +``` + +Γιατί να χρησιμοποιήσετε το `PutValue`; Ανιχνεύει αυτόματα τον τύπο δεδομένων (string vs. numeric) και μορφοποιεί το κελί αναλόγως, εξοικονομώντας σας την ανάγκη χειρισμού αντικειμένων `Style` για απλές περιπτώσεις. + +> **Αναμενόμενο αποτέλεσμα:** Μετά από αυτό το βήμα, αν ανοίξετε το workbook στο Excel θα δείτε ένα πλέγμα δύο στηλών με κεφαλίδες “Name” και “Score”, ακολουθούμενο από δύο γραμμές δεδομένων. + +--- + +## Βήμα 3: Μετατροπή της Περιοχής σε ListObject (Πίνακας) + +Εδώ συμβαίνει η μαγεία: η μετατροπή της απλής περιοχής σε πίνακα Excel (ονομάζεται **ListObject** στο Aspose.Cells API). Αυτό όχι μόνο προσθέτει οπτικό στυλ, αλλά και ενεργοποιεί ενσωματωμένες λειτουργίες όπως ταξινόμηση, φιλτράρισμα και δομημένες αναφορές. + +```csharp +// Define the range boundaries. +// startRow and startColumn are zero‑based indexes. +// rowCount includes the header row. +int startRow = 0; // Row 1 in Excel +int startColumn = 0; // Column A +int rowCount = 3; // Header + 2 data rows +int columnCount = 2; // Two columns: Name & Score + +// Add a ListObject to the worksheet and retrieve the object. +int listIndex = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); +ListObject table = worksheet.ListObjects[listIndex]; + +// Turn on the UI filter dropdowns so users can interact with the table. +table.ShowAutoFilter = true; +``` + +> **Γιατί να χρησιμοποιήσετε ListObject;** +> - **Δομημένες αναφορές**: Οι τύποι μπορούν να αναφέρονται σε στήλες με το όνομα τους. +> - **UI Auto‑filter**: Οι χρήστες λαμβάνουν βέλη dropdown για γρήγορο φιλτράρισμα. +> - **Στυλ**: Μπορείτε να εφαρμόσετε ενσωματωμένα στυλ πίνακα με μία μόνο γραμμή αργότερα. + +--- + +## Βήμα 4: Αφαίρεση του UI AutoFilter (Save Excel Without Filter) + +Μερικές φορές χρειάζεται ένα καθαρό φύλλο χωρίς βέλη φιλτραρίσματος – π.χ., όταν το workbook είναι τελική αναφορά. Το Aspose.Cells 23.10 εισήγαγε έναν απλό τρόπο για να αφαιρέσετε εντελώς το UI του φίλτρου. + +```csharp +// Remove the filter UI completely. +table.AutoFilter = null; // Clears the underlying filter object. +table.ShowAutoFilter = false; // Hides the dropdown arrows. +``` + +Παρατηρήστε ότι δεν διαγράφουμε τα δεδομένα· απλώς απενεργοποιούμε τους οπτικούς ελέγχους φίλτρου. Αυτό ικανοποιεί την απαίτηση **save excel without filter**. + +--- + +## Βήμα 5: Αποθήκευση του Workbook + +Τέλος, γράψτε το workbook στο δίσκο. Το αρχείο θα περιέχει τον πίνακα αλλά χωρίς UI φίλτρου. + +```csharp +// Choose a folder you have write access to. +string outputPath = @"C:\Temp\NoAutoFilter.xlsx"; +workbook.Save(outputPath); +``` + +Ανοίξτε το `NoAutoFilter.xlsx` στο Excel – θα δείτε τον πίνακα με προεπιλεγμένη μορφοποίηση, αλλά χωρίς βέλη φίλτρου. Τα δεδομένα παραμένουν ανέπαφα και το αρχείο είναι έτοιμο για διανομή. + +--- + +![Screenshot showing create table from range in Excel using Aspose.Cells](image.png "Create table from range screenshot") + +*Κείμενο alt εικόνας:* **Screenshot showing create table from range in Excel using Aspose.Cells** – οπτική απόδειξη ότι ο πίνακας υπάρχει χωρίς dropdown φίλτρου. + +--- + +## Πλήρες, Εκτελέσιμο Παράδειγμα + +Παρακάτω βρίσκεται το πλήρες πρόγραμμα που μπορείτε να αντιγράψετε‑επικολλήσετε σε μια εφαρμογή console. Περιλαμβάνει όλα τα παραπάνω βήματα, καθώς και μερικά επιπλέον σχόλια για σαφήνεια. + +```csharp +using System; +using Aspose.Cells; + +namespace AsposeTableDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add data to cells – this is the “add data to cells” part. + worksheet.Cells["A1"].PutValue("Name"); + worksheet.Cells["B1"].PutValue("Score"); + worksheet.Cells["A2"].PutValue("Alice"); + worksheet.Cells["B2"].PutValue(85); + worksheet.Cells["A3"].PutValue("Bob"); + worksheet.Cells["B3"].PutValue(92); + + // 3️⃣ Convert the range into a ListObject (i.e., create table from range). + int startRow = 0, startColumn = 0, rowCount = 3, columnCount = 2; + int listIdx = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); + ListObject table = worksheet.ListObjects[listIdx]; + table.ShowAutoFilter = true; // optional UI filter + + // 4️⃣ Remove the AutoFilter UI – “save excel without filter”. + table.AutoFilter = null; + table.ShowAutoFilter = false; + + // 5️⃣ Save the workbook. + string filePath = @"C:\Temp\NoAutoFilter.xlsx"; + workbook.Save(filePath); + + Console.WriteLine($"Workbook saved to {filePath}"); + } + } +} +``` + +Τρέξτε το πρόγραμμα, έπειτα ανοίξτε το `C:\Temp\NoAutoFilter.xlsx`. Θα δείτε έναν ωραία μορφοποιημένο πίνακα, χωρίς βέλη φίλτρου, και τα δεδομένα που εισάγαμε. Αυτή είναι η πλήρης ροή εργασίας **create excel workbook c#** σε λιγότερο από 60 γραμμές κώδικα. + +--- + +## Συχνές Ερωτήσεις & Ακραίες Περιπτώσεις + +**Ε: Τι γίνεται αν η περιοχή δεδομένων μου δεν είναι συνεχής;** +Α: Το Aspose.Cells απαιτεί ορθογώνια περιοχή για `ListObjects.Add`. Αν έχετε μη‑συνεχή δεδομένα, δημιουργήστε πρώτα μια προσωρινή περιοχή (π.χ., αντιγράψτε τα κομμάτια σε νέο φύλλο) και μετά μετατρέψτε αυτήν την περιοχή. + +**Ε: Μπορώ να εφαρμόσω προσαρμοσμένο στυλ πίνακα;** +Α: Απόλυτα. Μετά τη δημιουργία του `ListObject`, ορίστε `table.TableStyleType = TableStyleType.TableStyleMedium9;` (ή οποιοδήποτε από τα 65 ενσωματωμένα στυλ). Αυτό είναι ένας καλός τρόπος να ταιριάξετε τον πίνακα με το εταιρικό branding. + +**Ε: Πώς κρατάω το φίλτρο αλλά κρύβω τα βέλη;** +Α: Η λογική του φίλτρου ζει στο `table.AutoFilter`. Ορίζοντας `ShowAutoFilter = false` κρύβει μόνο το UI· το υποκείμενο φίλτρο παραμένει. Έτσι μπορείτε ακόμη να φιλτράρετε γραμμές προγραμματιστικά αργότερα. + +**Ε: Τι γίνεται με μεγάλα σύνολα δεδομένων (10k+ γραμμές);** +Α: Το ίδιο API λειτουργεί, αλλά σκεφτείτε να απενεργοποιήσετε τους αυτόματους υπολογισμούς (`workbook.CalcEngine = false`) πριν από μαζικές εισαγωγές για απόδοση, και να το ενεργοποιήσετε ξανά μετά. + +--- + +## Συμπέρασμα + +Καλύψαμε πώς να **create table from range** σε C# χρησιμοποιώντας το Aspose.Cells, βήμα‑βήμα—from **create excel workbook c#**, μέσω **add data to cells**, μέχρι **convert range to ListObject**, και τέλος **save excel without filter**. Ο κώδικας είναι πλήρης, εκτελέσιμος και έτοιμος για παραγωγή. + +Επόμενα βήματα που μπορείτε να εξερευνήσετε: + +- Προσθήκη conditional formatting για ανάδειξη κορυφαίων σκορ. +- Εξαγωγή του workbook σε PDF με `workbook.Save("Report.pdf", SaveFormat.Pdf);`. +- Χρήση `table.Columns["Score"].DataBodyRange.Sort` για προγραμματιστική ταξινόμηση του πίνακα. + +Μη διστάσετε να πειραματιστείτε με διαφορετικά σύνολα δεδομένων, στυλ πινάκων ή ακόμη και πολλαπλά φύλλα. Το API είναι αρκετά ευέλικτο ώστε να διαχειριστεί από ένα μικρό scoreboard μέχρι ένα τεράστιο οικονομικό λογιστικό βιβλίο. + +Έχετε ερωτήσεις ή αντιμετωπίζετε πρόβλημα; Αφήστε ένα σχόλιο παρακάτω ή στείλτε μου μήνυμα στο GitHub. Καλό coding και απολαύστε τη μετατροπή ακατέργαστων περιοχών σε επαγγελματικούς πίνακες 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/hindi/net/conversion-to-pdf/_index.md b/cells/hindi/net/conversion-to-pdf/_index.md index aed6853f66..6bdb0065cf 100644 --- a/cells/hindi/net/conversion-to-pdf/_index.md +++ b/cells/hindi/net/conversion-to-pdf/_index.md @@ -34,6 +34,8 @@ .NET के लिए Aspose.Cells के साथ आसानी से Excel स्प्रेडशीट को PDF में बदलें! सहज अनुभव के लिए हमारे चरण-दर-चरण मार्गदर्शिका का पालन करें। ### [.NET में चार्ट को PDF में बदलें](./convert-chart-to-pdf/) इस चरण-दर-चरण मार्गदर्शिका के साथ Aspose.Cells का उपयोग करके .NET में Excel चार्ट को PDF में परिवर्तित करना सीखें! सभी स्तरों के प्रोग्रामर के लिए बिल्कुल सही। +### [Aspose.Cells के साथ वर्कबुक को PDF के रूप में सहेजें – पूर्ण चरण‑दर‑चरण गाइड](./save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/) +Aspose.Cells का उपयोग करके वर्कबुक को PDF में बदलने के लिए विस्तृत चरण-दर-चरण मार्गदर्शिका। {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hindi/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md b/cells/hindi/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md new file mode 100644 index 0000000000..d09187b7ae --- /dev/null +++ b/cells/hindi/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md @@ -0,0 +1,248 @@ +--- +category: general +date: 2026-03-30 +description: Aspose.Cells का उपयोग करके वर्कबुक को PDF के रूप में सहेजना सीखें। यह + ट्यूटोरियल वर्कशीट को PDF में निर्यात करना, Excel को PDF में निर्यात करना और वर्कशीट + से PDF बनाना भी कवर करता है। +draft: false +keywords: +- save workbook as pdf +- export worksheet to pdf +- how to export excel to pdf +- save excel as pdf +- create pdf from worksheet +language: hi +og_description: वर्कबुक को आसानी से पीडीएफ के रूप में सहेजें। यह गाइड दिखाता है कि + वर्कशीट को पीडीएफ में कैसे निर्यात करें, एक्सेल को पीडीएफ में कैसे निर्यात करें + और C# का उपयोग करके वर्कशीट से पीडीएफ कैसे बनाएं। +og_title: Aspose.Cells के साथ वर्कबुक को PDF के रूप में सहेजें – पूर्ण गाइड +tags: +- Aspose.Cells +- C# +- PDF generation +title: Aspose.Cells के साथ वर्कबुक को PDF के रूप में सहेजें – पूर्ण चरण‑दर‑चरण मार्गदर्शिका +url: /hi/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Save workbook as pdf – Complete Step‑by‑Step Guide + +क्या आपको कभी **save workbook as pdf** करना पड़ा लेकिन यह नहीं पता था कि कौन‑सी लाइब्रेरी आपके नंबरों को सही रखेगी? आप अकेले नहीं हैं। कई प्रोजेक्ट्स में हमें Excel डेटा को एक पॉलिश्ड PDF में बदलना पड़ता है, और सही तरीका अपनाने से डिबगिंग में घंटों की बचत होती है। + +इस ट्यूटोरियल में हम वही कोड देखेंगे जो आपको **save workbook as pdf** करने के लिए Aspose.Cells के साथ चाहिए, और साथ ही दिखाएंगे कि कैसे **export worksheet to pdf** किया जाए, *how to export excel to pdf* सवालों के जवाब देंगे, और एक साफ़ तरीका दिखाएंगे **create pdf from worksheet** को कस्टम प्रिसीजन सेटिंग्स के साथ। + +गाइड के अंत तक आपके पास एक तैयार‑चलाने‑योग्य C# कंसोल ऐप होगा जो केवल वही महत्वपूर्ण अंकों वाला PDF बनाता है जिसकी आपको ज़रूरत है। कोई अतिरिक्त फ़्लफ़ नहीं, सिर्फ़ एक ठोस, प्रोडक्शन‑रेडी सॉल्यूशन। + +--- + +## What You’ll Learn + +- कैसे एक नया `Workbook` सेट‑अप करें और उसकी पहली वर्कशीट को टार्गेट करें। +- वह सटीक मेथड जो **save workbook as pdf** करता है जबकि न्यूमेरिक प्रिसीजन बरकरार रहता है। +- क्यों `SignificantDigits` प्रॉपर्टी महत्वपूर्ण है जब आप **export worksheet to pdf** करते हैं। +- सामान्य pitfalls जब आप **how to export excel to pdf** करने की कोशिश करते हैं और उन्हें कैसे बचें। +- तेज़ तरीके **save excel as pdf** करने के विभिन्न पेज विकल्पों के साथ, और कैसे प्रोग्रामेटिकली **create pdf from worksheet** किया जाए। + +### Prerequisites + +- .NET 6.0 या बाद का (कोड .NET Framework 4.5+ के साथ भी काम करता है)। +- एक वैध Aspose.Cells लाइसेंस (या टेस्टिंग के लिए एक फ्री टेम्पररी लाइसेंस)। +- Visual Studio 2022 या कोई भी C#‑compatible IDE। + +अगर आपके पास ये बेसिक चीज़ें हैं, तो चलिए शुरू करते हैं। + +--- + +## Step 1 – Install Aspose.Cells and Initialise the Workbook + +सबसे पहले: आपको Aspose.Cells NuGet पैकेज चाहिए। अपने प्रोजेक्ट फ़ोल्डर में टर्मिनल खोलें और चलाएँ: + +```bash +dotnet add package Aspose.Cells +``` + +पैकेज इंस्टॉल हो जाने के बाद, एक नया `Workbook` ऑब्जेक्ट बनाएँ। यही वह ऑब्जेक्ट है जिसे आप अंत में **save workbook as pdf** करेंगे। + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialise a fresh workbook – think of it as a blank Excel file. + Workbook workbook = new Workbook(); + + // Grab the first worksheet (index 0). This is where we’ll put our data. + Worksheet worksheet = workbook.Worksheets[0]; +``` + +*इस स्टेप की जरूरत क्यों?* +वर्कबुक बनाकर आपको एक साफ़ कैनवास मिलता है, और पहली वर्कशीट चुनने से आप एक ज्ञात लोकेशन पर काम कर रहे होते हैं। इसे स्किप करने से बाद में **export worksheet to pdf** करने पर *null reference* एरर आ सकता है। + +--- + +## Step 2 – Insert High‑Precision Data + +अब हम एक ऐसा नंबर डालेंगे जिसमें दशमलव के बाद अधिक अंक हों जितने हम PDF में दिखाना चाहते हैं। यह दिखाता है कि `SignificantDigits` सेटिंग आउटपुट को कैसे ट्रिम करती है। + +```csharp + // Place a high‑precision number in cell A1. + worksheet.Cells["A1"].PutValue(1234.56789); +``` + +अगर आप अभी प्रोग्राम चलाते हैं और बस `workbook.Save("output.pdf")` कॉल करते हैं, तो PDF में पूरा `1234.56789` दिखेगा। कुछ केसों में यह ठीक है, लेकिन अक्सर आपको वित्तीय रिपोर्टों के लिए विशिष्ट संख्या के सिग्निफिकेंट डिजिट्स तक राउंड करना पड़ता है। + +--- + +## Step 3 – Configure PDF Save Options + +Aspose.Cells `PdfSaveOptions` के माध्यम से बारीक कंट्रोल देता है। हमें जो प्रॉपर्टी चाहिए वह है `SignificantDigits`। इसे `4` सेट करने से इंजन केवल चार सिग्निफिकेंट फ़िगर्स रखेगा जब आप **save workbook as pdf** करेंगे। + +```csharp + // Configure PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 // This trims the number to 1235 in the PDF. + }; +``` + +*`SignificantDigits` क्यों इस्तेमाल करें?* +जब आप **create pdf from worksheet** करते हैं, तो अक्सर आपको नियामक राउंडिंग नियमों का पालन करना पड़ता है। यह ऑप्शन आपके लिए राउंडिंग कर देता है, जिससे आपको हर सेल को मैन्युअली फॉर्मेट नहीं करना पड़ता। + +--- + +## Step 4 – Export Worksheet to PDF with the Options + +अब असली काम: हम वही विकल्पों के साथ **save workbook as pdf** करते हैं जो हमने अभी परिभाषित किए हैं। + +```csharp + // Save the workbook as a PDF using the configured options. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + } +} +``` + +प्रोग्राम चलाने पर आपके प्रोजेक्ट की आउटपुट फ़ोल्डर में `SignificantDigits.pdf` नाम की फ़ाइल बन जाएगी। इसे खोलें और आप सेल A1 में `1235` देखेंगे – नंबर चार सिग्निफिकेंट डिजिट्स तक राउंड हो गया है। + +*मुख्य बात:* `Save` मेथड फ़ाइल पाथ और `PdfSaveOptions` दोनों लेता है। अगर आप विकल्प छोड़ देते हैं, तो डिफ़ॉल्ट बिहेवियर लागू होगा, जो शायद आपकी प्रिसीजन जरूरतों को पूरा न करे। + +--- + +## Step 5 – Verify the Output and Troubleshoot Common Issues + +### Expected Result + +- एक पेज की PDF जिसका नाम `SignificantDigits.pdf` है। +- सेल A1 में `1235` (चार सिग्निफिकेंट डिजिट्स) दिखेगा। +- कोई अतिरिक्त वर्कशीट या हिडन कंटेंट नहीं दिखेगा। + +### Frequently Asked Questions + +| Question | Answer | +|----------|--------| +| **What if I need more than one worksheet?** | `workbook.Worksheets` पर लूप चलाएँ और प्रत्येक शीट को अलग‑अलग सेव करते समय वही `PdfSaveOptions` लागू करें, या विकल्पों में `OnePagePerSheet = true` सेट करें। | +| **Can I keep the original number format?** | हाँ – `PdfSaveOptions.AllColumnsInOnePage = true` सेट करें और Excel की फ़ॉर्मेटिंग नियमों को काम करने दें, लेकिन याद रखें कि `SignificantDigits` अभी भी न्यूमेरिक प्रिसीजन को ओवरराइड करेगा। | +| **Does this work with .xlsx files that already exist?** | बिल्कुल। `new Workbook()` को `new Workbook("input.xlsx")` से बदल दें और बाकी कोड वही रहेगा। | +| **What if the PDF is blank?** | सुनिश्चित करें कि वर्कबुक में डेटा है और आप लिखने योग्य डायरेक्टरी में सेव कर रहे हैं। साथ ही Aspose.Cells लाइसेंस सही से लागू है या नहीं, यह भी चेक करें; अनलाइसेंस्ड ट्रायल आउटपुट को लिमिट कर सकता है। | + +### Pro Tip + +अगर आपको विशिष्ट पेज ओरिएंटेशन के साथ **save excel as pdf** करना है, तो `pdfSaveOptions.PageSetup.Orientation = PageOrientation.Landscape;` को `Save` कॉल से पहले सेट करें। यह छोटा ट्विक अक्सर बाद में PDF को मैन्युअली एडजस्ट करने की ज़रूरत को खत्म कर देता है। + +--- + +## Variations: Exporting Multiple Sheets or Custom Page Settings + +### Export All Sheets in One Call + +```csharp +PdfSaveOptions allSheetsOptions = new PdfSaveOptions +{ + SignificantDigits = 4, + OnePagePerSheet = true // Each worksheet gets its own page. +}; + +workbook.Save("AllSheets.pdf", allSheetsOptions); +``` + +### Export a Single Sheet as PDF + +अगर आप सिर्फ़ एक विशिष्ट शीट के लिए **export worksheet to pdf** करना चाहते हैं, तो `Worksheet` ऑब्जेक्ट की `ToPdf` मेथड इस्तेमाल करें: + +```csharp +Worksheet sheet = workbook.Worksheets["Sheet2"]; +sheet.ToPdf("Sheet2.pdf", pdfSaveOptions); +``` + +### Adjust Page Margins + +```csharp +pdfSaveOptions.PageSetup.TopMargin = 20; +pdfSaveOptions.PageSetup.BottomMargin = 20; +``` + +इन ट्यूनिंग्स से आप अंतिम डॉक्यूमेंट को पोस्ट‑प्रोसेसिंग के बिना ही फाइन‑ट्यून कर सकते हैं। + +--- + +## Full Working Example + +नीचे पूरा, कॉपी‑एंड‑पेस्ट‑रेडी प्रोग्राम है जिसमें हमने अब तक चर्चा किए सभी हिस्से शामिल हैं। इसे `Program.cs` के रूप में सेव करें और `dotnet run` चलाएँ। + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and select the first worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Insert a high‑precision number. + worksheet.Cells["A1"].PutValue(1234.56789); + + // 3️⃣ Set PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 + }; + + // 4️⃣ Save the workbook as PDF. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + + // Optional: Export another sheet with custom settings. + // Worksheet sheet2 = workbook.Worksheets.Add("Report"); + // sheet2.Cells["B2"].PutValue(9876.54321); + // sheet2.ToPdf("Report.pdf", pdfSaveOptions); + } +} +``` + +**Result:** `SignificantDigits.pdf` खोलें – आपको राउंड किया हुआ वैल्यू `1235` दिखेगा। फ़ाइल साइज छोटा है, और लेआउट मूल Excel शीट से मेल खाता है। + +--- + +## Conclusion + +हमने दिखाया कि कैसे Aspose.Cells का उपयोग करके **save workbook as pdf** किया जाता है, बुनियादी सेट‑अप से लेकर एडवांस्ड ऑप्शन्स जैसे **export worksheet to pdf**, **how to export excel to pdf**, और **create pdf from worksheet** के साथ सटीक न्यूमेरिक कंट्रोल तक। + +यह तरीका सीधा है, सिर्फ़ कुछ लाइनों के C# कोड की ज़रूरत है, और सभी .NET वर्ज़न में काम करता है। आगे आप हेडर/फ़ूटर जोड़ना, इमेज एम्बेड करना, या टेम्प्लेट से PDF जनरेट करना एक्सप्लोर कर सकते हैं—जो भी आप अब कर सकते हैं, वह इस बेस पर बना है। + +कोई नया ट्विस्ट आज़माना चाहते हैं? शायद PDF को पासवर्ड‑प्रोटेक्ट करना या कई PDFs को मर्ज करना। ये नेचुरल एक्सटेंशन हैं, और Aspose.Cells API आपके लिए तैयार है। डुबकी लगाएँ, एक्सपेरिमेंट करें, और लाइब्रेरी को भारी काम करने दें। + +--- + +![save workbook as pdf screenshot](/images/save-workbook-as-pdf.png){alt="जेनरेटेड PDF फ़ाइल दिखाते हुए save workbook as 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/hindi/net/converting-excel-files-to-other-formats/_index.md b/cells/hindi/net/converting-excel-files-to-other-formats/_index.md index cfb004f8c0..4075c13c0a 100644 --- a/cells/hindi/net/converting-excel-files-to-other-formats/_index.md +++ b/cells/hindi/net/converting-excel-files-to-other-formats/_index.md @@ -56,6 +56,8 @@ Aspose.Cells का उपयोग करके .NET में CSV को JSON Aspose.Cells का उपयोग करके .NET में प्रोग्रामेटिक रूप से JSON को CSV में बदलने का तरीका जानें। निर्बाध डेटा रूपांतरण सुनिश्चित करने के लिए हमारे चरण-दर-चरण मार्गदर्शिका का पालन करें। ### [.NET में प्रोग्रामेटिक रूप से Excel फ़ाइल को PPTX में परिवर्तित करना](./converting-excel-file-to-pptx/) इस चरण-दर-चरण मार्गदर्शिका के साथ .NET के लिए Aspose.Cells का उपयोग करके प्रोग्रामेटिक रूप से Excel फ़ाइल को PowerPoint प्रस्तुति (PPTX) में परिवर्तित करना सीखें। +### [.NET में प्रोग्रामेटिक रूप से Excel से PowerPoint बनाना – चरण‑दर‑चरण C# गाइड](./create-powerpoint-from-excel-step-by-step-c-guide/) +Aspose.Cells for .NET का उपयोग करके Excel डेटा से PowerPoint प्रस्तुति बनाने की प्रक्रिया सीखें। चरण‑दर‑चरण कोड उदाहरण। ### [.NET में आउटपुट HTML में HTML क्रॉसटाइप को प्रोग्रामेटिक रूप से निर्दिष्ट करना](./specifying-html-crosstype-in-output-html/) .NET के लिए Aspose.Cells में HTML CrossType निर्दिष्ट करना सीखें। Excel फ़ाइलों को सटीकता के साथ HTML में बदलने के लिए हमारे चरण-दर-चरण ट्यूटोरियल का पालन करें। ### [.NET में प्रोग्रामेटिक रूप से संख्या स्प्रेडशीट पढ़ना](./reading-numbers-spreadsheet/) diff --git a/cells/hindi/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md b/cells/hindi/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md new file mode 100644 index 0000000000..96a433faa0 --- /dev/null +++ b/cells/hindi/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md @@ -0,0 +1,237 @@ +--- +category: general +date: 2026-03-30 +description: Aspose.Cells और Aspose.Slides का उपयोग करके Excel से जल्दी PowerPoint + बनाएं। जानें कैसे वर्कशीट को इमेज के रूप में निर्यात करें और C# में प्रेजेंटेशन + को PPTX के रूप में सहेजें। +draft: false +keywords: +- create powerpoint from excel +- convert excel to powerpoint +- export worksheet as image +- save presentation as pptx +- export excel chart as picture +language: hi +og_description: Aspose के साथ C# में Excel से PowerPoint बनाएं। वर्कशीट को इमेज के + रूप में निर्यात करें, शैप्स को संपादन योग्य रखें, और परिणाम को PPTX के रूप में सहेजें। +og_title: Excel से PowerPoint बनाएं – पूर्ण C# ट्यूटोरियल +tags: +- Aspose +- C# +- Office Automation +title: एक्सेल से पॉवरपॉइंट बनाएं – चरण-दर-चरण C# गाइड +url: /hi/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-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 बनाना** पड़ा है लेकिन यह नहीं पता था कि कौन सी लाइब्रेरी आपके चार्ट्स को एडिटेबल रखेगी? आप अकेले नहीं हैं। कई रिपोर्टिंग परिदृश्यों में आप एक स्प्रेडशीट को स्लाइड डेक में बदलना चाहेंगे बिना बाद में टेक्स्ट बॉक्स को संशोधित करने की क्षमता खोए। यह गाइड आपको बिल्कुल दिखाता है कि **Excel को PowerPoint में कैसे बदलें** Aspose.Cells और Aspose.Slides का उपयोग करके, साथ ही **वर्कशीट को इमेज के रूप में एक्सपोर्ट** करने और अंत में **प्रेजेंटेशन को PPTX के रूप में सेव** करने का तरीका। + +हम हर कोड लाइन को विस्तार से देखेंगे, *क्यों* प्रत्येक सेटिंग महत्वपूर्ण है समझाएंगे, और यह भी चर्चा करेंगे कि यदि आपके वर्कबुक में जटिल चार्ट्स हों जिन्हें आप चित्र के रूप में एक्सपोर्ट करना चाहें तो क्या करना है। अंत तक आपके पास एक तैयार‑चलाने‑योग्य C# कंसोल ऐप होगा जो `ShapesDemo.xlsx` को लेता है और `Result.pptx` आउटपुट करता है – सभी एडिटेबल टेक्स्ट बॉक्स और स्पष्ट इमेज के साथ। + +## आपको क्या चाहिए + +- .NET 6.0 या बाद का संस्करण (API .NET Framework के साथ भी काम करता है, लेकिन .NET 6 सबसे उपयुक्त है)। +- **Aspose.Cells** और **Aspose.Slides** NuGet पैकेज (टेस्टिंग के लिए फ्री ट्रायल लाइसेंस काम करेंगे)। +- C# सिंटैक्स की बुनियादी समझ – यदि आप `Console.WriteLine` लिख सकते हैं, तो आप तैयार हैं। + +कोई अतिरिक्त COM इंटरऑप नहीं, सर्वर पर Office इंस्टॉल नहीं होना चाहिए, और इमेज की मैन्युअल कॉपी‑पेस्ट की जरूरत नहीं। सब कुछ प्रोग्रामेटिकली संभाला जाता है। + +## Excel से PowerPoint बनाएं – वर्कबुक लोड करें और एक्सपोर्ट विकल्प सेट करें + +पहले हम Excel फ़ाइल खोलते हैं और Aspose.Cells को बताते हैं कि हम शीट को कैसे रेंडर करना चाहते हैं। `ImageOrPrintOptions` ऑब्जेक्ट वह जगह है जहाँ जादू होता है: हम `ExportShapes` और `ExportEditableTextBoxes` को सक्षम करते हैं ताकि कोई भी शैप (चार्ट सहित) स्लाइड का हिस्सा बन जाए **और** कन्वर्ज़न के बाद भी एडिटेबल रहे। + +```csharp +using Aspose.Cells; +using Aspose.Slides; + +// 1️⃣ Load the Excel workbook +string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; +Workbook workbook = new Workbook(excelPath); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first sheet + +// 2️⃣ Configure image export – keep shapes editable +ImageOrPrintOptions imageOptions = new ImageOrPrintOptions +{ + OnePagePerSheet = true, // Export the whole sheet as one slide + ExportShapes = true, // Include shapes (charts, drawings) + ExportEditableTextBoxes = true // Make text boxes editable in PPTX +}; +``` + +**इन फ़्लैग्स का कारण क्या है?** +- `OnePagePerSheet` शीट को कई स्लाइड्स में विभाजित होने से रोकता है – आपको एक ही पूर्ण‑साइज़ चित्र मिलता है। +- `ExportShapes` Aspose.Cells को चार्ट्स *और* वेक्टर शैप्स को रास्टराइज़ करने के लिए कहता है, जिससे उनका लुक बरकरार रहता है। +- `ExportEditableTextBoxes` वह गुप्त सॉस है जो आपको PowerPoint में टेक्स्टबॉक्स पर डबल‑क्लिक करके बिना Excel खोले टेक्स्ट एडिट करने देता है। + +> **Pro tip:** यदि आपको केवल चार्ट की स्थिर तस्वीर चाहिए, तो `ExportShapes = false` सेट करें और बाद में `ExportExcelChartAsPicture` मेथड का उपयोग करें (अंतिम सेक्शन देखें)। + +## Excel को PowerPoint में बदलें – वर्कशीट से इमेज जनरेट करें + +ऑप्शन तैयार होने के बाद, हम अब वर्कशीट को `System.Drawing.Image` में बदलते हैं। `WorksheetToImageConverter` भारी काम करता है, हमने जो सेटिंग्स अभी परिभाषित की हैं उन्हें लागू करता है। + +```csharp +// 3️⃣ Convert the worksheet to an image using the options above +WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); +System.Drawing.Image sheetImage = converter.ConvertToImage(0, imageOptions); +``` + +`0` आर्ग्यूमेंट पहला पेज दर्शाता है (हमारे पास केवल एक ही पेज है क्योंकि `OnePagePerSheet` सेट है)। परिणामी `sheetImage` मूल DPI को बरकरार रखता है, इसलिए आपकी स्लाइड हाई‑रिज़ॉल्यूशन डिस्प्ले पर भी पिक्सेलेटेड नहीं दिखेगी। + +## प्रेजेंटेशन को PPTX के रूप में सेव करें – स्लाइड में इमेज डालें + +अब हम एक नई PowerPoint फ़ाइल बनाते हैं, एक स्लाइड जोड़ते हैं, और बिटमैप को उस पर ड्रॉप करते हैं। Aspose.Slides चित्र को *picture frame* शैप के रूप में ट्रीट करता है, जिसे आप बाद में किसी भी नेटिव PowerPoint ऑब्जेक्ट की तरह रिसाइज़ या मूव कर सकते हैं। + +```csharp +// 4️⃣ Create a new PowerPoint presentation +Presentation presentation = new Presentation(); +ISlide slide = presentation.Slides[0]; // The default blank slide + +// Add the Excel‑derived image as a picture frame +slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, // Simple rectangle container + 0, 0, // Top‑left corner (0,0) + sheetImage.Width, // Width of the picture + sheetImage.Height, // Height of the picture + sheetImage); // The bitmap we generated +``` + +> **अगर इमेज स्लाइड साइज से बड़ी हो तो क्या करें?** +> PowerPoint स्वचालित रूप से स्लाइड डाइमेंशन से अधिक किसी भी चीज़ को क्लिप कर देगा। एक त्वरित समाधान है इमेज को इन्सर्ट करने से पहले स्केल करना: + +```csharp +float scale = Math.Min(presentation.SlideSize.Size.Width / (float)sheetImage.Width, + presentation.SlideSize.Size.Height / (float)sheetImage.Height); +int newWidth = (int)(sheetImage.Width * scale); +int newHeight = (int)(sheetImage.Height * scale); +``` + +फिर आप `newWidth` और `newHeight` को `AddPictureFrame` में पास कर सकते हैं। + +## वर्कशीट को इमेज के रूप में एक्सपोर्ट करें – PPTX फ़ाइल सेव करें + +अंत में हम प्रेजेंटेशन को डिस्क पर सेव करते हैं। `SaveFormat.Pptx` फ़्लैग आधुनिक OpenXML फ़ॉर्मेट को गारंटी देता है, जो सभी हालिया PowerPoint वर्ज़न में काम करता है। + +```csharp +// 5️⃣ Save the presentation as a PPTX file +string pptxPath = "YOUR_DIRECTORY/Result.pptx"; +presentation.Save(pptxPath, SaveFormat.Pptx); +``` + +जब आप `Result.pptx` खोलेंगे तो आपको एक ही स्लाइड दिखेगी जो आपके Excel शीट जैसी दिखती है, लेकिन आप अभी भी किसी भी टेक्स्टबॉक्स पर क्लिक करके उसका कंटेंट सीधे PowerPoint में एडिट कर सकते हैं। + +## Excel चार्ट को चित्र के रूप में एक्सपोर्ट करें – जब रास्टर इमेज पसंद हों + +कभी‑कभी आपको एडिटेबल शैप्स की ज़रूरत नहीं होती; एक हाई‑क्वालिटी PNG चार्ट की पर्याप्त होती है। Aspose.Cells पूरे शीट को बदलने के बिना किसी विशिष्ट चार्ट को इमेज में एक्सपोर्ट कर सकता है: + +```csharp +// Example: Export the first chart on the sheet as a PNG +int chartIndex = 0; // Adjust if you have multiple charts +Chart chart = worksheet.Charts[chartIndex]; +ImageOrPrintOptions chartOptions = new ImageOrPrintOptions +{ + ImageFormat = ImageFormat.Png, + OnePagePerSheet = false +}; +chart.ToImage("chart.png", chartOptions); +``` + +फिर आप `chart.png` को उसी तरह स्लाइड में एम्बेड कर सकते हैं जैसे हमने `sheetImage` डाली थी। यह तरीका PPTX फ़ाइल साइज को कम करता है और तब उपयोगी होता है जब स्लाइड पर आसपास का डेटा आवश्यक नहीं होता। + +## सामान्य समस्याएँ और उनके समाधान + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **Text looks blurry** | Exported at low DPI (default 96). | Set `imageOptions.Dpi = 300;` before conversion. | +| **Shapes disappear** | `ExportShapes` left `false`. | Ensure `ExportShapes = true` when you need editable graphics. | +| **Slide size mismatch** | Image larger than slide dimensions. | Scale the image (see code snippet) or change slide size via `presentation.SlideSize`. | +| **License exception** | Using trial version without proper activation. | Call `License license = new License(); license.SetLicense("Aspose.Total.lic");` early in `Main`. | + +## पूर्ण कार्यशील उदाहरण (कॉपी‑पेस्ट तैयार) + +नीचे पूरा प्रोग्राम दिया गया है, जिसे आप नई कंसोल प्रोजेक्ट में डाल सकते हैं। `YOUR_DIRECTORY` को उस फ़ोल्डर से बदलें जहाँ आपका Excel फ़ाइल स्थित है। + +```csharp +using System; +using Aspose.Cells; +using Aspose.Slides; +using System.Drawing; + +namespace ExcelToPowerPointDemo +{ + class Program + { + static void Main(string[] args) + { + // ----------------------------------------------------------------- + // 1️⃣ Load the Excel workbook + // ----------------------------------------------------------------- + string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; + Workbook workbook = new Workbook(excelPath); + Worksheet worksheet = workbook.Worksheets[0]; + + // ----------------------------------------------------------------- + // 2️⃣ Set up export options – keep shapes editable + // ----------------------------------------------------------------- + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + OnePagePerSheet = true, + ExportShapes = true, + ExportEditableTextBoxes = true, + Dpi = 300 // High‑resolution output + }; + + // ----------------------------------------------------------------- + // 3️⃣ Convert worksheet to an image + // ----------------------------------------------------------------- + WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); + Image sheetImage = converter.ConvertToImage(0, imageOptions); + + // ----------------------------------------------------------------- + // 4️⃣ Create PowerPoint and add the image as a slide + // ----------------------------------------------------------------- + Presentation presentation = new Presentation(); + ISlide slide = presentation.Slides[0]; + slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, + 0, 0, + sheetImage.Width, + sheetImage.Height, + sheetImage); + + // ----------------------------------------------------------------- + // 5️⃣ Save the PPTX file + // ----------------------------------------------------------------- + string pptxPath = "YOUR_DIRECTORY/Result.pptx"; + presentation.Save(pptxPath, SaveFormat.Pptx); + + Console.WriteLine("✅ PowerPoint created successfully at: " + pptxPath); + } + } +} +``` + +**Expected output:** +प्रोग्राम चलाने पर `✅ PowerPoint created successfully at: YOUR_DIRECTORY/Result.pptx` प्रिंट होगा। PPTX खोलने पर एक ही स्लाइड दिखेगी जो मूल Excel शीट को प्रतिबिंबित करती है, साथ ही एडिटेबल टेक्स्ट बॉक्स होंगे। + +## सारांश और अगले कदम + +अब आप जानते हैं कि Aspose की शक्तिशाली APIs का उपयोग करके **Excel से PowerPoint कैसे बनाएं**, **वर्कशीट को इमेज के रूप में एक्सपोर्ट करें**, और **प्रेजेंटेशन को PPTX के रूप में सेव करें** जबकि एडिटेबिलिटी बरकरार रहे। यही पैटर्न मल्टी‑शीट वर्कबुक्स पर भी काम करता है—सिर्फ `workbook.Worksheets` पर लूप करें और प्रत्येक के लिए नई स्लाइड जोड़ें। + +**अगला क्या एक्सप्लोर करें?** + +- **Batch conversion:** फ़ोल्डर में मौजूद कई Excel फ़ाइलों पर लूप करके प्रत्येक फ़ाइल के लिए एक स्लाइड डेक जेनरेट करें। +- **Dynamic layouts:** `slide.LayoutSlide` का उपयोग करके प्री‑डिज़ाइन किए गए PowerPoint टेम्प्लेट लागू करें। +- **Chart‑only export:** “Export Excel chart as picture” स्निपेट को स्लाइड प्लेसहोल्डर्स के साथ मिलाकर एक हल्का डेक बनाएं। +- **Advanced styling:** Aspose.Slides के माध्यम से कस्टम स्लाइड बैकग्राउंड, ट्रांज़िशन या एनीमेशन लागू करें। + +बिना झिझक प्रयोग करें—DPI बदलें, `ShapeType.Ellipse` को सर्कुलर पिक्चर फ्रेम से बदलें, या एक स्लाइड में कई इमेज एम्बेड करें। जब आपके पास प्रोग्रामेटिक कंट्रोल हो तो संभावनाएँ असीमित हैं + +{{< /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/hindi/net/document-properties/_index.md b/cells/hindi/net/document-properties/_index.md index 487781c822..dd6e377684 100644 --- a/cells/hindi/net/document-properties/_index.md +++ b/cells/hindi/net/document-properties/_index.md @@ -35,6 +35,8 @@ Excel में दस्तावेज़ गुण आपकी फ़ाइ हमारे चरण-दर-चरण गाइड के साथ .NET के लिए Aspose.Cells का उपयोग करके Excel में दस्तावेज़ गुणों तक पहुँचने का तरीका जानें। अपनी स्प्रेडशीट को कुशलतापूर्वक प्रबंधित करें। ### [.NET में दस्तावेज़ गुण जोड़ना](./adding-document-properties/) इस विस्तृत चरण-दर-चरण मार्गदर्शिका के साथ .NET के लिए Aspose.Cells का उपयोग करके Excel में दस्तावेज़ गुण जोड़ना सीखें। +### [C# में कस्टम प्रॉपर्टीज़ के साथ XLSB कैसे सहेजें – चरण‑दर‑चरण गाइड](./how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/) +C# में Aspose.Cells का उपयोग करके XLSB फ़ाइल में कस्टम प्रॉपर्टीज़ जोड़ने और सहेजने की प्रक्रिया सीखें। {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hindi/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md b/cells/hindi/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md new file mode 100644 index 0000000000..250f5b3860 --- /dev/null +++ b/cells/hindi/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md @@ -0,0 +1,237 @@ +--- +category: general +date: 2026-03-30 +description: C# में XLSB को कैसे सहेजें, कस्टम प्रॉपर्टी जोड़ते हुए उसे पढ़ें, और + Aspose.Cells का उपयोग करके वर्कबुक को XLSB के रूप में सहेजने में निपुण बनें। पूर्ण + कोड शामिल है। +draft: false +keywords: +- how to save xlsb +- add custom property +- how to add property +- how to read property +- save workbook as xlsb +language: hi +og_description: C# में XLSB कैसे सहेजें? यह ट्यूटोरियल आपको दिखाता है कि कस्टम प्रॉपर्टी + कैसे जोड़ें, उसे वापस पढ़ें, और Aspose.Cells के साथ वर्कबुक को XLSB के रूप में सहेजें। +og_title: C# में कस्टम प्रॉपर्टीज़ के साथ XLSB कैसे सहेजें – पूर्ण गाइड +tags: +- Aspose.Cells +- C# +- Excel Automation +title: C# में कस्टम प्रॉपर्टीज़ के साथ XLSB कैसे सहेजें – चरण‑दर‑चरण गाइड +url: /hi/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# में कस्टम प्रॉपर्टीज़ के साथ XLSB कैसे सेव करें – चरण‑दर‑चरण गाइड + +क्या आपने कभी **how to save XLSB** जबकि वर्कशीट से जुड़ी अतिरिक्त मेटाडेटा को बनाए रखें? आप अकेले नहीं हैं। कई एंटरप्राइज़ परिदृश्यों में आपको एक बाइनरी Excel फ़ाइल चाहिए जो आपके अपने key/value जोड़े भी रखे—जैसे कि एक कॉन्ट्रैक्ट ID, एक प्रोसेसिंग फ्लैग, या एक वर्ज़न टैग। + +अच्छी खबर यह है कि Aspose.Cells इसे बहुत आसान बना देता है। इस गाइड में आप देखेंगे कि कैसे एक कस्टम प्रॉपर्टी जोड़ें, उसे सहेजें, और फिर उसे पढ़ें, सभी **saving the workbook as XLSB** के साथ। कोई अस्पष्ट संदर्भ नहीं, सिर्फ एक पूर्ण, चलाने योग्य उदाहरण जिसे आप आज ही अपने प्रोजेक्ट में डाल सकते हैं। + +## आप क्या सीखेंगे + +- शुरू से बनाया गया एक नया `.xlsb` फ़ाइल। +- एक वर्कशीट में **add custom property** जोड़ने की क्षमता। +- कोड जो फ़ाइल पुनः लोड होने के बाद **how to read property** दर्शाता है। +- जब आप **save workbook as XLSB** करते हैं तो आप जिन समस्याओं का सामना कर सकते हैं, उनके टिप्स। + +> **Prerequisites:** .NET 6+ (या .NET Framework 4.6+), Visual Studio (या कोई भी C# IDE), और Aspose.Cells for .NET लाइब्रेरी NuGet के माध्यम से स्थापित। बस इतना ही। + +--- + +## चरण 1: प्रोजेक्ट सेट अप करें और नया वर्कबुक बनाएं + +सबसे पहले—आइए एक साफ़ workbook ऑब्जेक्ट तैयार करें। + +```csharp +using Aspose.Cells; +using System; + +// Initialize a new workbook; this will be an in‑memory Excel file. +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0) – it’s created automatically. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Why this matters:* `Workbook` Aspose.Cells में हर ऑपरेशन का एंट्री पॉइंट है। एक नई इंस्टेंस से शुरू करके आप किसी भी छिपी हुई स्थिति से बचते हैं जो बाद में आपके कस्टम मेटाडेटा को भ्रष्ट कर सकती है। + +--- + +## चरण 2: वर्कशीट में **Add Custom Property** जोड़ें + +अब हम इस शीट पर केवल रहने वाला एक key/value जोड़ा जोड़ेंगे। + +```csharp +// Add a user‑defined property called "MyProperty" with the value "CustomValue". +worksheet.CustomProperties.Add("MyProperty", "CustomValue"); +``` + +> **Pro tip:** प्रॉपर्टी नाम केस‑सेंसिटिव होते हैं। यदि आप बाद में `"myproperty"` को फ़ेच करने की कोशिश करेंगे तो आपको `KeyNotFoundException` मिलेगा। शुरू से ही एक नामकरण सम्मेलन—camelCase या PascalCase—का पालन करें। + +--- + +## चरण 3: **Save Workbook as XLSB** – प्रॉपर्टी को सहेजना + +जादू तब होता है जब आप वर्कबुक को बाइनरी XLSB फॉर्मेट में लिखते हैं। + +```csharp +// Define the output path. Adjust the folder to something writable on your machine. +string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + +// Save the workbook; the custom property travels with the file. +workbook.Save(outputPath, SaveFormat.Xlsb); +``` + +*What you’re actually doing:* `SaveFormat.Xlsb` enum Aspose.Cells को बाइनरी Excel फ़ाइल (तेज़ खोलने, डिस्क पर छोटा) उत्पन्न करने के लिए बताता है। सभी worksheet‑level कस्टम प्रॉपर्टीज़ स्वचालित रूप से सीरियलाइज़ हो जाती हैं—कोई अतिरिक्त कदम नहीं चाहिए। + +--- + +## चरण 4: फ़ाइल को रीलोड करें और **How to Read Property** + +आइए प्रमाणित करें कि प्रॉपर्टी राउंड‑ट्रिप में जीवित रही। + +```csharp +// Load the just‑saved XLSB file back into memory. +Workbook reloadedWorkbook = new Workbook(outputPath); + +// Access the same worksheet (index 0) and fetch the property value. +string customValue = reloadedWorkbook.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); +``` + +यदि सब कुछ सुचारू रूप से हुआ, तो `customValue` अब `"CustomValue"` रखता है। + +--- + +## चरण 5: परिणाम सत्यापित करें – त्वरित कंसोल आउटपुट + +एक छोटा sanity check विकास के दौरान मदद करता है। + +```csharp +Console.WriteLine($"Custom property value: {customValue}"); +``` + +प्रोग्राम चलाने पर यह प्रिंट होना चाहिए: + +``` +Custom property value: CustomValue +``` + +उस लाइन को देखना मतलब आप ने सफलतापूर्वक **how to save XLSB**, **add custom property**, और **how to read property** में महारत हासिल कर ली है—सब एक साफ़ प्रवाह में। + +--- + +## पूर्ण कार्यशील उदाहरण (कॉपी‑पेस्ट तैयार) + +नीचे पूरा प्रोग्राम दिया गया है। इसे एक नए Console App में पेस्ट करें, **F5** दबाएँ, और कंसोल को प्रॉपर्टी वैल्यू की पुष्टि करते देखें। + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // 1️⃣ Create a new workbook and get its first sheet + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // 2️⃣ Add a custom property (key/value) to the sheet + // ------------------------------------------------- + worksheet.CustomProperties.Add("MyProperty", "CustomValue"); + + // ------------------------------------------------- + // 3️⃣ Save the workbook as XLSB – the property is kept + // ------------------------------------------------- + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(outputPath, SaveFormat.Xlsb); + + // ------------------------------------------------- + // 4️⃣ Reload the saved file to demonstrate persistence + // ------------------------------------------------- + Workbook reloaded = new Workbook(outputPath); + + // ------------------------------------------------- + // 5️⃣ Retrieve the custom property's value + // ------------------------------------------------- + string customValue = reloaded.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); + + // ------------------------------------------------- + // 6️⃣ Display the retrieved value (optional) + // ------------------------------------------------- + Console.WriteLine($"Custom property value: {customValue}"); + } +} +``` + +> **Remember:** `outputPath` को उस फ़ोल्डर में बदलें जहाँ आपके पास लिखने की अनुमति हो। यदि आप Linux/macOS पर हैं, तो `"/tmp/WithCustomProp.xlsb"` जैसा पाथ उपयोग करें। + +--- + +## सामान्य प्रश्न और किनारे के मामले + +### यदि प्रॉपर्टी पहले से मौजूद है तो क्या? + +`Add` को मौजूदा कुंजी के साथ कॉल करने पर `ArgumentException` फेंका जाता है। यदि आप सुनिश्चित नहीं हैं तो `ContainsKey` का उपयोग करें या कॉल को `try/catch` में रखें। + +```csharp +if (!worksheet.CustomProperties.ContainsKey("MyProperty")) +{ + worksheet.CustomProperties.Add("MyProperty", "AnotherValue"); +} +``` + +### क्या मैं non‑string मान संग्रहीत कर सकता हूँ? + +बिल्कुल। `Value` प्रॉपर्टी किसी भी `object` को स्वीकार करती है। संख्याओं, तिथियों, या बूलियन्स के लिए बस उपयुक्त प्रकार पास करें—Aspose.Cells पढ़ते समय रूपांतरण संभाल लेगा। + +### क्या प्रॉपर्टी XLSX में कनवर्ट करने पर भी बनी रहती है? + +हाँ। कस्टम प्रॉपर्टीज़ वर्कशीट के XML प्रतिनिधित्व का हिस्सा हैं, इसलिए वे XLSX, XLS, और XLSB फॉर्मेट्स में बनी रहती हैं। + +### कई शीट्स में **how to add property** कैसे जोड़ें? + +`Worksheets` कलेक्शन पर लूप करें और प्रत्येक आवश्यक शीट में समान `CustomProperties.Add` कॉल लागू करें। + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + ws.CustomProperties.Add("ExportedBy", "MyApp"); +} +``` + +### जब आप बड़े पैमाने पर **saving workbook as XLSB** करते हैं तो प्रदर्शन टिप + +यदि आप सैकड़ों फ़ाइलें जनरेट कर रहे हैं, तो वही `Workbook` इंस्टेंस पुनः उपयोग करें और प्रत्येक सेव के बाद `Clear` कॉल करके मेमोरी मुक्त करें। साथ ही, यदि आपको लोड पर फ़ॉर्मूले का मूल्यांकन नहीं चाहिए तो `Workbook.Settings.CalculateFormulaOnOpen = false` सेट करें। + +--- + +## निष्कर्ष + +अब आप जानते हैं **how to save XLSB** C# में Aspose.Cells का उपयोग करके कस्टम प्रॉपर्टी एम्बेड करने और बाद में पुनः प्राप्त करने के लिए। पूर्ण समाधान—वर्कबुक बनाना, प्रॉपर्टी जोड़ना, इसे **save workbook as XLSB** के साथ सहेजना, रीलोड करना, और वैल्यू पढ़ना—50 लाइनों के कोड से कम में फिट हो जाता है। + +अब आप आगे खोज सकते हैं: + +- प्रति शीट कई कस्टम प्रॉपर्टीज़ जोड़ना। +- JSON स्ट्रिंग्स के माध्यम से जटिल ऑब्जेक्ट्स संग्रहीत करना। +- अतिरिक्त सुरक्षा के लिए XLSB फ़ाइल को एन्क्रिप्ट करना। + +इन विचारों को आज़माएँ, और आप जल्दी ही अपनी टीम में Excel ऑटोमेशन के लिए go‑to व्यक्ति बन जाएंगे। कोई प्रश्न या जटिल स्थिति है? नीचे टिप्पणी छोड़ें, और हैप्पी कोडिंग! + +![How to save XLSB with custom property](/images/how-to-save-xlsb.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/hindi/net/excel-copy-worksheet/_index.md b/cells/hindi/net/excel-copy-worksheet/_index.md index 0c3cd50fe8..9d66b8cb91 100644 --- a/cells/hindi/net/excel-copy-worksheet/_index.md +++ b/cells/hindi/net/excel-copy-worksheet/_index.md @@ -42,6 +42,7 @@ Aspose.Cells for .NET एक्सेल फाइलों में हेर | [एक्सेल कॉपी वर्कशीट](./excel-copy-worksheet/) | इस आसान-से-अनुसरण चरण-दर-चरण मार्गदर्शिका के साथ .NET के लिए Aspose.Cells का उपयोग करके Excel वर्कशीट की प्रतिलिपि बनाना सीखें। Excel कार्यों को स्वचालित करने की चाह रखने वाले .NET डेवलपर्स के लिए आदर्श। | | [एक्सेल वर्कबुक के बीच वर्कशीट कॉपी करें](./excel-copy-worksheets-between-workbooks/) | .NET के लिए Aspose.Cells का उपयोग करके Excel वर्कबुक के बीच वर्कशीट कॉपी करना सीखें। आपके स्प्रेडशीट प्रबंधन को कारगर बनाने के लिए कोड उदाहरणों के साथ चरण-दर-चरण मार्गदर्शिका। | | [एक्सेल मूव वर्कशीट](./excel-move-worksheet/) | हमारे चरण-दर-चरण गाइड में .NET के लिए Aspose.Cells का उपयोग करके Excel में वर्कशीट को स्थानांतरित करना सीखें। Excel प्रोग्रामिंग की कला में निपुणता प्राप्त करें। | +| [C# में Aspose.Cells के साथ वर्कशीट कॉपी करने का पूर्ण गाइड](./how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/) | इस विस्तृत गाइड में .NET के लिए Aspose.Cells का उपयोग करके C# में वर्कशीट कॉपी करने के चरण‑दर‑चरण कोड उदाहरण देखें। | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hindi/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md b/cells/hindi/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md new file mode 100644 index 0000000000..9129ee1f31 --- /dev/null +++ b/cells/hindi/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md @@ -0,0 +1,288 @@ +--- +category: general +date: 2026-03-30 +description: C# में Aspose.Cells का उपयोग करके वर्कशीट कैसे कॉपी करें – चरण‑दर‑चरण + गाइड जिसमें सेल रेंज कॉपी करना, शीटों के बीच कॉलम कॉपी करना, वर्कशीट पिवट टेबल कॉपी + करना और नई वर्कशीट जोड़ने का कोड शामिल है। +draft: false +keywords: +- how to copy worksheet +- copy cell range +- copy columns between sheets +- copy worksheet pivot table +- add new worksheet code +language: hi +og_description: Aspose.Cells के साथ C# में वर्कशीट कॉपी करना सीखें। यह गाइड सेल रेंज + कॉपी करना, पिवट टेबल्स को संरक्षित रखना, शीट्स के बीच कॉलम कॉपी करना, और नई वर्कशीट + जोड़ने का कोड दिखाता है। +og_title: C# में वर्कशीट कैसे कॉपी करें – पूर्ण Aspose.Cells ट्यूटोरियल +tags: +- Aspose.Cells +- C# +- Excel Automation +title: C# में Aspose.Cells के साथ वर्कशीट कैसे कॉपी करें – पूर्ण गाइड +url: /hi/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# में Aspose.Cells के साथ Worksheet कैसे कॉपी करें – पूर्ण गाइड + +क्या आपने कभी **how to copy worksheet** को C# में बिना किसी pivot table या formula को खोए कॉपी करने के बारे में सोचा है? आप अकेले नहीं हैं—कई डेवलपर्स को तब समस्या आती है जब उन्हें सभी सुविधाओं को बरकरार रखते हुए शीट को डुप्लिकेट करना पड़ता है। इस ट्यूटोरियल में हम एक व्यावहारिक, एंड‑टू‑एंड समाधान को देखेंगे जो न केवल डेटा को कॉपी करता है बल्कि **copy worksheet pivot table** को भी संरक्षित रखता है, **copy cell range** को संभालता है, और आपको आवश्यक **add new worksheet code** दिखाता है। + +हम स्रोत वर्कबुक को लोड करने से लेकर डेस्टिनेशन फ़ाइल को सेव करने तक सब कुछ कवर करेंगे, ताकि आप शीट्स के बीच कॉलम कॉपी कर सकें, ऑब्जेक्ट्स को संरक्षित रख सकें, और अपना कोड साफ़ रख सकें। कोई अस्पष्ट रेफ़रेंस नहीं, सिर्फ एक पूर्ण, चलाने योग्य उदाहरण जिसे आप आज ही अपने प्रोजेक्ट में डाल सकते हैं। + +## इस ट्यूटोरियल में क्या कवर किया गया है + +- Aspose.Cells के साथ मौजूदा Excel फ़ाइल को लोड करना +- लक्ष्य शीट बनाने के लिए **add new worksheet code** का उपयोग करना +- **copy cell range** को परिभाषित करना जिसमें एक pivot table शामिल हो +- **CopyOptions** को सेट करना ताकि चार्ट, फ़ॉर्मूले, और pivot tables बरकरार रहें +- **copy columns between sheets** को पंक्ति‑दर‑पंक्ति सटीकता के साथ निष्पादित करना +- परिणाम को सेव करना और यह सत्यापित करना कि worksheet सही ढंग से कॉपी हुआ है + +इस गाइड के अंत तक आप आत्मविश्वास के साथ “how to copy worksheet” प्रश्न का उत्तर दे पाएँगे, चाहे आप रिपोर्ट्स को ऑटोमेट कर रहे हों या स्प्रेडशीट‑ड्रिवेन UI बना रहे हों। + +--- + +## How to Copy Worksheet – Overview + +कोड में डुबने से पहले, चलिए हाई‑लेवल फ्लो को समझते हैं। इसे एक रेसिपी की तरह सोचें: + +1. **Load** स्रोत वर्कबुक (`Source.xlsx`)। +2. **Add** एक नई worksheet जो कॉपी को रखेगी (**add new worksheet code**)। +3. **Define** वह क्षेत्र जिसे आप डुप्लिकेट करना चाहते हैं (**copy cell range**)। +4. **Configure** कॉपी विकल्प ताकि pivot table जीवित रहे (**copy worksheet pivot table**)। +5. **Copy** पंक्तियों और कॉलमों को (**copy columns between sheets**)। +6. **Save** नई वर्कबुक (`Destination.xlsx`)। + +बस—छह कदम, कोई जादू नहीं। प्रत्येक कदम को नीचे कोड स्निपेट्स और उनके पीछे की तर्क के साथ समझाया गया है। + +--- + +## Step 1 – Load the Source Workbook + +सबसे पहले: आपको एक `Workbook` इंस्टेंस चाहिए जो उस फ़ाइल की ओर इशारा करे जिसे आप डुप्लिकेट करना चाहते हैं। यह कदम आवश्यक है क्योंकि Aspose.Cells सीधे फ़ाइल सिस्टम के साथ काम करता है, Office UI के साथ नहीं। + +```csharp +using Aspose.Cells; + +// Path to the original file +string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; +string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + +// Load the workbook – this is the starting point for how to copy worksheet +Workbook workbook = new Workbook(sourcePath); +``` + +*क्यों महत्वपूर्ण है:* फ़ाइल को लोड करने से प्रत्येक शीट, सेल, और ऑब्जेक्ट की इन‑मेमोरी प्रतिनिधित्व बनती है। इसके बिना कॉपी करने के लिए कुछ नहीं रहेगा, और बाद में `add new worksheet code` करने की कोशिश विफल होगी क्योंकि स्रोत डेटा मौजूद नहीं है। + +--- + +## Step 2 – Add a New Worksheet (add new worksheet code) + +अब हमें कॉपी किए गए डेटा को पेस्ट करने के लिए एक जगह चाहिए। यहीं **add new worksheet code** काम आता है। आप शीट का नाम कुछ भी रख सकते हैं; यहाँ हम इसे `"Copy"` कहते हैं। + +```csharp +// Grab the first worksheet (the one we want to copy) +Worksheet sourceSheet = workbook.Worksheets[0]; + +// Add a fresh worksheet to receive the copy +Worksheet copySheet = workbook.Worksheets.Add("Copy"); +``` + +*प्रो टिप:* यदि आप कई शीट्स कॉपी करने की योजना बना रहे हैं, तो `Worksheets.Add` को लूप के अंदर कॉल करें और प्रत्येक शीट को एक अनोखा नाम दें। इससे नाम टकराव से बचेंगे और आपका वर्कबुक साफ़ रहेगा। + +--- + +## Step 3 – Define the Copy Cell Range + +एक **copy cell range** Aspose.Cells को ठीक‑ठीक बताता है कि कौन‑से पंक्तियों और कॉलमों को डुप्लिकेट करना है। कई वास्तविक परिदृश्यों में यह रेंज एक pivot table शामिल करती है, इसलिए हमें सटीक होना होगा। + +```csharp +// Define the area that contains the pivot table (A1:G20) +CellArea sourceRange = new CellArea +{ + StartRow = 0, // Row 1 (zero‑based) + StartColumn = 0, // Column A + EndRow = 19, // Row 20 + EndColumn = 6 // Column G +}; + +// Destination range – we start at the same top‑left corner +CellArea destinationRange = new CellArea +{ + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 +}; +``` + +*क्यों आवश्यक है:* रेंज को स्पष्ट रूप से बताकर आप पूरे शीट को कॉपी करने से बचते हैं (जो संसाधन‑खर्चीला हो सकता है) और यह सुनिश्चित करते हैं कि pivot table कॉपी किए गए क्षेत्र के भीतर रहे। यह **how to copy worksheet** का मूल है जब आपको शीट का केवल एक हिस्सा चाहिए। + +--- + +## Step 4 – Set Copy Options (preserve copy worksheet pivot table) + +Aspose.Cells एक `CopyOptions` ऑब्जेक्ट प्रदान करता है जो यह नियंत्रित करता है कि क्या पेस्ट किया जाए। pivot table, चार्ट, और फ़ॉर्मूले को रखने के लिए हम `PasteType.All` सेट करते हैं और `PasteSpecial` को एनेबल करते हैं। + +```csharp +CopyOptions copyOptions = new CopyOptions +{ + PasteType = PasteType.All, // Copy everything: values, formats, objects + PasteSpecial = true // Enable special paste to retain pivot tables +}; +``` + +*व्याख्या:* `PasteType.All` सबसे व्यापक विकल्प है, जबकि `PasteSpecial` इंजन को बताता है कि जटिल ऑब्जेक्ट्स—जैसे pivot tables—को सही ढंग से संभालना है। इस कदम को छोड़ देना एक आम गलती है; कॉपी किया गया शीट अपनी इंटरैक्टिव फीचर्स खो देगा। + +--- + +## Step 5 – Copy Rows and Columns (copy columns between sheets) + +अब असली काम: डेटा को वास्तव में मूव करना। हम **copy columns between sheets** को संभालने के लिए `CopyRows` और `CopyColumns` का उपयोग करेंगे। दोनों को चलाने से मर्ज्ड सेल्स और कॉलम चौड़ाई भी संरक्षित रहती है। + +```csharp +// Copy rows from the source to the destination sheet +sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + +// Copy columns from the source to the destination sheet +sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); +``` + +*क्या हो रहा है:* `CopyRows` डेटा को पंक्ति‑दर‑पंक्ति ले जाता है, जबकि `CopyColumns` कॉलम‑दर‑कॉलम। दोनों को चलाने से सुनिश्चित होता है कि पूरा आयताकार ब्लॉक डुप्लिकेट हो गया है, जो तब आवश्यक होता है जब आपको विभिन्न कॉलम चौड़ाई या छिपे हुए कॉलम वाले शीट्स के बीच **copy columns between sheets** करना हो। + +--- + +## Step 6 – Save the Workbook + +अंत में, बदलावों को डिस्क पर लिखें। यह कदम **how to copy worksheet** प्रक्रिया को पूरा करता है। + +```csharp +// Save the workbook with the newly copied sheet +workbook.Save(destinationPath); +``` + +*सत्यापन टिप:* `Destination.xlsx` खोलें और देखें कि `"Copy"` शीट मूल के समान दिख रही है, pivot tables कार्यशील हैं, और कॉलम चौड़ाई मेल खाती है। यदि कुछ गड़बड़ दिखे, तो `CopyOptions` सेटिंग्स को फिर से देखें। + +--- + +## Edge Cases & Common Variations + +### Copying Multiple Worksheets + +यदि आपको कई शीट्स डुप्लिकेट करनी हैं, तो ऊपर की लॉजिक को `foreach` लूप में रैप करें: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + Worksheet newWs = workbook.Worksheets.Add(ws.Name + "_Copy"); + // Re‑use sourceRange/destinationRange or calculate per sheet + // Then call CopyRows/CopyColumns as shown earlier +} +``` + +### Preserving Formulas Across Different Workbooks + +जब स्रोत और गंतव्य वर्कबुक में अलग‑अलग named ranges हों, तो `copyOptions` को `PasteType.Formulas` के साथ `All` सेट करें: + +```csharp +copyOptions.PasteType = PasteType.All | PasteType.Formulas; +``` + +### Large Ranges and Performance + +बड़े डेटा सेट (सैकड़ों हज़ार पंक्तियों) के लिए, यदि कॉलम चौड़ाई महत्वपूर्ण नहीं है तो केवल `CopyRows` का उपयोग करें और `CopyColumns` को स्किप करें। इससे कुछ सेकंड बच सकते हैं। + +--- + +## Full Working Example + +नीचे पूरा, तैयार‑चलाने‑योग्य प्रोग्राम दिया गया है जो हमने चर्चा किए सभी बिंदुओं को सम्मिलित करता है। इसे एक console app में पेस्ट करें, फ़ाइल पाथ को समायोजित करें, और **F5** दबाएँ। + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // ---------- Step 1: Load the source workbook ---------- + string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; + string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + Workbook workbook = new Workbook(sourcePath); + + // ---------- Step 2: Add a new worksheet (add new worksheet code) ---------- + Worksheet sourceSheet = workbook.Worksheets[0]; + Worksheet copySheet = workbook.Worksheets.Add("Copy"); + + // ---------- Step 3: Define the copy cell range ---------- + CellArea sourceRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + CellArea destinationRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + + // ---------- Step 4: Set copy options (preserve copy worksheet pivot table) ---------- + CopyOptions copyOptions = new CopyOptions + { + PasteType = PasteType.All, + PasteSpecial = true + }; + + // ---------- Step 5: Copy rows and columns (copy columns between sheets) ---------- + sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + + sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); + + // ---------- Step 6: Save the workbook ---------- + workbook.Save(destinationPath); + } +} +``` + +**अपेक्षित परिणाम:** `Destination.xlsx` खोलने पर एक शीट **Copy** दिखेगी जो `Source.xlsx` की पहली शीट की प्रतिलिपि होगी—जिसमें सभी pivot tables, फ़ॉर्मेटिंग, और कॉलम चौड़ाई शामिल हैं। मूल फ़ाइल अपरिवर्तित रहेगी। + +--- + +## Frequently Asked Questions + +**Q: क्या यह .xlsx फ़ाइलों के साथ काम करता है जो Excel 2019 द्वारा बनाई गई हैं?** +A: बिल्कुल। Aspose.Cells सभी आधुनिक Excel फ़ॉर्मेट्स को सपोर्ट करता है, इसलिए वही कोड `.xlsx`, `.xlsm`, और यहाँ तक कि पुराने `.xls` फ़ाइलों के लिए भी काम करता है। + +{{< /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/hindi/net/excel-custom-number-date-formatting/_index.md b/cells/hindi/net/excel-custom-number-date-formatting/_index.md index f2f91df8a9..174703b14f 100644 --- a/cells/hindi/net/excel-custom-number-date-formatting/_index.md +++ b/cells/hindi/net/excel-custom-number-date-formatting/_index.md @@ -33,9 +33,13 @@ ## एक्सेल कस्टम संख्या और दिनांक स्वरूपण ट्यूटोरियल ### [जाँचें कि क्या सेल मान किसी विशिष्ट कस्टम संख्या प्रारूप में है](./check-if-a-cell-value-is-in-a-specific-custom-number-format/) -इस चरण-दर-चरण ट्यूटोरियल के साथ .NET के लिए Aspose.Cells का उपयोग करके कस्टम संख्या प्रारूपों के विरुद्ध Excel सेल मानों की जांच करना सीखें। +इस चरण-दर-स्टेप ट्यूटोरियल के साथ .NET के लिए Aspose.Cells का उपयोग करके कस्टम संख्या प्रारूपों के विरुद्ध Excel सेल मानों की जांच करना सीखें। ### [एक्सेल शीट में डेटा आयात करते समय फ़ॉर्मूला फ़ील्ड निर्दिष्ट करें](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) इस विस्तृत ट्यूटोरियल में जानें कि .NET के लिए Aspose.Cells का उपयोग करके निर्दिष्ट सूत्र फ़ील्ड के साथ Excel शीट में डेटा कैसे आयात करें। +### [C# में विभाजक के साथ संख्या स्वरूपित करना – Aspose.Cells पूर्ण मार्गदर्शिका](./format-number-with-separator-in-c-complete-aspose-cells-guid/) +Aspose.Cells का उपयोग करके C# में संख्याओं को विभाजक के साथ स्वरूपित करने की पूरी प्रक्रिया सीखें। +### [Excel से ISO तिथि फ़ॉर्मेट – पूर्ण C# गाइड](./format-date-iso-from-excel-complete-c-guide/) +C# में Aspose.Cells का उपयोग करके Excel से ISO तिथि स्वरूपित करने की पूरी प्रक्रिया सीखें। {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hindi/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md b/cells/hindi/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..d2177ecc26 --- /dev/null +++ b/cells/hindi/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md @@ -0,0 +1,218 @@ +--- +category: general +date: 2026-03-30 +description: Aspose.Cells का उपयोग करके C# में Excel datetime मान पढ़ते समय ISO तिथि + को फ़ॉर्मेट करना सीखें और datetime Excel डेटा निकालें। +draft: false +keywords: +- format date iso +- read excel datetime +- extract datetime excel +- Aspose.Cells date parsing +- Japanese era dates +language: hi +og_description: Aspose.Cells का उपयोग करके Excel डेटा से ISO तिथि को फॉर्मेट करें। + यह गाइड दिखाता है कि Excel datetime को कैसे पढ़ें, datetime Excel मानों को निकालें, + और ISO तिथियों को आउटपुट करें। +og_title: Excel से ISO तिथि फ़ॉर्मेट – चरण‑दर‑चरण C# ट्यूटोरियल +tags: +- C# +- Excel +- DateTime +- Aspose.Cells +title: Excel से ISO तिथि फ़ॉर्मेट – पूर्ण C# गाइड +url: /hi/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel से तिथि को iso फ़ॉर्मेट करें – पूर्ण C# गाइड + +क्या आपको कभी Excel शीट से तिथियों को निकालते समय **format date iso** करने की ज़रूरत पड़ी है? शायद आप जापानी युग तिथियों से निपट रहे हैं, या आप सिर्फ API पेलोड के लिए एक साफ़ `yyyy‑MM‑dd` स्ट्रिंग चाहते हैं। इस ट्यूटोरियल में आप देखेंगे कि कैसे **read Excel datetime** सेल्स, **extract datetime Excel** वैल्यूज़ को पढ़ें, और उन्हें ISO‑8601 फ़ॉर्मेट में बदलें—बिना किसी अनुमान के। + +हम एक वास्तविक‑दुनिया उदाहरण के माध्यम से चलेंगे जो Aspose.Cells का उपयोग करता है, बताता है कि प्रत्येक पंक्ति क्यों महत्वपूर्ण है, और आपको अंतिम आउटपुट दिखाता है जिसे आप अपने प्रोजेक्ट में कॉपी‑पेस्ट कर सकते हैं। अंत तक, आप “令和3年5月1日” जैसी विचित्र युग स्ट्रिंग्स को संभाल सकेंगे और एक मानक ISO तिथि उत्पन्न कर सकेंगे, जो डेटाबेस, JSON, या जहाँ भी आपको चाहिए, के लिए तैयार है। + +## आवश्यकताएँ + +- .NET 6.0 या बाद का (कोड .NET Framework के साथ भी काम करता है) +- Aspose.Cells for .NET (फ्री ट्रायल या लाइसेंस्ड संस्करण) +- C# और Excel अवधारणाओं की बुनियादी परिचितता +- Visual Studio या कोई भी C# एडिटर जो आपको पसंद हो + +Aspose.Cells के अलावा कोई अतिरिक्त NuGet पैकेज आवश्यक नहीं है, इसलिए सेटअप काफी सरल है। + +--- + +## चरण 1: एक Workbook बनाएं और पहली Worksheet को लक्ष्य बनाएं + +सबसे पहला काम आप एक नया `Workbook` ऑब्जेक्ट बनाते हैं। यह आपको Excel फ़ाइल का इन‑मेमोरी प्रतिनिधित्व देता है, जिसे आप फिर बदल या पढ़ सकते हैं। + +```csharp +using Aspose.Cells; +using System.Globalization; + +// Step 1: Initialize a new workbook and grab the first worksheet +Workbook workbook = new Workbook(); // creates an empty .xlsx +Worksheet worksheet = workbook.Worksheets[0]; // the default sheet is "Sheet1" +``` + +*यह क्यों महत्वपूर्ण है:* +प्रोग्रामेटिकली workbook बनाने से आप परीक्षण के दौरान फिजिकल फ़ाइलों से निपटने से बचते हैं। यह यह भी सुनिश्चित करता है कि worksheet रेफ़रेंस हमेशा वैध रहे—बाद में जब आप **read Excel datetime** वैल्यूज़ पढ़ने की कोशिश करेंगे तो कोई null‑reference आश्चर्य नहीं होगा। + +--- + +## चरण 2: एक Japanese Era तिथि स्ट्रिंग को सेल में लिखें + +हमारा लक्ष्य एक गैर‑ग्रेगोरियन तिथि को पार्स करने का प्रदर्शन करना है। हम युग स्ट्रिंग को सीधे सेल **A1** में रखेंगे। + +```csharp +// Step 2: Insert a Japanese era date string into cell A1 +worksheet.Cells["A1"].PutValue("令和3年5月1日"); +``` + +*प्रो टिप:* यदि आप किसी मौजूदा workbook से डेटा खींच रहे हैं, तो आप `PutValue` कॉल को छोड़ देंगे और बस उस सेल को रेफ़र करेंगे जिसमें पहले से ही तिथि मौजूद है। मुख्य बात यह है कि सेल एक **string** रखता है जो Japanese lunisolar calendar में तिथि को दर्शाता है। + +--- + +## चरण 3: एक Culture कॉन्फ़िगर करें जो Japanese Lunisolar Calendar को समझता हो + +.NET की `CultureInfo` क्लास आपको यह निर्दिष्ट करने देती है कि तिथियों को कैसे व्याख्या किया जाए। डिफ़ॉल्ट Gregorian calendar को `JapaneseLunisolarCalendar` से बदलकर, आप parser को आवश्यक संदर्भ प्रदान करते हैं। + +```csharp +// Step 3: Set up a culture using the Japanese lunisolar calendar +CultureInfo japaneseCulture = new CultureInfo("ja-JP"); +japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); +``` + +*हम यह क्यों करते हैं:* +यदि आप डिफ़ॉल्ट culture के साथ “令和3年5月1日” को पार्स करने की कोशिश करेंगे, तो .NET एक `FormatException` फेंकेगा। lunisolar calendar को स्वैप करने से runtime को ठीक‑ठीक बताता है कि “令和3年” (Reiwa युग का 3rd वर्ष) को Gregorian वर्ष 2021 में कैसे मैप किया जाए। + +--- + +## चरण 4: कॉन्फ़िगर किए गए Culture का उपयोग करके सेल वैल्यू को `DateTime` के रूप में पार्स करें + +अब ऑपरेशन का मुख्य भाग आता है—उस युग स्ट्रिंग को एक उचित `DateTime` ऑब्जेक्ट में बदलना। Aspose.Cells एक सुविधाजनक `GetDateTime` ओवरलोड प्रदान करता है जो एक `CultureInfo` स्वीकार करता है। + +```csharp +// Step 4: Retrieve the cell value as a DateTime, respecting the Japanese culture +DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); +``` + +*अंदर क्या हो रहा है:* +`GetDateTime` कच्ची स्ट्रिंग पढ़ता है, प्रदान किए गए culture के कैलेंडर नियम लागू करता है, और एक `DateTime` लौटाता है जो Gregorian कैलेंडर में उसी क्षण को दर्शाता है। यही वह क्षण है जहाँ आप **extract datetime Excel** डेटा को .NET में काम करने योग्य रूप में प्राप्त करते हैं। + +--- + +## चरण 5: पार्स की गई तिथि को ISO 8601 फ़ॉर्मेट में आउटपुट करें + +अंत में, हम `DateTime` को ISO स्ट्रिंग—`yyyy‑MM‑dd`—के रूप में फ़ॉर्मेट करते हैं—जो APIs, डेटाबेस, और फ्रंट‑एंड फ्रेमवर्क्स द्वारा सार्वभौमिक रूप से स्वीकार किया जाता है। + +```csharp +// Step 5: Print the date in ISO format (e.g., 2021-05-01) +Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // Output: 2021-05-01 +``` + +*ISO क्यों?* +ISO 8601 अस्पष्टता को समाप्त करता है। “05/01/2021” लोकैल के आधार पर मई 1 या जनवरी 5 हो सकता है। `2021-05-01` स्पष्ट है, इसलिए हम लगभग हर इंटीग्रेशन परिदृश्य में **format date iso** करते हैं। + +--- + +## पूर्ण कार्यशील उदाहरण + +नीचे पूरा, तैयार‑चलाने योग्य प्रोग्राम दिया गया है। इसे एक कंसोल ऐप प्रोजेक्ट में कॉपी करें, Aspose.Cells रेफ़रेंस जोड़ें, और **F5** दबाएँ। + +```csharp +using Aspose.Cells; +using System; +using System.Globalization; + +class Program +{ + static void Main() + { + // 1️⃣ Create workbook and select the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("令和3年5月1日"); + + // 3️⃣ Set up Japanese lunisolar culture + CultureInfo japaneseCulture = new CultureInfo("ja-JP"); + japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); + + // 4️⃣ Parse the cell value as DateTime using the culture + DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); + + // 5️⃣ Output the date in ISO format + Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // 2021-05-01 + } +} +``` + +**अपेक्षित आउटपुट** + +``` +2021-05-01 +``` + +इसे एक बार चलाएँ, और आप कंसोल में ISO‑फ़ॉर्मेटेड तिथि प्रिंट होते देखेंगे। यही पूरी पाइपलाइन है **read Excel datetime** से **format date iso** तक। + +--- + +## सामान्य किनारे के मामलों को संभालना + +### 1. वास्तविक Excel तिथि संख्याएँ रखने वाले सेल्स + +कभी‑कभी Excel तिथियों को सीरियल नंबरों (जैसे, `44204`) के रूप में संग्रहीत करता है। ऐसे में आपको culture की आवश्यकता नहीं है; बस `GetDateTime()` को बिना पैरामीटर के कॉल करें: + +```csharp +DateTime serialDate = worksheet.Cells["B2"].GetDateTime(); // B2 holds a numeric date +Console.WriteLine(serialDate.ToString("yyyy-MM-dd")); +``` + +### 2. खाली या अमान्य सेल्स + +यदि कोई सेल खाली है या उसमें एक अपरसिबल स्ट्रिंग है, तो `GetDateTime` फेंकेगा। कॉल को `try/catch` में रैप करें या पहले `IsDateTime` जांचें: + +```csharp +if (worksheet.Cells["C3"].Type == CellValueType.IsDateTime) +{ + DateTime safeDate = worksheet.Cells["C3"].GetDateTime(); + Console.WriteLine(safeDate.ToString("yyyy-MM-dd")); +} +else +{ + Console.WriteLine("Cell C3 does not contain a valid date."); +} +``` + +### 3. विभिन्न युग फ़ॉर्मेट्स + +अन्य Japanese युग (Heisei, Showa) भी समान पैटर्न का पालन करते हैं। वही `JapaneseLunisolarCalendar` उन्हें स्वतः संभालेगा, इसलिए आपको अतिरिक्त लॉजिक की जरूरत नहीं—सिर्फ स्ट्रिंग दें। + +--- + +## प्रो टिप्स और गॉटचाज़ + +- **Performance:** बड़े स्प्रेडशीट्स को प्रोसेस करते समय, लूप के अंदर नया `CultureInfo` बनाने के बजाय एक ही `CultureInfo` इंस्टेंस को पुनः उपयोग करें। +- **Thread Safety:** `CultureInfo` ऑब्जेक्ट्स कैलेंडर सेट करने के बाद पढ़ने‑के‑लिए‑केवल (read‑only) होते हैं, इसलिए उन्हें थ्रेड्स के बीच सुरक्षित रूप से साझा किया जा सकता है। +- **Aspose.Cells Licensing:** यदि आप फ्री ट्रायल उपयोग कर रहे हैं, तो याद रखें कि ट्रायल अवधि समाप्त होने के बाद कुछ फीचर्स सीमित हो सकते हैं। यहाँ दिखाया गया डेट पार्सिंग ट्रायल और लाइसेंस्ड दोनों मोड में ठीक काम करता है। +- **Time Zones:** आपके द्वारा प्राप्त `DateTime` **unspecified** (कोई टाइमज़ोन नहीं) है। यदि आपको UTC चाहिए, तो `DateTime.SpecifyKind(parsedDate, DateTimeKind.Utc)` कॉल करें या `TimeZoneInfo` का उपयोग करके कनवर्ट करें। + +--- + +## निष्कर्ष + +हमने C# का उपयोग करके Excel वर्कबुक से **format date iso** करने के लिए आवश्यक सभी चीज़ें कवर कर ली हैं। एक कच्ची Japanese era स्ट्रिंग से शुरू करके, हमने **read Excel datetime**, उचित culture सेट किया, **extract datetime Excel** डेटा प्राप्त किया, और अंत में एक साफ़ ISO‑8601 स्ट्रिंग आउटपुट की। यह तरीका किसी भी तिथि प्रतिनिधित्व के लिए काम करता है जो Excel आपके सामने रख सकता है, चाहे वह सीरियल नंबर हो, लोकैल‑विशिष्ट स्ट्रिंग, या पारंपरिक युग फ़ॉर्मेट। + +अगले कदम? पूरी कॉलम की तिथियों पर लूप चलाने की कोशिश करें, ISO परिणामों को नई शीट में लिखें, या उन्हें सीधे वेब सर्विस के लिए JSON पेलोड में फीड करें। यदि आप अन्य कैलेंडर सिस्टम (Hebrew, Islamic) के बारे में जिज्ञासु हैं, तो Aspose.Cells और .NET की `CultureInfo` इन प्रयोगों को भी उतना ही आसान बनाते हैं। + +कोई प्रश्न या कठिन तिथि फ़ॉर्मेट है जिसे आप नहीं सुलझा पा रहे? नीचे टिप्पणी छोड़ें, और खुश कोडिंग! + +{{< /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/hindi/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md b/cells/hindi/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md new file mode 100644 index 0000000000..ad75ce3d29 --- /dev/null +++ b/cells/hindi/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md @@ -0,0 +1,251 @@ +--- +category: general +date: 2026-03-30 +description: Aspose.Cells का उपयोग करके C# में विभाजक के साथ संख्या को फ़ॉर्मेट करना + सीखें। इसमें कस्टम नंबर फ़ॉर्मेट सेट करना, हजारों विभाजक जोड़ना, दशमलव स्थानों को + फ़ॉर्मेट करना, और सेल को फ़ॉर्मेट करने का तरीका शामिल है। +draft: false +keywords: +- format number with separator +- set custom number format +- add thousands separator +- format decimal places +- how to format cell +language: hi +og_description: C# में विभाजक के साथ संख्या को फ़ॉर्मेट करें। यह गाइड दिखाता है कि + कैसे कस्टम नंबर फ़ॉर्मेट सेट करें, हजारों विभाजक जोड़ें, दशमलव स्थानों को फ़ॉर्मेट + करें, और Aspose.Cells का उपयोग करके सेल को फ़ॉर्मेट करें। +og_title: C# में विभाजक के साथ संख्या को फ़ॉर्मेट करें – Aspose.Cells ट्यूटोरियल +tags: +- C# +- Aspose.Cells +- Number Formatting +title: C# में विभाजक के साथ संख्या को फॉर्मेट करें – पूर्ण Aspose.Cells गाइड +url: /hi/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# में संख्या को विभाजक के साथ फ़ॉर्मेट करें – पूर्ण Aspose.Cells गाइड + +क्या आपको कभी **स्प्रेडशीट में संख्या को विभाजक के साथ फ़ॉर्मेट** करने की ज़रूरत पड़ी, लेकिन सही API कॉल नहीं पता चला? आप अकेले नहीं हैं—डेवलपर्स अक्सर हजारों विभाजक, दशमलव स्थान, और कस्टम पैटर्न से जूझते रहते हैं जब डेटा एक्सपोर्ट करते हैं। + +अच्छी ख़बर: Aspose.Cells इसे बहुत आसान बनाता है। इस ट्यूटोरियल में हम एक वास्तविक उदाहरण के माध्यम से **कस्टम नंबर फ़ॉर्मेट सेट करना**, **हजारों विभाजक जोड़ना**, **दशमलव स्थान फ़ॉर्मेट करना**, और **सेल को स्ट्रिंग के रूप में फ़ॉर्मेट करने** का तरीका दिखाएंगे। अंत तक आपके पास एक तैयार‑से‑चलाने वाला स्निपेट होगा जिसे आप किसी भी .NET प्रोजेक्ट में डाल सकते हैं। + +## इस गाइड में क्या कवर किया गया है + +* वह सटीक NuGet पैकेज जो आपको चाहिए और इसे कैसे इंस्टॉल करें। +* चरण‑बद्ध कोड जो एक वर्कबुक बनाता है, एक संख्यात्मक मान लिखता है, और कस्टम फ़ॉर्मेट लागू करता है। +* क्यों `ExportTableOptions.ExportAsString` फ़ॉर्मेटेड वैल्यू प्राप्त करने का पसंदीदा तरीका है। +* सामान्य ग़लतियाँ—जैसे `ExportAsString` को सक्षम करना भूल जाना या गलत फ़ॉर्मेट मास्क उपयोग करना। +* यदि आपको अलग दशमलव स्थान या अलग विभाजक शैली चाहिए तो फ़ॉर्मेट मास्क को कैसे बदलें। + +कोई बाहरी दस्तावेज़ लिंक आवश्यक नहीं है; सब कुछ यहाँ उपलब्ध है। चलिए शुरू करते हैं। + +--- + +## पूर्वापेक्षाएँ + +| आवश्यकता | कारण | +|-------------|--------| +| .NET 6.0 या बाद का संस्करण | Aspose.Cells 23.10+ .NET Standard 2.0+ को टारगेट करता है, इसलिए .NET 6 सुरक्षित और वर्तमान है। | +| Visual Studio 2022 (या कोई भी C# IDE) | डिबगिंग और पैकेज मैनेजमेंट को आसान बनाता है। | +| Aspose.Cells for .NET NuGet पैकेज | वह `Workbook`, `Worksheet`, और `ExportTableOptions` क्लासेज़ प्रदान करता है जिनका हम उपयोग करेंगे। | + +आप पैकेज को Package Manager Console के माध्यम से इंस्टॉल कर सकते हैं: + +```powershell +Install-Package Aspose.Cells +``` + +बस इतना ही—कोई अतिरिक्त DLLs नहीं, कोई COM इंटरऑप नहीं, सिर्फ एक NuGet रेफ़रेंस। + +--- + +## चरण 1: नई वर्कबुक इनिशियलाइज़ करें (सेल को फ़ॉर्मेट कैसे करें) + +सबसे पहले हम एक नई `Workbook` इंस्टेंस बनाते हैं। इसे एक खाली Excel फ़ाइल समझें जो डेटा प्राप्त करने के लिए तैयार है। + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Create a new workbook – this is where we’ll format the cell. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **यह क्यों महत्वपूर्ण है:** `Workbook` Aspose.Cells में हर ऑपरेशन का एंट्री पॉइंट है। पहले वर्कशीट (`Worksheets[0]`) को पकड़कर हमें एक साफ़ कैनवास मिलता है बिना शीट का नाम बताए। + +--- + +## चरण 2: लक्ष्य सेल में संख्यात्मक मान लिखें + +अब हम सेल **A1** में एक कच्ची संख्या डालते हैं। यह मान अभी तक फ़ॉर्मेट नहीं किया गया है—यह सिर्फ एक डबल है। + +```csharp + // Step 2: Insert a raw numeric value. + worksheet.Cells["A1"].PutValue(12345.6789); +``` + +> **प्रो टिप:** जब आप बाद में संख्यात्मक फ़ॉर्मेट लागू करने वाले हों तो `PutString` के बजाय `PutValue` उपयोग करें। यह मूल डेटा टाइप को संरक्षित रखता है, जिससे Excel‑संगत गणनाएँ संभव होती हैं। + +--- + +## चरण 3: कस्टम नंबर फ़ॉर्मेट सेट करें (हजारों विभाजक जोड़ें & दशमलव स्थान फ़ॉर्मेट करें) + +अब ट्यूटोरियल का मुख्य भाग: एक फ़ॉर्मेट मास्क परिभाषित करना जो Aspose.Cells को बताता है कि संख्या कैसे दिखे। मास्क `#,##0.00` तीन चीज़ें करता है: + +1. **`#,##0`** – डिफ़ॉल्ट रूप से कॉमा के साथ हजारों विभाजक जोड़ता है। +2. **`.00`** – ठीक दो दशमलव स्थान फोर्स करता है। + +यदि आपको अलग संख्या में दशमलव चाहिए, तो दशमलव बिंदु के बाद `0` की संख्या बदल दें। + +```csharp + // Step 3: Configure the custom number format. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, // Return the value as a formatted string. + NumberFormat = "#,##0.00" // Add thousands separator and fix to 2 decimals. + }; +``` + +> **हम `ExportAsString` क्यों उपयोग करते हैं:** डिफ़ॉल्ट रूप से, `ExportString` कच्चा मान लौटाता है। `ExportAsString = true` सेट करने से API `NumberFormat` मास्क को टेक्स्ट में बदलने से पहले लागू करता है। यह रिपोर्ट, JSON पेलोड, या UI डिस्प्ले के लिए सटीक स्ट्रिंग प्रतिनिधित्व चाहिए होने पर आवश्यक है। + +--- + +## चरण 4: फ़ॉर्मेटेड टेक्स्ट एक्सपोर्ट करें (सेल को फ़ॉर्मेट कैसे करें) + +ऑप्शन तैयार होने के बाद, हम उसी सेल पर `ExportString` कॉल करते हैं। यह मेथड हमने अभी परिभाषित किया हुआ मास्क सम्मानित करता है और एक सुंदर फ़ॉर्मेटेड स्ट्रिंग वापस देता है। + +```csharp + // Step 4: Export the formatted value. + string formattedCellText = worksheet.Cells["A1"].ExportString(exportOptions); + + // Step 5: Show the result. + Console.WriteLine(formattedCellText); // Expected output: 12,345.68 + } +} +``` + +प्रोग्राम चलाने पर **`12,345.68`** कंसोल में प्रिंट होगा—बिल्कुल वही फ़ॉर्मेट जो हमने माँगा था। + +> **एज केस:** यदि स्रोत संख्या में दो से अधिक दशमलव हैं, तो मास्क उसे राउंड कर देगा। यदि आपको राउंडिंग की बजाय ट्रंकेशन चाहिए, तो `PutValue` से पहले `Math.Truncate` से मान को प्रोसेस करना होगा। + +--- + +## चरण 5: फ़ॉर्मेट को ट्यून करना – सामान्य वैरिएशन + +### 5.1 दशमलव प्रिसीजन बदलें + +तीन दशमलव चाहिए? बस मास्क बदलें: + +```csharp +NumberFormat = "#,##0.000" // → 12,345.679 +``` + +### 5.2 अलग हजारों विभाजक उपयोग करें + +कुछ लोकेल स्पेस या पीरियड को पसंद करते हैं। आप सीधे वह कैरेक्टर एम्बेड कर सकते हैं: + +```csharp +NumberFormat = "# ##0.00" // Uses a non‑breaking space as separator. +``` + +या वर्कबुक की कल्चर सेटिंग्स पर भरोसा करें: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("de-DE"); +NumberFormat = "#.##0,00"; // German style: 12.345,68 +``` + +### 5.3 प्रीफ़िक्स या सफ़िक्स (करेंसी, प्रतिशत) + +मास्क में सीधे डॉलर साइन या प्रतिशत साइन जोड़ें: + +```csharp +NumberFormat = "$#,##0.00"; // → $12,345.68 +NumberFormat = "0.00%"; // → 1,234,568.00% +``` + +> **नोट:** मास्क केस‑सेंसिटिव है। `$` और `%` लिटरल सिंबल हैं; ये मूल संख्यात्मक मान को प्रभावित नहीं करते। + +--- + +## चरण 6: पूर्ण कार्यशील उदाहरण (कॉपी‑पेस्ट तैयार) + +नीचे पूरा प्रोग्राम दिया गया है जिसे आप नई कंसोल एप में कॉपी कर सकते हैं। इसमें सभी चरण, टिप्पणी, और अंतिम आउटपुट वेरिफिकेशन शामिल है। + +```csharp +using System; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write raw numeric value to A1. + worksheet.Cells["A1"].PutValue(12345.6789); + + // 3️⃣ Define custom format: thousands separator + two decimals. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + NumberFormat = "#,##0.00" + }; + + // 4️⃣ Export the formatted string. + string result = worksheet.Cells["A1"].ExportString(exportOptions); + + // 5️⃣ Display the outcome. + Console.WriteLine(result); // Output: 12,345.68 + + // Optional: keep console open. + Console.WriteLine("Press any key to exit..."); + Console.ReadKey(); + } +} +``` + +प्रोग्राम चलाएँ (`dotnet run` टर्मिनल से या Visual Studio में F5 दबाएँ) और आपको फ़ॉर्मेटेड संख्या ठीक उसी तरह प्रिंट होती दिखेगी जैसा दिखाया गया है। + +--- + +## अक्सर पूछे जाने वाले प्रश्न (FAQ) + +**प्रश्न: क्या यह पुराने Excel संस्करणों के साथ काम करता है?** +**उत्तर:** हाँ। फ़ॉर्मेट मास्क Excel के नेटिव नंबर‑फ़ॉर्मेट सिंटैक्स का पालन करता है, इसलिए कोई भी संस्करण जो `#,##0.00` समझता है वही स्ट्रिंग रेंडर करेगा। + +**प्रश्न: यदि मुझे कई सेल्स की रेंज को फ़ॉर्मेट करना हो तो क्या करें?** +**उत्तर:** इच्छित रेंज पर लूप चलाएँ और प्रत्येक सेल पर वही `ExportTableOptions` लागू करें, या रेंज पर `Style.Custom` प्रॉपर्टी सेट करें और फिर एक ही सेल पर `ExportString` कॉल करें। + +**प्रश्न: क्या मैं इन फ़ॉर्मेट्स को लागू करके सीधे CSV में एक्सपोर्ट कर सकता हूँ?** +**उत्तर:** बिल्कुल। सभी सेल्स पर फ़ॉर्मेट सेट करने के बाद `Workbook.Save("output.csv", SaveFormat.CSV);` उपयोग करें। Aspose.Cells CSV जनरेट करते समय सेल की `Style` का सम्मान करता है। + +--- + +## निष्कर्ष + +हमने अभी दिखाया कि कैसे **C# में Aspose.Cells का उपयोग करके संख्या को विभाजक के साथ फ़ॉर्मेट** किया जाता है, जिसमें **कस्टम नंबर फ़ॉर्मेट सेट करना**, **हजारों विभाजक जोड़ना**, **दशमलव स्थान फ़ॉर्मेट करना**, और स्ट्रिंग एक्सपोर्ट के लिए **सेल को फ़ॉर्मेट कैसे करें** शामिल है। कोड पूरी तरह से स्व-निहित है, .NET 6+ के साथ काम करता है, और किसी भी लोकेल या प्रिसीजन आवश्यकता के अनुसार अनुकूलित किया जा सकता है। + +आगे आप देख सकते हैं: + +* उसी तकनीक को डेट और टाइम पर लागू करना (`NumberFormat = "dd‑MMM‑yyyy"`). +* बैच एक्सपोर्ट को ऑटोमेट करना जहाँ प्रत्येक कॉलम को अलग मास्क चाहिए। +* फ़ॉर्मेटेड स्ट्रिंग्स को Aspose.Words के साथ PDF रिपोर्ट में इंटीग्रेट करना। + +इनका प्रयोग करें, और आप अपनी टीम में स्प्रेडशीट फ़ॉर्मेटिंग के लिए go‑to व्यक्ति बन जाएंगे। कोडिंग का आनंद लें! ![Screenshot showing formatted number with separator in Aspose.Cells](image-placeholder.png){alt="फ़ॉर्मेटेड संख्या को विभाजक के साथ 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/hindi/net/excel-data-import-export/_index.md b/cells/hindi/net/excel-data-import-export/_index.md index 6c809ec946..9774d3c60d 100644 --- a/cells/hindi/net/excel-data-import-export/_index.md +++ b/cells/hindi/net/excel-data-import-export/_index.md @@ -32,6 +32,10 @@ इस आसान ट्यूटोरियल में .NET के लिए Aspose.Cells का उपयोग करके कस्टम DB Num फ़ॉर्मेटिंग के साथ Excel में डेटा आयात करना सीखें। ### [Excel में डेटाटेबल पंक्तियाँ सम्मिलित करते समय पहली पंक्ति को नीचे खिसकाएँ](./shift-first-row-down-when-inserting-cells-datatable-rows-in-excel/) .NET के लिए Aspose.Cells का उपयोग करके Excel में पहली पंक्ति को नीचे शिफ्ट किए बिना DataTable पंक्तियाँ सम्मिलित करना सीखें। सहज स्वचालन के लिए चरण-दर-चरण मार्गदर्शिका। +### [Excel वर्कबुक बनाएं C# – JSON सम्मिलित करें और XLSX के रूप में सहेजें](./create-excel-workbook-c-insert-json-and-save-as-xlsx/) +.NET के लिए Aspose.Cells का उपयोग करके C# में JSON डेटा को Excel वर्कबुक में डालें और XLSX फ़ाइल के रूप में सहेजें। +### [Excel वर्कबुक बनाएं C# – मुद्रा स्वरूप लागू करें और DataTable आयात करें](./create-excel-workbook-c-apply-currency-format-and-import-dat/) +.NET के लिए Aspose.Cells का उपयोग करके C# में Excel वर्कबुक बनाएं, मुद्रा स्वरूप लागू करें और DataTable डेटा आयात करें। {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hindi/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md b/cells/hindi/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md new file mode 100644 index 0000000000..4ba8336cac --- /dev/null +++ b/cells/hindi/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md @@ -0,0 +1,283 @@ +--- +category: general +date: 2026-03-30 +description: C# में मुद्रा स्वरूपण के साथ Excel वर्कबुक बनाएं। सीखें कि DataTable + को कैसे आयात करें, Excel में संख्या स्वरूप कैसे जोड़ें, और मिनटों में मुद्रा स्वरूप + कॉलम लागू करें। +draft: false +keywords: +- create excel workbook c# +- format cells currency +- import datatable to excel +- add number format excel +- apply currency format column +language: hi +og_description: C# में Excel वर्कबुक बनाएं और तुरंत सेल्स को मुद्रा के रूप में फॉर्मेट + करें। यह चरण‑दर‑चरण ट्यूटोरियल दिखाता है कि कैसे DataTable को Excel में इम्पोर्ट + करें और किसी कॉलम के लिए नंबर फ़ॉर्मेट जोड़ें। +og_title: Excel वर्कबुक बनाएं C# – मुद्रा स्वरूपण गाइड +tags: +- Aspose.Cells +- C# +- Excel automation +title: C# में Excel वर्कबुक बनाएं – मुद्रा फ़ॉर्मेट लागू करें और DataTable आयात करें +url: /hi/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel वर्कबुक C# बनाएं – मुद्रा फ़ॉर्मेट लागू करें और DataTable आयात करें + +क्या आपको कभी **create Excel workbook C#** बनाना पड़ा है जो पहले से ही एक परिष्कृत रिपोर्ट जैसा दिखे? शायद आप डेटाबेस से बिक्री आंकड़े निकाल रहे हैं और चाहते हैं कि कीमत वाला कॉलम डॉलर में दिखे बिना Excel को मैन्युअल रूप से एडजस्ट किए। यह परिचित लग रहा है? आप अकेले नहीं हैं—ज्यादातर डेवलपर्स को पहली बार Excel एक्सपोर्ट ऑटोमेट करते समय यही समस्या आती है। + +> **आप क्या सीखेंगे** +> - .NET प्रोजेक्ट में Aspose.Cells को कैसे सेटअप करें +> - **import datatable to excel** को एक स्टाइल एरे के साथ कैसे आयात करें +> - किसी विशिष्ट कॉलम के लिए **add number format excel** कैसे जोड़ें +> - अधिक कॉलम या विभिन्न लोकैल्स को संभालने के टिप्स + +> **पूर्वापेक्षाएँ** +> - .NET 6+ (या .NET Framework 4.6+) स्थापित हो +> - Aspose.Cells for .NET NuGet पैकेज (`Install-Package Aspose.Cells`) +> - C# और DataTables की बुनियादी समझ + +--- + +## चरण 1: DataTable तैयार करें (import datatable to excel) + +सबसे पहले, हमें कुछ नमूना डेटा चाहिए। वास्तविक एप्लिकेशन में आप इस टेबल को DB क्वेरी से भरेंगे, लेकिन एक हार्ड‑कोडेड उदाहरण चीज़ों को सरल रखता है। + +```csharp +using System.Data; + +// Create a DataTable with two columns: Product (string) and Price (double) +DataTable dataTable = new DataTable(); +dataTable.Columns.Add("Product", typeof(string)); +dataTable.Columns.Add("Price", typeof(double)); + +// Add a few rows – you can add as many as you like +dataTable.Rows.Add("Apple", 1.23); +dataTable.Rows.Add("Banana", 0.78); +dataTable.Rows.Add("Cherry", 2.50); +``` + +*यह क्यों महत्वपूर्ण है*: `DataTable` आपके बिज़नेस डेटा और Excel फ़ाइल के बीच का पुल है। Aspose.Cells इसे सीधे आयात कर सकता है, कॉलम नाम और डेटा टाइप को बरकरार रखते हुए। + +--- + +## चरण 2: नया वर्कबुक बनाएं (create excel workbook c#) + +अब हम वास्तविक Excel फ़ाइल ऑब्जेक्ट बनाते हैं। इसे एक खाली कैनवास समझें जिस पर आप पेंट करेंगे। + +```csharp +using Aspose.Cells; + +// Instantiate a fresh workbook – this is the core of create excel workbook c# +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0). You could also add more sheets later. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **प्रो टिप:** यदि आपको कई शीट्स चाहिए, तो `workbook.Worksheets.Add()` कॉल करें और प्रत्येक को एक सार्थक नाम दें। + +--- + +## चरण 3: मुद्रा स्टाइल परिभाषित करें (format cells currency) + +Aspose.Cells आपको एक `Style` ऑब्जेक्ट बनाने देता है जो बताता है कि सेल्स कैसे दिखेंगे। मुद्रा के लिए हम बिल्ट‑इन नंबर फ़ॉर्मेट ID 164 (`"$#,##0.00"`) का उपयोग करते हैं। + +```csharp +// Create a new style object for the price column +Style priceStyle = workbook.CreateStyle(); +priceStyle.Number = 164; // Built‑in currency format "$#,##0.00" +``` + +*सिर्फ फ़ॉर्मेट स्ट्रिंग सेट न करके क्यों?* बिल्ट‑इन ID का उपयोग करने से Excel के विभिन्न संस्करणों में संगतता बनी रहती है और लोकैल‑विशिष्ट गड़बड़ियों से बचा जा सकता है। + +--- + +## चरण 4: स्टाइल एरे बनाएं (apply currency format column) + +जब आप एक `DataTable` आयात करते हैं, तो आप `Style` ऑब्जेक्ट्स की एक एरे पास कर सकते हैं—प्रति कॉलम एक। `null` का मतलब “डिफ़ॉल्ट स्टाइल उपयोग करें” है। यहाँ हम केवल दूसरे कॉलम पर `priceStyle` लागू करते हैं। + +```csharp +// Column 0 (Product) gets the default style, Column 1 (Price) gets the currency style +Style[] columnStyles = { null, priceStyle }; +``` + +यदि बाद में आप और कॉलम जोड़ते हैं, तो एरे को उसी अनुसार विस्तारित करें। `columnStyles` की लंबाई आपके आयात किए जा रहे कॉलमों की संख्या के बराबर होनी चाहिए, अन्यथा Aspose एक एक्सेप्शन फेंकेगा। + +--- + +## चरण 5: स्टाइल के साथ DataTable आयात करें (import datatable to excel) + +अब जादू होता है—हमारा `DataTable` वर्कशीट में उतरता है, और कीमत वाला कॉलम तुरंत मुद्रा के रूप में दिखता है। + +```csharp +// Parameters: +// - dataTable: source data +// - true: include column headers +// - startRow: 0 (top of sheet) +// - startColumn: 0 (first column) +// - columnStyles: style array defined above +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +*अगर आपके पास दो से अधिक कॉलम हैं तो क्या?* बस `columnStyles` को विस्तारित करें ताकि प्रत्येक कॉलम को उपयुक्त स्टाइल (या डिफ़ॉल्ट के लिए `null`) मिले। यह **add number format excel** को चयनात्मक रूप से जोड़ने का सबसे साफ़ तरीका है। + +--- + +## चरण 6: वर्कबुक सहेजें (create excel workbook c#) + +अंत में, फ़ाइल को डिस्क पर लिखें। कोई भी फ़ोल्डर चुनें जहाँ आपके पास लिखने की अनुमति हो। + +```csharp +// Save the workbook as an XLSX file +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +`StyledTable.xlsx` को Excel में खोलें और आपको यह दिखना चाहिए: + +| उत्पाद | मूल्य | +|---------|-------| +| Apple | $1.23 | +| Banana | $0.78 | +| Cherry | $2.50 | + +**Price** कॉलम पहले से ही मुद्रा के रूप में फ़ॉर्मेट किया गया है—कोई अतिरिक्त कदम नहीं चाहिए। + +--- + +## किनारे के मामलों और विविधताएँ + +### अधिक कॉलम, विभिन्न फ़ॉर्मेट + +यदि आपको कई कॉलम (जैसे Cost, Tax, Total) के लिए **format cells currency** चाहिए, तो प्रत्येक के लिए अलग `Style` बनाएं और `columnStyles` को उसी अनुसार भरें: + +```csharp +Style costStyle = workbook.CreateStyle(); +costStyle.Number = 164; // currency + +Style taxStyle = workbook.CreateStyle(); +taxStyle.Number = 164; + +// Assuming columns: Product, Cost, Tax, Total +Style[] styles = { null, costStyle, taxStyle, priceStyle }; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, styles); +``` + +### लोकैल‑विशिष्ट मुद्रा + +Euro या British Pound के लिए अलग बिल्ट‑इन IDs (जैसे `€#,##0.00` के लिए 165) उपयोग करें। वैकल्पिक रूप से, एक कस्टम फ़ॉर्मेट स्ट्रिंग सेट करें: + +```csharp +priceStyle.Custom = "€#,##0.00"; +``` + +### बड़े डेटा सेट + +Aspose.Cells लाखों पंक्तियों को संभाल सकता है, लेकिन स्टाइल ऑब्जेक्ट्स के साथ मेमोरी उपयोग बढ़ता है। सभी मुद्रा कॉलमों के लिए एक ही `Style` इंस्टेंस को पुन: उपयोग करें ताकि फ़ुटप्रिंट कम रहे। + +### स्टाइल्स की कमी + +यदि `columnStyles` कॉलमों की संख्या से छोटी है, तो Aspose शेष कॉलमों पर डिफ़ॉल्ट स्टाइल लागू करेगा। यह तब उपयोगी है जब आपको केवल कुछ कॉलमों की परवाह है। + +--- + +## पूर्ण कार्यशील उदाहरण (सभी चरण एक साथ) + +नीचे वह पूरा प्रोग्राम है जिसे आप कॉन्सोल ऐप में कॉपी‑पेस्ट कर सकते हैं। इसमें हमने चर्चा किए सभी हिस्से शामिल हैं, साथ ही कुछ उपयोगी टिप्पणी भी। + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // Step 1: Build sample DataTable (import datatable to excel) + // ------------------------------------------------- + DataTable dataTable = new DataTable(); + dataTable.Columns.Add("Product", typeof(string)); + dataTable.Columns.Add("Price", typeof(double)); + dataTable.Rows.Add("Apple", 1.23); + dataTable.Rows.Add("Banana", 0.78); + dataTable.Rows.Add("Cherry", 2.50); + // You can add as many rows as you like here. + + // ------------------------------------------------- + // Step 2: Create a new workbook (create excel workbook c#) + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // Step 3: Define a currency style (format cells currency) + // ------------------------------------------------- + Style priceStyle = workbook.CreateStyle(); + priceStyle.Number = 164; // "$#,##0.00" – built‑in currency format + + // ------------------------------------------------- + // Step 4: Build the style array (apply currency format column) + // ------------------------------------------------- + // First column gets default style (null), second column uses priceStyle. + Style[] columnStyles = { null, priceStyle }; + + // ------------------------------------------------- + // Step 5: Import the DataTable with the style array + // ------------------------------------------------- + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // ------------------------------------------------- + // Step 6: Save the workbook to disk + // ------------------------------------------------- + string outputPath = @"YOUR_DIRECTORY\StyledTable.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } +} +``` + +**अपेक्षित परिणाम:** `StyledTable.xlsx` खोलने पर `Price` कॉलम में डॉलर साइन और दो दशमलव स्थान दिखेंगे, बिल्कुल वही जैसा कि `format cells currency` निर्देश ने माँगा था। + +--- + +## अक्सर पूछे जाने वाले प्रश्न + +**प्रश्न: क्या यह .NET Core के साथ काम करता है?** +उत्तर: बिल्कुल। Aspose.Cells .NET‑standard संगत है, इसलिए आप .NET 5, .NET 6 या बाद के संस्करणों को बिना बदलाव के टार्गेट कर सकते हैं। + +**प्रश्न: यदि मेरे DataTable में 10 कॉलम हैं लेकिन मैं केवल कॉलम 5 को फ़ॉर्मेट करना चाहता हूँ तो?** +उत्तर: लंबाई 10 की `Style[]` बनाएं, इंडेक्स 0‑4 और 6‑9 को `null` रखें, और कस्टम स्टाइल को इंडेक्स 4 (ज़ीरो‑बेस्ड) पर रखें। Aspose प्रत्येक एंट्री का सम्मान करेगा। + +**प्रश्न: क्या मैं हेडर रो को छिपा सकता हूँ?** +उत्तर: आयात के बाद `worksheet.Cells.Rows[0].Hidden = true;` सेट करें या `ImportDataTable` में `includeColumnNames` पैरामीटर को `false` पास करें। + +--- + +## निष्कर्ष + +हमने अभी **create Excel workbook C#**, एक `DataTable` आयात किया, और Aspose.Cells का उपयोग करके **currency format column** लागू किया। मुख्य चरण—डेटा तैयार करना, स्टाइल परिभाषित करना, स्टाइल एरे बनाना, `ImportDataTable` के साथ आयात करना, और सहेजना—ज्यादातर Excel‑ऑटोमेशन कार्यों की रीढ़ बनाते हैं। + +अब आप आगे खोज सकते हैं: + +- तिथियों या प्रतिशतों के लिए **add number format excel** +- एक ही फ़ाइल में कई शीट्स एक्सपोर्ट करना +- लोकैल‑विशिष्ट प्रतीकों के साथ **format cells currency** +- समान डेटा पर आधारित चार्ट निर्माण को ऑटोमेट करना + +इनका प्रयोग करें, और आप अपनी टीम में Excel रिपोर्टिंग के लिए go‑to व्यक्ति बन जाएंगे। कोई ट्विस्ट शेयर करना चाहते हैं? नीचे कमेंट करें—हैप्पी कोडिंग! + +![create excel workbook c# screenshot](image.png "create excel workbook c#") + +{{< /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/hindi/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md b/cells/hindi/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md new file mode 100644 index 0000000000..d53ed55010 --- /dev/null +++ b/cells/hindi/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md @@ -0,0 +1,234 @@ +--- +category: general +date: 2026-03-30 +description: JSON डेटा डालकर और वर्कबुक को XLSX के रूप में सहेजकर C# में जल्दी से + Excel वर्कबुक बनाएं। जानिए कैसे JSON से Excel जनरेट करें, JSON को Excel में लिखें, + और Excel में JSON डालें। +draft: false +keywords: +- create excel workbook c# +- save workbook as xlsx +- generate excel from json +- write json to excel +- insert json into excel +language: hi +og_description: C# में JSON डेटा डालकर शीघ्रता से Excel वर्कबुक बनाएं और वर्कबुक को + XLSX के रूप में सहेजें। JSON से Excel बनाने के लिए इस चरण‑दर‑चरण गाइड का पालन करें। +og_title: C# में Excel वर्कबुक बनाएं – JSON डालें और XLSX के रूप में सहेजें +tags: +- Aspose.Cells +- C# +- Excel automation +title: C# में Excel वर्कबुक बनाएं – JSON डालें और XLSX के रूप में सहेजें +url: /hi/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel वर्कबुक C# बनाएं – JSON डालें और XLSX के रूप में सहेजें + +क्या आपको कभी **create Excel workbook C#** करने और कुछ JSON सीधे एक सेल में डालने की जरूरत पड़ी है? आप अकेले नहीं हैं—डेवलपर्स अक्सर वही समस्या का सामना करते हैं जब उनके पास API पेलोड या कॉन्फ़िगरेशन फ़ाइलें होती हैं जिन्हें रिपोर्टिंग या शेयरिंग के लिए स्प्रेडशीट में लाना पड़ता है। + +अच्छी खबर यह है कि Aspose.Cells के साथ आप इसे कुछ ही लाइनों में कर सकते हैं, **save workbook as XLSX**, और पूरी प्रक्रिया को टाइप‑सेफ़ रख सकते हैं। इस ट्यूटोरियल में हम **generate Excel from JSON**, **write JSON to Excel**, और आपको **insert JSON into Excel** करने के सटीक चरण दिखाएंगे, बिना किसी जटिल स्ट्रिंग कंकैटनेशन के। + +## इस गाइड में क्या कवर किया गया है + +हम निम्नलिखित पर चलेंगे: + +1. एक नया वर्कबुक सेट अप करना। +2. एक Smart Marker जोड़ना जो JSON की अपेक्षा करता है। +3. मार्कर को JSON एरे फीड करना। +4. `SmartMarkerOptions` को इस तरह ट्यून करना कि JSON एक ही सेल में रहे। +5. फ़ाइल को XLSX वर्कबुक के रूप में सहेजना। + +अंत तक आपके पास एक तैयार‑to‑use `JsonSingleCell.xlsx` फ़ाइल और एक ठोस पैटर्न होगा जिसे आप किसी भी JSON‑to‑Excel परिदृश्य में पुन: उपयोग कर सकते हैं। कोई बाहरी सर्विस नहीं, सिर्फ साधारण C# और Aspose.Cells लाइब्रेरी। + +**Prerequisites** + +- .NET 6+ (या .NET Framework 4.6+)। +- Visual Studio 2022 या कोई भी C#‑compatible IDE। +- NuGet पैकेज `Aspose.Cells` (फ़्री ट्रायल या लाइसेंस्ड संस्करण)। + +यदि आपके पास ये सब है, तो चलिए शुरू करते हैं—कोई अतिरिक्त सेटअप आवश्यक नहीं। + +--- + +## चरण 1: C# में नया वर्कबुक बनाएं + +पहली चीज़ जो आपको चाहिए वह एक खाली वर्कबुक ऑब्जेक्ट है। इसे एक नई Excel फ़ाइल की तरह सोचें जो डेटा का इंतज़ार कर रही है। + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is your empty Excel file +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; +``` + +**यह क्यों महत्वपूर्ण है:** +`Workbook` सभी Excel ऑपरेशन्स का एंट्री पॉइंट है। इसे पहले बनाकर आप सुनिश्चित करते हैं कि बाद में आने वाले **save workbook as xlsx** कॉल के पास सीरियलाइज़ करने के लिए एक ठोस ऑब्जेक्ट हो। + +> **Pro tip:** यदि आप कई शीट्स के साथ काम करने की योजना बना रहे हैं, तो आप उन्हें अभी `workbook.Worksheets.Add()` से जोड़ सकते हैं। + +## चरण 2: JSON की अपेक्षा करने वाला Smart Marker रखें + +Smart Markers वह प्लेसहोल्डर होते हैं जिन्हें Aspose.Cells रनटाइम पर बदलता है। यहाँ हम इसे एक JSON स्ट्रिंग `data` की तलाश में बताते हैं। + +```csharp +// Put a Smart Marker in cell A1 – {{data:json}} tells Aspose to expect JSON +worksheet.Cells["A1"].PutValue("{{data:json}}"); +``` + +**यह क्यों महत्वपूर्ण है:** +`:json` सफ़िक्स इंजन को बताता है कि आने वाला मान JSON है, साधारण टेक्स्ट नहीं। यही वह कुंजी है जो **write json to excel** को मैनुअल पार्सिंग के बिना संभव बनाती है। + +## चरण 3: JSON एरे परिभाषित करें + +अब हम वह JSON तैयार करते हैं जिसे हम डालना चाहते हैं। प्रदर्शन के लिए हम एक सरल लोगों की सूची का उपयोग करेंगे। + +```csharp +// Sample JSON array – could come from an API, file, or DB +string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; +``` + +**Edge case:** +यदि आपके JSON में डबल कोट्स हैं, तो सुनिश्चित करें कि वे एस्केप किए गए हैं (जैसा दिखाया गया है) या कंपाइल एरर से बचने के लिए एक verbatim स्ट्रिंग (`@"..."`) का उपयोग करें। + +## चरण 4: Smart Marker Options कॉन्फ़िगर करें – एरे को एक ही सेल में रखें + +डिफ़ॉल्ट रूप से, Aspose एरे को पंक्तियों में फैलाने की कोशिश करेगा। हम चाहते हैं कि पूरा JSON स्ट्रिंग एक ही सेल में रहे, जो **insert json into excel** परिदृश्यों के लिए आदर्श है जहाँ उपभोक्ता बाद में JSON को पार्स करेगा। + +```csharp +SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions +{ + // Treat the whole array as a single cell value + ArrayAsSingle = true +}; +``` + +**यह क्यों महत्वपूर्ण है:** +`ArrayAsSingle = true` पंक्ति विस्तार को रोकता है, जिससे आपको एक साफ़, single‑cell JSON ब्लॉब मिलता है। यह तब आवश्यक है जब स्प्रेडशीट एक रिपोर्ट के बजाय ट्रांसपोर्ट फ़ॉर्मेट हो। + +## चरण 5: JSON डेटा के साथ Smart Marker प्रोसेस करें + +अब हम JSON को मार्कर से बाइंड करते हैं और Aspose को भारी काम करने देते हैं। + +```csharp +// Process the marker – the anonymous object maps "data" to our JSON string +worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); +``` + +**What happens under the hood:** +Aspose प्लेसहोल्डर `{{data:json}}` का मूल्यांकन करता है, `jsonData` स्ट्रिंग को सीरियलाइज़ करता है, और इसे सेल A1 में लिखता है, हमारे सेट किए गए विकल्पों का सम्मान करते हुए। + +## चरण 6: वर्कबुक को XLSX फ़ाइल के रूप में सहेजें + +अंत में, हम वर्कबुक को डिस्क पर लिखते हैं। यही वह जगह है जहाँ **save workbook as xlsx** काम आता है। + +```csharp +// Save the workbook – the extension determines the format (XLSX here) +workbook.Save("JsonSingleCell.xlsx"); +``` + +**Result:** +`JsonSingleCell.xlsx` को Excel में खोलें, और आप देखेंगे कि JSON एरे ठीक उसी तरह है जैसा हमने परिभाषित किया था, साफ़ तौर पर सेल A1 में बैठा हुआ। + +## पूर्ण, रन करने योग्य उदाहरण + +नीचे पूरा प्रोग्राम है जिसे आप कॉपी‑पेस्ट करके एक कंसोल ऐप में चला सकते हैं। इसमें ऊपर बताए सभी चरण शामिल हैं और बॉक्स से बाहर चलता है (मान लेते हैं कि Aspose.Cells NuGet पैकेज इंस्टॉल है)। + +```csharp +using System; +using Aspose.Cells; + +namespace JsonToExcelDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add a Smart Marker that expects JSON + worksheet.Cells["A1"].PutValue("{{data:json}}"); + + // 3️⃣ Define the JSON array + string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; + + // 4️⃣ Configure options – keep array as a single cell value + SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions + { + ArrayAsSingle = true + }; + + // 5️⃣ Process the marker with the JSON payload + worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); + + // 6️⃣ Save the workbook as XLSX + workbook.Save("JsonSingleCell.xlsx"); + + Console.WriteLine("Excel file created successfully! Check JsonSingleCell.xlsx."); + } + } +} +``` + +**Expected output in Excel** + +| A | +|---| +| `[{"Name":"John","Age":30},{"Name":"Jane","Age":28}]` | + +अब वह एकल सेल एक पूरी वैध JSON एरे रखता है, जो डाउनस्ट्रीम प्रोसेसिंग के लिए तैयार है। + +## सामान्य प्रश्न और किनारे के मामलों + +### यदि मुझे JSON को पंक्तियों में फैलाना हो तो क्या करें? + +`ArrayAsSingle = false` सेट करें (डिफ़ॉल्ट)। Aspose प्रत्येक एरे एलिमेंट के लिए एक पंक्ति बनाएगा, ऑब्जेक्ट प्रॉपर्टीज़ को कॉलम्स में मैप करेगा। यह तब उपयोगी है जब आप कच्चे JSON स्ट्रिंग के बजाय टेबलर व्यू चाहते हैं। + +### क्या मैं हार्ड‑कोडेड स्ट्रिंग की बजाय JSON फ़ाइल का उपयोग कर सकता हूँ? + +बिल्कुल। फ़ाइल को स्ट्रिंग में पढ़ें: + +```csharp +string jsonData = File.ReadAllText("people.json"); +``` + +फिर `jsonData` को उसी `Process` कॉल में पास करें। पाइपलाइन का बाकी हिस्सा अपरिवर्तित रहता है। + +### क्या यह बड़े JSON पेलोड्स के साथ काम करता है? + +हां, लेकिन मेमोरी उपयोग पर नजर रखें। बड़े एरे के लिए डेटा को स्ट्रीम करने या सीधे पंक्तियों में लिखने (`ArrayAsSingle = false`) पर विचार करें, ताकि एक ही विशाल सेल से बचा जा सके जिसे Excel संभालने में कठिनाई महसूस कर सकता है। + +### क्या जेनरेट किया गया XLSX पुराने Excel संस्करणों के साथ संगत है? + +`.xlsx` फ़ॉर्मेट Office Open XML पर आधारित है और Excel 2007 और उसके बाद के संस्करणों में काम करता है। यदि आपको लेगेसी `.xls` फ़ॉर्मेट चाहिए, तो सेव कॉल को इस तरह बदलें: + +```csharp +workbook.Save("JsonSingleCell.xls", SaveFormat.Excel97To2003); +``` + +## JSON और Excel के साथ काम करने के प्रो टिप्स + +- **Validate JSON first** – `System.Text.Json.JsonDocument.Parse(jsonData)` का उपयोग करके प्रारंभिक चरण में ही खराब इनपुट पकड़ें। +- **Escape special characters** – यदि आपके JSON में लाइन ब्रेक हैं, तो वे सेल में लिटरल `\n` के रूप में दिखेंगे; आप उन्हें प्रोसेसिंग से पहले `Environment.NewLine` से बदल सकते हैं। +- **Reuse Smart Markers** – आप एक ही शीट में कई मार्कर रख सकते हैं, प्रत्येक अलग JSON प्रॉपर्टी की ओर इशारा करता हुआ। +- **Combine with formulas** – एक बार JSON सेल में आ जाए, तो आप Excel के `FILTERXML` (नए संस्करणों में) का उपयोग करके उसे ऑन‑द‑फ्लाई पार्स कर सकते हैं। + +## निष्कर्ष + +आप अब जानते हैं कि **create excel workbook c#** कैसे करें, JSON पेलोड एम्बेड करें, और Aspose.Cells का उपयोग करके **save workbook as xlsx** कैसे करें। यह पैटर्न आपको **generate excel from json**, **write json to excel**, और **insert json into excel** केवल कुछ लाइनों के कोड से करने देता है, जिससे सर्विसेज और एनालिस्ट्स के बीच डेटा एक्सचेंज सहज हो जाता है। + +अगले कदम के लिए तैयार हैं? JSON एरे को एक उचित टेबल में बदलने की कोशिश करें (`ArrayAsSingle = false` सेट करें) या इन्सर्शन के बाद शीट को स्टाइल करने का अन्वेषण करें। वही तरीका CSV, XML, या कस्टम ऑब्जेक्ट्स के लिए भी काम करता है—बस Smart Marker टाइप को समायोजित करें। + +कोडिंग का आनंद लें, और प्रयोग करने में संकोच न करें! यदि आपको कोई समस्या आती है, तो नीचे कमेंट करें या Smart Markers पर गहरी जानकारी के लिए Aspose की आधिकारिक डॉक्यूमेंटेशन देखें। + +{{< /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/hindi/net/excel-workbook/_index.md b/cells/hindi/net/excel-workbook/_index.md index f69dc4a8c5..46fb1e1eec 100644 --- a/cells/hindi/net/excel-workbook/_index.md +++ b/cells/hindi/net/excel-workbook/_index.md @@ -86,6 +86,7 @@ | [कार्यपुस्तिका प्रिंट पूर्वावलोकन](./workbook-print-preview/) | .NET के लिए Aspose.Cells का उपयोग करके Excel फ़ाइलों के लिए प्रिंट पूर्वावलोकन बनाना सीखें। विस्तृत, आसान-से-अनुसरण ट्यूटोरियल में कोडिंग चरण सीखें। | | [सामग्री प्रकार गुणों के साथ कार्य करना](./working-with-content-type-properties/) | जानें कि .NET के लिए Aspose.Cells का उपयोग कैसे करें ताकि बेहतर Excel मेटाडेटा प्रबंधन के लिए सामग्री प्रकार गुणों के साथ काम किया जा सके। इस सरल चरण-दर-चरण मार्गदर्शिका का पालन करें। | | [Xades हस्ताक्षर समर्थन](./xades-signature-support/) | इस चरण-दर-चरण मार्गदर्शिका के साथ .NET के लिए Aspose.Cells का उपयोग करके Excel फ़ाइलों में Xades हस्ताक्षर जोड़ना सीखें। अपने दस्तावेज़ सुरक्षित करें। | +| [C# में मास्टर शीट बनाएं – Aspose.Cells पूर्ण गाइड](./create-master-sheet-in-c-complete-aspose-cells-guide/) | .NET के लिए Aspose.Cells का उपयोग करके C# में मास्टर शीट बनाने की पूरी प्रक्रिया सीखें। | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hindi/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md b/cells/hindi/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md new file mode 100644 index 0000000000..7732799cd7 --- /dev/null +++ b/cells/hindi/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md @@ -0,0 +1,228 @@ +--- +category: general +date: 2026-03-30 +description: Aspose.Cells का उपयोग करके C# में मास्टर शीट बनाएं। सीखें कि C# में Excel + वर्कबुक कैसे बनाएं, डुप्लिकेट शीट नामों की अनुमति दें और कुछ चरणों में वर्कबुक को + XLSX के रूप में सहेजें। +draft: false +keywords: +- create master sheet +- create excel workbook c# +- save workbook as xlsx +- allow duplicate sheet names +language: hi +og_description: Aspose.Cells का उपयोग करके C# में मास्टर शीट बनाएं। यह गाइड दिखाता + है कि C# में Excel वर्कबुक कैसे बनाएं, डुप्लिकेट शीट नामों की अनुमति दें, और वर्कबुक + को XLSX के रूप में सहेजें। +og_title: C# में मास्टर शीट बनाएं – पूर्ण Aspose.Cells गाइड +tags: +- Aspose.Cells +- C# +- Excel automation +title: C# में मास्टर शीट बनाएं – Aspose.Cells का पूर्ण गाइड +url: /hi/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# में मास्टर शीट बनाएं – पूर्ण Aspose.Cells गाइड + +क्या आपको कभी Excel फ़ाइल में **create master sheet** बनाने की ज़रूरत पड़ी है लेकिन यह नहीं पता था कि समान बेस नाम वाली कई detail शीट्स को कैसे संभालें? आप अकेले नहीं हैं। कई रिपोर्टिंग परिदृश्यों में आपके पास दर्जनों detail टैब हो सकते हैं, और अधिकांश लाइब्रेरीज़ का डिफ़ॉल्ट व्यवहार यह है कि जब दो शीट्स का नाम एक जैसा हो जाता है तो एक अपवाद (exception) फेंकती हैं। + +ख़ुशी की बात है, Aspose.Cells **create master sheet** को बहुत आसान बनाता है, इंजन को **allow duplicate sheet names** के लिए कॉन्फ़िगर करता है, और फिर **save workbook as XLSX**—सभी साफ़ C# कोड से। इस ट्यूटोरियल में हम एक पूरी तरह चलाने योग्य उदाहरण के माध्यम से जाएंगे, प्रत्येक पंक्ति का महत्व समझाएंगे, और आपको कुछ उपयोगी टिप्स देंगे जिन्हें आप सीधे अपने प्रोजेक्ट्स में कॉपी कर सकते हैं। + +> **आप क्या सीखेंगे** +> * कैसे Aspose.Cells का उपयोग करके **create Excel workbook C#**‑स्टाइल बनाएं। +> * कैसे एक smart‑marker एम्बेड करें जो प्रत्येक डेटा पंक्ति के लिए एक detail शीट बनाता है। +> * कैसे `DetailSheetNewName = DuplicateAllowed` सेट करें ताकि लाइब्रेरी स्वचालित रूप से एक संख्यात्मक उपसर्ग जोड़ दे। +> * कैसे डिस्क पर कोई अतिरिक्त कदम बिना **save workbook as XLSX** करें। + +कोई बाहरी दस्तावेज़ आवश्यक नहीं—आपको जो चाहिए वह सब यहाँ है। + +--- + +## आवश्यकताएँ + +शुरू करने से पहले, सुनिश्चित करें कि आपके पास है: + +| Requirement | Why it matters | +|-------------|----------------| +| .NET 6.0 or later (or .NET Framework 4.7+) | Aspose.Cells 23.x+ इन रनटाइम्स को लक्षित करता है। | +| Visual Studio 2022 (or any C# IDE) | आसान प्रोजेक्ट निर्माण और डिबगिंग के लिए। | +| Aspose.Cells for .NET NuGet package (`Install-Package Aspose.Cells`) | वह लाइब्रेरी जो सभी smart‑marker जादू को संचालित करती है। | +| Basic C# knowledge | आप सिंटैक्स को बिना किसी crash‑course के समझ पाएँगे। | + +यदि आपके पास इनमें से कोई भी नहीं है, तो अभी जोड़ दें—आधे तैयार वातावरण के साथ आगे बढ़ने का कोई मतलब नहीं है। + +## चरण 1: Aspose.Cells के साथ मास्टर शीट बनाएं + +पहली बात हम करते हैं **create Excel workbook C#** शैली में `Workbook` ऑब्जेक्ट बनाकर। यह ऑब्जेक्ट पहले से ही एक डिफ़ॉल्ट वर्कशीट रखता है, जिसे हम “Master” नाम देंगे और सभी detail पेजों के लिए टेम्पलेट के रूप में उपयोग करेंगे। + +```csharp +using Aspose.Cells; + +// Step 1: Initialise a new workbook – this automatically gives us one sheet +Workbook workbook = new Workbook(); + +// Grab the first (and only) worksheet that comes with a fresh workbook +Worksheet masterSheet = workbook.Worksheets[0]; + +// Give it a meaningful name – this will be our master sheet +masterSheet.Name = "Master"; +``` + +*शीट का नाम क्यों बदलें?* +डिफ़ॉल्ट नाम जैसे “Sheet1” इरादा नहीं दर्शाता, और बाद में जब आप फ़ाइल को स्कैन करेंगे तो आप चाहते हैं कि मास्टर टैब तुरंत पहचान में आए। नामकरण से बाद में अधिक शीट जोड़ते समय आकस्मिक टकराव भी रोकता है। + +## चरण 2: वह smart‑marker तैयार करें जो detail शीट्स बनाता है + +Smart‑markers प्लेसहोल्डर होते हैं जिन्हें Aspose.Cells रनटाइम पर डेटा से बदलता है। सेल **A1** में `{{#detail:DataSheetName}}` रखकर, हम इंजन को बताते हैं: “डेटा स्रोत में प्रत्येक रिकॉर्ड के लिए, एक नई शीट बनाएं जिसका नाम `DataSheetName` फ़ील्ड से आएगा।” + +```csharp +// Step 2: Insert a smart‑marker into cell A1. +// The marker #detail tells Aspose.Cells to generate a new sheet per data row. +masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); +``` + +मार्कर को एक छोटा निर्देश कार्ड मानें जो वर्कशीट पर चिपका हो। जब प्रोसेसर चलता है, वह कार्ड पढ़ता है, डेटा स्रोत से उपयुक्त मान निकालता है, और फिर मास्टर शीट को नई टैब में क्लोन करता है। + +## चरण 3: डेटा स्रोत बनाएं – इरादे से डुप्लिकेट शीट नाम + +वास्तविक जीवन में आप इसे डेटाबेस से ले सकते हैं, लेकिन डेमो के लिए हम अनाम ऑब्जेक्ट्स की इन‑मेमोरी एरे का उपयोग करेंगे। ध्यान दें दोनों आइटम एक ही बेस नाम `"Detail"` का उपयोग करते हैं; यही वह परिदृश्य है जहाँ **allow duplicate sheet names** महत्वपूर्ण बन जाता है। + +```csharp +// Step 3: Create a data source with two items that share the same base sheet name. +var dataSource = new[] +{ + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } +}; +``` + +यदि आप इसे बिना किसी विशेष विकल्प के आज़माते हैं, तो Aspose.Cells दूसरी इटरेशन पर एक exception उठाएगा क्योंकि “Detail” नाम की शीट पहले से मौजूद है। इसलिए अगला चरण महत्वपूर्ण है। + +## चरण 4: डुप्लिकेट शीट नाम सक्षम करें + +Aspose.Cells `SmartMarkerOptions.DetailSheetNewName` को एक्सपोज़ करता है। इसे `DetailSheetNewName.DuplicateAllowed` पर सेट करने से इंजन को हर बार नाम टकराव होने पर स्वचालित रूप से एक संख्यात्मक उपसर्ग (जैसे, “Detail_1”) जोड़ने को कहा जाता है। + +```csharp +// Step 4: Configure SmartMarker options to permit duplicate sheet names. +var smartMarkerOptions = new SmartMarkerOptions +{ + // This makes the library rename clashes to "Detail_1", "Detail_2", etc. + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed +}; +``` + +*हर पंक्ति को मैन्युअली एक अनूठा नाम क्यों नहीं देते?* +क्योंकि अक्सर स्रोत डेटा अनन्यता की गारंटी नहीं देता, विशेषकर जब उपयोगकर्ता मुक्त‑रूप टेक्स्ट दर्ज करते हैं। लाइब्रेरी को उपसर्ग संभालने देना कई बग्स को दूर कर देता है। + +## चरण 5: smart‑markers को प्रोसेस करें और detail शीट्स बनाएं + +अब हम `SmartMarkers.Process` को कॉल करते हैं, जिसमें डेटा स्रोत और हमने अभी कॉन्फ़िगर किए विकल्प दोनों पास करते हैं। यह मेथड प्रत्येक आइटम पर चलता है, मास्टर शीट को क्लोन करता है, और क्लोन को `DataSheetName` फ़ील्ड के अनुसार (आवश्यकता पड़ने पर उपसर्ग के साथ) नाम देता है। + +```csharp +// Step 5: Run the smart‑marker processor – this creates the detail sheets. +masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); +``` + +इस पंक्ति के निष्पादन के बाद आपके वर्कबुक में तीन टैब होंगे: + +1. **Master** – मूल टेम्पलेट। +2. **Detail** – पहली उत्पन्न शीट (कोई उपसर्ग नहीं)। +3. **Detail_1** – दूसरी उत्पन्न शीट (उपसर्ग स्वचालित रूप से जोड़ा गया)। + +आप इसे Excel में फ़ाइल खोलकर सत्यापित कर सकते हैं; आपको दो detail शीट्स साइड‑बाय‑साइड दिखेंगी। + +## चरण 6: वर्कबुक को XLSX फ़ाइल के रूप में सहेजें + +अंत में, हम फ़ाइल को डिस्क पर सहेजते हैं। `Save` मेथड स्वचालित रूप से XLSX फ़ॉर्मेट चुन लेता है जब आप इसे `.xlsx` एक्सटेंशन देते हैं। + +```csharp +// Step 6: Persist the workbook – this is the moment we finally “save workbook as XLSX”. +string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; +workbook.Save(outputPath); +``` + +**Pro tip:** यदि आपको फ़ाइल को सीधे वेब रिस्पॉन्स में स्ट्रीम करना है (जैसे, ASP.NET Core), तो फ़ाइल पाथ के बजाय `workbook.Save(stream, SaveFormat.Xlsx)` का उपयोग करें। + +## पूर्ण कार्यशील उदाहरण + +नीचे पूर्ण, चलाने योग्य प्रोग्राम दिया गया है। इसे कॉपी‑पेस्ट करके एक कंसोल ऐप में रखें, F5 दबाएँ, और उत्पन्न फ़ाइल खोलकर परिणाम देखें। + +```csharp +using System; +using Aspose.Cells; + +namespace MasterSheetDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook and rename the default sheet to "Master" + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert a smart‑marker that will generate a detail sheet per data row + masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); + + // 3️⃣ Prepare a data source where two rows share the same sheet name + var dataSource = new[] + { + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } + }; + + // 4️⃣ Allow duplicate sheet names – the library will add "_1", "_2", … + var smartMarkerOptions = new SmartMarkerOptions + { + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed + }; + + // 5️⃣ Process the smart‑markers; this creates the detail sheets + masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); + + // 6️⃣ Save the workbook as an XLSX file + string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Expected outcome:** `DuplicateDetailSheets.xlsx` खोलें और आपको तीन वर्कशीट्स दिखेंगी—`Master`, `Detail`, और `Detail_1`। प्रत्येक detail शीट मास्टर की सटीक कॉपी है, जिसे आप बाद में पंक्ति‑विशिष्ट डेटा से भर सकते हैं। + +## सामान्य प्रश्न एवं किनारे के मामले + +### यदि मुझे दो से अधिक डुप्लिकेट शीट्स चाहिए तो क्या करें? + +कोई समस्या नहीं। वही `DuplicateAllowed` सेटिंग क्रमिक संख्याएँ (`Detail_2`, `Detail_3`, …) जोड़ती रहेगी जब तक प्रत्येक पंक्ति की अपनी टैब न हो जाए। + +### क्या मैं उपसर्ग (suffix) फ़ॉर्मेट को कस्टमाइज़ कर सकता हूँ? + +डिफ़ॉल्ट रूप से, Aspose.Cells अंडरस्कोर के बाद संख्यात्मक इंडेक्स का उपयोग करता है। यदि आपको अलग पैटर्न चाहिए (जैसे, “Detail‑A”, “Detail‑B”), तो आपको `Process` चलने के बाद वर्कबुक को पोस्ट‑प्रोसेस करना होगा, `workbook.Worksheets` पर इटररेट करके और अपनी इच्छा अनुसार नाम बदलना होगा। + +### क्या यह तरीका बड़े डेटा सेट (सैकड़ों पंक्तियों) के साथ काम करता है? + +हां, लेकिन मेमोरी उपयोग पर ध्यान रखें। प्रत्येक उत्पन्न शीट मास्टर की पूरी कॉपी होती है, इसलिए पंक्तियों की बड़ी संख्या फ़ाइल आकार को जल्दी बढ़ा सकती है। यदि आपको प्रति शीट केवल कुछ पंक्तियों की आवश्यकता है, तो अतिरिक्त सेल्स को हटाने के लिए `SmartMarkerOptions.RemoveEmptyRows = true` का उपयोग करने पर विचार करें। + +### क्या उत्पन्न फ़ाइल वास्तव में एक XLSX फ़ाइल है? + +बिल्कुल। `Save` मेथड वह Open XML पैकेज लिखता है जो Excel अपेक्षित करता है। आप फ़ाइल को LibreOffice या Google Sheets से भी बिना किसी रूपांतरण के खोल सकते हैं। + +## प्रोडक्शन‑रेडी कोड के लिए टिप्स + +| टिप | क्यों महत्वपूर्ण है | +|-----|--------------------| +| **Dispose `Workbook + +{{< /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/hindi/net/formulas-functions/_index.md b/cells/hindi/net/formulas-functions/_index.md index 8157450c2e..3efb6f449f 100644 --- a/cells/hindi/net/formulas-functions/_index.md +++ b/cells/hindi/net/formulas-functions/_index.md @@ -97,69 +97,14 @@ Aspose.Cells .NET के साथ Excel में सेल निर्भर .NET के लिए Aspose.Cells का उपयोग करके सरणी फ़ार्मुलों में महारत हासिल करना सीखें। यह मार्गदर्शिका शक्तिशाली मल्टी-सेल गणनाओं के सेटअप, कार्यान्वयन और वास्तविक दुनिया के अनुप्रयोगों को कवर करती है। ### [बहुभाषी समर्थन के लिए Aspose.Cells .NET का उपयोग करके Excel फ़ाइलों में भाषा कैसे सेट करें](./specify-language-excel-aspose-cells-net) -Aspose.Cells .NET का उपयोग करके अपनी Excel फ़ाइलों की भाषा निर्दिष्ट करना सीखें। अंतर्राष्ट्रीयकरण सूत्र सेटिंग के लिए इस चरण-दर-चरण मार्गदर्शिका के साथ दस्तावेज़ पहुँच और अनुपालन को बढ़ाएँ। +Aspose.Cells .NET का उपयोग करके अपनी Excel फ़ाइलों की भाषा निर्दिष्ट करना सीखें। अंतर्राष्ट्रीयकरण सूत्र सेटिंग के लिए इस चरण-दर-स्टेप मार्गदर्शिका के साथ दस्तावेज़ पहुँच और अनुपालन को बढ़ाएँ। ### [Aspose.Cells .NET के साथ Excel पावर क्वेरी फ़ॉर्मूला अपडेट करें](./update-power-query-formulas-aspose-cells-net) .NET के लिए Aspose.Cells का उपयोग करके Excel कार्यपुस्तिकाओं में Power Query फ़ॉर्मूले को प्रोग्रामेटिक रूप से अपडेट करना सीखें। गतिशील रिपोर्टिंग के लिए मास्टर डेटा स्रोत प्रबंधन। -## एक्सेल फॉर्मूला प्रकारों को समझना +### [C# में WRAPCOLS का उपयोग कैसे करें – रैप फ़ंक्शन के साथ Excel वर्कबुक बनाएं](./how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/) -एक्सेल सूत्र विभिन्न रूपों में आते हैं, जिनमें से प्रत्येक में अद्वितीय विशेषताएं होती हैं जिन्हें Aspose.Cells प्रबंधित कर सकता है: - -### मानक सेल सूत्र - -ये सबसे आम सूत्र हैं जो एकल कोशिकाओं पर काम करते हैं: - -- **अंकगणितीय सूत्र**: बुनियादी गणना जैसे `=A1+B1` -- **फ़ंक्शन-आधारित सूत्र**: जैसे अंतर्निहित कार्यों का उपयोग करना `=SUM(A1:A10)` -- **तार्किक सूत्र**: जैसे कार्यों के साथ सशर्त तर्क `=IF(A1>10,"High","Low")` -- **पाठ सूत्र**: जैसे कार्यों के साथ पाठ हेरफेर `=CONCATENATE(A1," ",B1)` - -### रेंज-आधारित सूत्र - -ये सूत्र सेल श्रेणियों के साथ काम करते हैं: - -- **एकत्रीकरण सूत्र**: जैसे कार्य `=AVERAGE(A1:A100)` जो कई कोशिकाओं को संसाधित करता है -- **लुकअप सूत्र**: संदर्भ फ़ंक्शन जैसे `=VLOOKUP(E1,A1:B20,2,FALSE)` डेटा पुनर्प्राप्ति के लिए -- **डेटाबेस सूत्र**: विशेष कार्य जैसे `=DSUM(A1:F100,"Amount",G1:H2)` फ़िल्टरिंग और गणना के लिए - -### सरणी सूत्र - -सारणी सूत्र एक साथ कई मानों पर गणना करते हैं: - -- **एकल-कोशिका सरणी सूत्र**: एक परिणाम लौटाता है लेकिन आंतरिक रूप से सरणियों को संसाधित करता है -- **मल्टी-सेल ऐरे फॉर्मूला**: संबंधित परिणामों के साथ कई कक्षों को पॉप्युलेट करता है -- **गतिशील सारणी**: आधुनिक एक्सेल सूत्र जो परिणामों को स्वचालित रूप से पड़ोसी कक्षों में भेज देते हैं - -### नामित सूत्र - -ये सूत्र नामित श्रेणियों या परिभाषित नामों का उपयोग करते हैं: - -- **नामित श्रेणी संदर्भ**: जैसे परिभाषित नामों का उपयोग करना `=SUM(SalesData)` -- **संरचित संदर्भ**: तालिका संदर्भ जैसे `=SUM(Table1[Amount])` -- **गतिशील नामित श्रेणियाँ**: सूत्र जो डेटा आकार के साथ स्वचालित रूप से समायोजित होते हैं - -## फॉर्मूला प्रबंधन के लिए सर्वोत्तम अभ्यास - -### प्रदर्शन अनुकूलन - -कुशल फार्मूला हैंडलिंग सुनिश्चित करने के लिए: - -1. **बैच फॉर्मूला सेटिंग**: सेल-दर-सेल के बजाय श्रेणियों पर सूत्र लागू करें -2. **चुनिंदा गणना करें**: जब संभव हो तो पूर्ण पुनर्गणना के बजाय लक्षित गणना का उपयोग करें -3. **अस्थिर कार्यों को न्यूनतम करें**: NOW() या RAND() जैसे फ़ंक्शनों के उपयोग को सीमित करें जो पुनर्गणना को ट्रिगर करते हैं -4. **साझा फ़ार्मुलों का उपयोग करें**: मेमोरी दक्षता के लिए साझा सूत्र क्षमताओं का लाभ उठाएं - -### सूत्र विश्वसनीयता - -मजबूत सूत्र कार्यान्वयन के लिए: - -1. **त्रुटि प्रबंधन**: IFERROR या समान फ़ंक्शन के साथ फ़ॉर्मूला त्रुटि प्रबंधन को कार्यान्वित करें -2. **सेल निर्भरता विश्लेषण**: वृत्ताकार संदर्भों से बचने के लिए सूत्र निर्भरता को समझें -3. **फॉर्मूला ऑडिटिंग**: परिनियोजन से पहले सूत्र तर्क सत्यापित करें -4. **प्रलेखन**: जटिल सूत्र संरचनाओं का स्पष्ट दस्तावेज़ीकरण बनाए रखें - -.NET के लिए Aspose.Cells के साथ इन सूत्र क्षमताओं में महारत हासिल करके, आप अपनी स्प्रेडशीट में परिष्कृत गणना इंजन बना सकते हैं जो Excel स्थापना की आवश्यकता के बिना सटीक, गतिशील परिणाम प्रदान करते हैं। +### [Excel वर्कबुक बनाना C# – लैम्ब्डा, SEQUENCE और EXPAND गाइड](./create-excel-workbook-c-lambda-sequence-expand-guide/) {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hindi/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md b/cells/hindi/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md new file mode 100644 index 0000000000..76a76921e5 --- /dev/null +++ b/cells/hindi/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-30 +description: Aspose.Cells का उपयोग करके C# में Excel वर्कबुक बनाएं। Excel में लैम्ब्डा + फ़ंक्शन, सीक्वेंस फ़ंक्शन, एरे को विस्तारित करने का उपयोग करना सीखें, और वर्कबुक + को xlsx के रूप में सहेजें। +draft: false +keywords: +- create excel workbook c# +- lambda function excel +- save workbook as xlsx +- sequence function excel +- expand array excel +language: hi +og_description: Excel वर्कबुक C# में जल्दी बनाएं। यह गाइड दिखाता है कि लैम्ब्डा फ़ंक्शन + Excel, सीक्वेंस फ़ंक्शन Excel, एक्सपैंड एरे Excel का उपयोग कैसे करें, और वर्कबुक + को xlsx के रूप में सहेजें। +og_title: Excel वर्कबुक बनाएं C# – लैम्ब्डा, SEQUENCE और EXPAND गाइड +tags: +- Aspose.Cells +- C# +- Excel automation +title: Excel वर्कबुक बनाएं C# – लैम्ब्डा, SEQUENCE और EXPAND गाइड +url: /hi/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Create Excel Workbook C# – Lambda, SEQUENCE & EXPAND Guide + +क्या आपको कभी **create Excel workbook C#** की ज़रूरत पड़ी है किसी ऑटोमेटेड रिपोर्ट के लिए, लेकिन आप नहीं जानते थे कि कौन‑से API कॉल्स इस्तेमाल करें? आप अकेले नहीं हैं—कई डेवलपर्स को प्रोग्रामेटिक Excel जेनरेशन में पहला कदम रखते ही यही दिक्कत आती है। इस गाइड में आप एक पूर्ण, चलाने योग्य उदाहरण देखेंगे जो नई **SEQUENCE function Excel** से लेकर शक्तिशाली **LAMBDA function Excel** तक, और यहाँ तक कि **expand array Excel** परिणामों को कैसे विस्तारित किया जाए, सब कवर करता है। + +हम आपको **save workbook as xlsx** करने के सटीक चरण भी दिखाएंगे ताकि आप फ़ाइल को किसी भी Excel उपयोगकर्ता को दे सकें। इस ट्यूटोरियल के अंत तक आपके पास एक ठोस, प्रोडक्शन‑रेडी स्निपेट होगा जिसे आप किसी भी .NET प्रोजेक्ट में डाल सकते हैं। कोई अस्पष्ट “see the docs” लिंक नहीं—बस ऐसा कोड जो आज ही काम करता है। + +## What You’ll Need + +- **.NET 6.0 or later** – उदाहरण .NET 6 को टार्गेट करता है, लेकिन कोई भी हालिया संस्करण चलेगा। +- **Aspose.Cells for .NET** – NuGet (`Install-Package Aspose.Cells`) से इंस्टॉल करें। +- C# सिंटैक्स की बुनियादी समझ (वेरिएबल्स, ऑब्जेक्ट्स, और लैम्ब्डा एक्सप्रेशन्स)। +- वह IDE जिसमें आप सहज हों (Visual Studio, Rider, या VS Code)। + +बस इतना ही। कोई अतिरिक्त COM इंटरऑप नहीं, सर्वर पर Office इंस्टॉल करने की ज़रूरत नहीं—Aspose.Cells सब कुछ मेमोरी में संभालता है। + +## Create Excel Workbook C# – Step‑by‑Step Implementation + +नीचे हम प्रक्रिया को छोटे‑छोटे चरणों में बाँटते हैं। प्रत्येक चरण में स्पष्ट हेडर, छोटा कोड अंश, और **क्यों** हम यह कर रहे हैं, इसका विवरण होता है। अंत में पूरा ब्लॉक कॉपी करके कंसोल ऐप के रूप में चलाएँ। + +### Step 1 – Initialize a New Workbook + +सबसे पहले हमें एक खाली workbook ऑब्जेक्ट चाहिए जो मेमोरी में Excel फ़ाइल का प्रतिनिधित्व करता है। + +```csharp +using Aspose.Cells; + +// Step 1: Create a new workbook and get the first worksheet +Workbook workbook = new Workbook(); // empty workbook +Worksheet sheet = workbook.Worksheets[0]; // default first sheet +``` + +*Why this matters:* `Workbook` सभी Aspose.Cells ऑपरेशन्स का एंट्री पॉइंट है। पहला `Worksheet` प्राप्त करके हमें एक कैनवास मिलता है जहाँ हम फ़ॉर्मूले, वैल्यूज़, या फ़ॉर्मेटिंग लिख सकते हैं। + +> **Pro tip:** अगर आपको कई शीट्स चाहिए, तो बस `workbook.Worksheets.Add()` कॉल करें और प्रत्येक का रेफ़रेंस रखें। + +### Step 2 – Use the SEQUENCE function Excel to Generate Data + +**sequence function excel** बिना किसी VBA के नंबरों की डायनामिक एरे बनाता है। हम इसे सेल `A1` में रखेंगे और Excel को स्वचालित रूप से विस्तारित करने देंगे। + +```csharp +// Step 2: Generate a 5‑row, 1‑column array from a SEQUENCE +sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; // 1..3 padded with blanks +``` + +*Why this matters:* `SEQUENCE(3)` देता है `[1,2,3]`। इसे `EXPAND` से रैप करने से परिणाम 5‑पंक्तियों की रेंज में फैल जाता है, अतिरिक्त पंक्तियों को खाली छोड़ते हुए। यह एक ही बार में **sequence function excel** और **expand array excel** दोनों को दर्शाता है। + +### Step 3 – Aggregate Numbers with LAMBDA function Excel + +अब हम **lambda function excel** क्षमता दिखाते हैं। हम नई `REDUCE` फ़ंक्शन का उपयोग करेंगे, जो अंदरूनी तौर पर एक लैम्ब्डा पर निर्भर करता है, ताकि 1‑5 तक के नंबरों का योग किया जा सके। + +```csharp +// Step 3: Aggregate a sequence (sum 1..5) using REDUCE/LAMBDA +sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; // result = 15 +``` + +*Why this matters:* `REDUCE` `SEQUENCE(5)` द्वारा उत्पन्न एरे पर इटरैट करता है, प्रत्येक एलिमेंट (`b`) को लैम्ब्डा के साथ एक्यूमुलेटर (`a`) में फीड करता है। लैम्ब्डा `a+b` उन्हें जोड़ता है, जिससे `B1` में `15` रह जाता है। यह लूपिंग के बिना केवल फ़ॉर्मूला से रिडक्शन करने का साफ़ तरीका है। + +### Step 4 – Apply Trigonometric Functions Directly in Cells + +Excel के बिल्ट‑इन गणित फ़ंक्शन तेज़ कैलकुलेशन के लिए उपयोगी होते हैं। हम एक कोटैन्जेंट और एक हाइपरबोलिक कोटैन्जेंट को सटे‑सटे सेल्स में रखेंगे। + +```csharp +// Step 4: Trigonometric functions directly in Excel cells +sheet["C1"].Formula = "COT(PI()/4)"; // evaluates to 1 +sheet["D1"].Formula = "COTH(1)"; // hyperbolic cotangent of 1 +``` + +*Why this matters:* यह दर्शाता है कि आप क्लासिक गणित फ़ंक्शन को नई डायनामिक‑एरे फ़ॉर्मूलों के साथ मिला सकते हैं। इन मूल्यों को C# में गणना करने की ज़रूरत नहीं जब तक आपके पास विशेष परफ़ॉर्मेंस कारण न हो। + +### Step 5 – Calculate All Formulas + +Aspose.Cells फ़ॉर्मूले सेट करने पर उन्हें स्वचालित रूप से इवैल्यूएट नहीं करता। आपको स्पष्ट रूप से इसे कहने की ज़रूरत है। + +```csharp +// Step 5: Force calculation so that cells store the results +workbook.CalculateFormula(); +``` + +*Why this matters:* इस कॉल के बाद, प्रत्येक सेल की `Value` प्रॉपर्टी में इवैल्यूएटेड परिणाम रहता है, जिसे सेव या वापस पढ़ा जा सकता है। + +### Step 6 – Save the Workbook as Xlsx + +अंत में, हम **save workbook as xlsx** पैटर्न का उपयोग करके workbook को डिस्क पर सहेजते हैं। + +```csharp +// Step 6: Save the workbook to an Excel file (XLSX format) +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + +workbook.Save(outputPath); +Console.WriteLine($"Workbook saved to: {outputPath}"); +``` + +*Why this matters:* `Save` मेथड फ़ाइल एक्सटेंशन को स्वचालित रूप से पहचान लेता है। “.xlsx” का उपयोग करके हम सुनिश्चित करते हैं कि फ़ाइल आधुनिक Excel संस्करणों के साथ संगत है। पाथ डेस्कटॉप की ओर इशारा करता है ताकि परीक्षण के दौरान आसानी से एक्सेस किया जा सके। + +### Full Working Example + +नीचे पूरा प्रोग्राम है जिसे आप नई कंसोल प्रोजेक्ट में पेस्ट कर सकते हैं। इसमें ऊपर बताए सभी चरण शामिल हैं, साथ ही एक छोटा वेरिफिकेशन ब्लॉक भी है जो कंसोल में गणना किए गए मानों को प्रिंट करता है। + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialize workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + + // SEQUENCE + EXPAND + sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; + + // REDUCE with LAMBDA + sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; + + // Trig functions + sheet["C1"].Formula = "COT(PI()/4)"; + sheet["D1"].Formula = "COTH(1)"; + + // Calculate formulas + workbook.CalculateFormula(); + + // Verify results (optional) + Console.WriteLine("A1‑A5 (expanded SEQUENCE):"); + for (int i = 0; i < 5; i++) + { + Console.WriteLine($" Row {i + 1}: {sheet.Cells[i, 0].Value ?? "blank"}"); + } + Console.WriteLine($"B1 (sum 1‑5): {sheet["B1"].Value}"); + Console.WriteLine($"C1 (cot(π/4)): {sheet["C1"].Value}"); + Console.WriteLine($"D1 (coth(1)): {sheet["D1"].Value}"); + + // Save workbook + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + workbook.Save(outputPath); + Console.WriteLine($"Workbook saved to: {outputPath}"); + } +} +``` + +**Expected output in the console** + +``` +A1‑A5 (expanded SEQUENCE): + Row 1: 1 + Row 2: 2 + Row 3: 3 + Row 4: blank + Row 5: blank +B1 (sum 1‑5): 15 +C1 (cot(π/4)): 1 +D1 (coth(1)): 1.31303528549933 +Workbook saved to: C:\Users\YourName\Desktop\NewFunctions.xlsx +``` + +और जब आप *NewFunctions.xlsx* खोलेंगे तो वही नंबर पहली चार कॉलम में व्यवस्थित दिखेंगे। + +![create excel workbook c# screenshot of the resulting spreadsheet](/images/create-excel-workbook-csharp.png) + +## Edge Cases, Tips, and Common Questions + +- **What if I need more than one sheet?** + बस `workbook.Worksheets.Add()` कॉल करें और प्रत्येक नए `Worksheet` ऑब्जेक्ट पर फ़ॉर्मूला असाइनमेंट दोहराएँ। + +- **Can I use older Excel versions?** + डायनामिक‑एरे फ़ंक्शन (`SEQUENCE`, `EXPAND`, `REDUCE`) को Excel 365 या Excel 2021+ की आवश्यकता होती है। अगर आप पुराने संस्करण टार्गेट कर रहे हैं, तो क्लासिक फ़ॉर्मूले इस्तेमाल करें या मानों को C# में पहले से गणना करके लिखें। + +- **Performance concerns?** + हजारों पंक्तियों के लिए, रेंज पर फ़ॉर्मूले सेट करके फिर `CalculateFormula` कॉल करना आमतौर पर एक‑एक करके वैल्यू असाइन करने से तेज़ होता है। + +- **Saving to a stream instead of a file?** + `work + +{{< /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/hindi/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md b/cells/hindi/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md new file mode 100644 index 0000000000..5c7f8e5d86 --- /dev/null +++ b/cells/hindi/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-30 +description: C# में WRAPCOLS का उपयोग करके Excel वर्कबुक बनाना, Excel में डेटा जोड़ना, + और फ़ॉर्मूला की गणना को मजबूर करना सीखें, साथ ही WRAPROWS का भी उपयोग करें। +draft: false +keywords: +- how to use wrapcols +- create excel workbook c# +- add data to excel +- force formula calculation +- how to use wraprows +language: hi +og_description: जानेँ कि C# में WRAPCOLS का उपयोग करके Excel वर्कबुक कैसे बनाएं, डेटा + जोड़ें, फ़ॉर्मूला की गणना को मजबूर करें और एरे फ़ॉर्मूलों के लिए WRAPROWS का उपयोग + कैसे करें। +og_title: C# में WRAPCOLS का उपयोग कैसे करें – पूर्ण गाइड +tags: +- Aspose.Cells +- C# +- Excel Automation +title: C# में WRAPCOLS का उपयोग कैसे करें – Wrap फ़ंक्शन्स के साथ Excel वर्कबुक बनाएं +url: /hi/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# में WRAPCOLS को कैसे उपयोग करें – Wrap Functions के साथ Excel Workbook बनाएं + +क्या आपने कभी **WRAPCOLS का उपयोग कैसे करें** जब आप C# के साथ Excel को ऑटोमेट कर रहे हैं? आप अकेले नहीं हैं—कई डेवलपर्स को एक क्षैतिज रेंज को लंबवत एरे में बदलने के लिए बहुत सारा कोड लिखे बिना समस्या आती है। अच्छी खबर यह है कि Aspose.Cells इसे बहुत आसान बना देता है। + +इस ट्यूटोरियल में हम एक पूर्ण, चलने योग्य उदाहरण के माध्यम से दिखाएंगे **WRAPCOLS का उपयोग कैसे करें**, **Excel workbook C#‑स्टाइल बनाएं**, **Excel में डेटा जोड़ें**, और यहाँ तक कि **फ़ॉर्मूला गणना को बाध्य करें** ताकि परिणाम तुरंत दिखें। हम **WRAPROWS का उपयोग कैसे करें** को भी शामिल करेंगे ताकि विपरीत परिवर्तन दिखाया जा सके। अंत तक आपके पास एक तैयार‑चलाने‑योग्य प्रोग्राम होगा और प्रत्येक चरण के महत्व की स्पष्ट समझ होगी। + +--- + +![C# में WRAPCOLS का उपयोग कैसे करें उदाहरण](alt="WRAPCOLS का उपयोग करने के बाद Excel वर्कबुक दिखाते हुए स्क्रीनशॉट") + +## इस गाइड में क्या शामिल है + +* Aspose.Cells के साथ एक नया वर्कबुक सेटअप करना। +* प्रोग्रामेटिक रूप से सेल्स को भरना (**Excel में डेटा जोड़ें**)। +* `WRAPCOLS` फ़ंक्शन लागू करके पंक्ति को कॉलम में बदलना। +* `WRAPROWS` का उपयोग करके कॉलम को फिर से पंक्ति में बदलना (**WRAPROWS का उपयोग कैसे करें**)। +* इंजन को फ़ॉर्मूला तुरंत मूल्यांकन करने के लिए बाध्य करना (**फ़ॉर्मूला गणना को बाध्य करें**)। +* फ़ाइल को सहेजना और आउटपुट की जाँच करना। + +कोई बाहरी दस्तावेज़ीकरण आवश्यक नहीं—आपको जो कुछ भी चाहिए वह यहीं मौजूद है। + +--- + +## C# में WRAPCOLS का उपयोग – चरण‑दर‑चरण कार्यान्वयन + +नीचे पूरा स्रोत फ़ाइल दिया गया है। इसे नई कंसोल प्रोजेक्ट में कॉपी‑पेस्ट करने, Aspose.Cells NuGet पैकेज जोड़ने, और **F5** दबाने में संकोच न करें। + +```csharp +// ------------------------------------------------------------ +// How to Use WRAPCOLS in C# – Complete Example +// ------------------------------------------------------------ +using System; +using Aspose.Cells; + +namespace WrapFunctionsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a fresh workbook (this is how we **create excel workbook c#** style) + Workbook workbook = new Workbook(); + + // 2️⃣ Grab the first worksheet – it's created by default + Worksheet sheet = workbook.Worksheets[0]; + + // 3️⃣ **Add data to Excel**: place two numbers side‑by‑side + sheet.Cells["A1"].PutValue(1); // first value + sheet.Cells["B1"].PutValue(2); // second value + + // 4️⃣ **How to use WRAPCOLS** – turn the horizontal range A1:B1 into a vertical array + // The second argument (1) tells WRAPCOLS to create 1 column per element. + sheet["C1"].Formula = "WRAPCOLS(A1:B1, 1)"; + + // 5️⃣ **How to use WRAPROWS** – the opposite; turn the same range into a horizontal array + // Here we ask for 2 rows per element, which produces a single row with both values. + sheet["C2"].Formula = "WRAPROWS(A1:B1, 2)"; + + // 6️⃣ **Force formula calculation** so the workbook reflects the results immediately + workbook.CalculateFormula(); + + // 7️⃣ Save the workbook to disk – change the path to a folder you own + string outputPath = @"WrapFunctions.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + Console.WriteLine("Check cells C1 and C2 for the WRAPCOLS / WRAPROWS results."); + } + } +} +``` + +### प्रत्येक पंक्ति क्यों महत्वपूर्ण है + +| Step | Explanation | +|------|-------------| +| **1️⃣ नया वर्कबुक बनाएं** | यह आधार है। Aspose.Cells `Workbook` ऑब्जेक्ट को पूरे Excel फ़ाइल के रूप में मानता है, इसलिए आप प्रभावी रूप से **Excel workbook C#** शैली बना रहे हैं। | +| **2️⃣ पहला वर्कशीट प्राप्त करें** | एक नया वर्कबुक हमेशा कम से कम एक वर्कशीट (`Worksheets[0]`) रखता है। इसे जल्दी एक्सेस करने से null‑reference की आश्चर्यजनक स्थितियों से बचा जा सकता है। | +| **3️⃣ Excel में डेटा जोड़ें** | `PutValue` का उपयोग करके हम **Excel में डेटा जोड़ते** हैं बिना सेल फ़ॉर्मेटिंग की चिंता किए। संख्याएँ `1` और `2` हमारे रैप फ़ंक्शनों के लिए परीक्षण डेटा हैं। | +| **4️⃣ WRAPCOLS का उपयोग कैसे करें** | `WRAPCOLS(A1:B1, 1)` Excel को बताता है कि रेंज `A1:B1` को ले और उसके मानों को लंबवत, प्रति पंक्ति एक, फैलाए। परिणाम `C1` में आता है और नीचे की ओर फैलता है (`C1`, `C2`, …). | +| **5️⃣ WRAPROWS का उपयोग कैसे करें** | `WRAPROWS(A1:B1, 2)` इसका विपरीत करता है: यह एक क्षैतिज स्पिल बनाता है, दो मानों को एक ही पंक्ति में `C2` से शुरू करके फिट करता है। | +| **6️⃣ फ़ॉर्मूला गणना को बाध्य करें** | डिफ़ॉल्ट रूप से, Aspose.Cells गणना को तब तक स्थगित कर सकता है जब तक फ़ाइल Excel में नहीं खोली जाती। `CalculateFormula()` को कॉल करने से **फ़ॉर्मूला गणना बाध्य** हो जाती है ताकि आप सहेजने के बाद तुरंत परिणाम पढ़ सकें। | +| **7️⃣ वर्कबुक सहेजें** | अंतिम चरण सब कुछ डिस्क पर लिखता है। परिणामस्वरूप `WrapFunctions.xlsx` खोलें ताकि आउटपुट देख सकें। | + +--- + +## Excel Workbook C# बनाना – पर्यावरण सेटअप + +कोड चलाने से पहले, सुनिश्चित करें कि आपके पास सही टूल्स हैं: + +1. **.NET 6.0+** – नवीनतम LTS संस्करण सबसे अच्छा काम करता है। +2. **Visual Studio 2022** (या C# एक्सटेंशन के साथ VS Code)। +3. **Aspose.Cells for .NET** – NuGet के माध्यम से इंस्टॉल करें: + ```bash + dotnet add package Aspose.Cells + ``` +4. आउटपुट फ़ाइल के लिए एक लिखने योग्य फ़ोल्डर। + +ये आवश्यकताएँ न्यूनतम हैं; कोई COM इंटरऑप या Office इंस्टॉलेशन आवश्यक नहीं है, इसलिए Aspose.Cells सर्वर‑साइड Excel जेनरेशन के लिए एक लोकप्रिय विकल्प है। + +--- + +## Excel में डेटा जोड़ें – सर्वोत्तम प्रथाएँ + +जब आप प्रोग्रामेटिक रूप से **Excel में डेटा जोड़ें**, तो इन सुझावों पर विचार करें: + +* **`PutValue` का उपयोग करें** कच्ची संख्याओं या स्ट्रिंग्स के लिए; यह स्वचालित रूप से डेटा प्रकार का पता लगा लेता है। +* **बड़े प्रोजेक्ट्स में सेल एड्रेस को हार्ड‑कोड करने से बचें**—स्केलेबिलिटी के लिए लूप या नामित रेंज का उपयोग करें। +* **सेल स्टाइल्स को कम रखें**; प्रत्येक स्टाइल परिवर्तन ओवरहेड जोड़ता है। यदि आपको फ़ॉर्मेटिंग चाहिए, तो एक ही स्टाइल ऑब्जेक्ट बनाएं और कई सेल्स पर लागू करें। + +हमारे छोटे उदाहरण में हम केवल दो संख्याएँ डालते हैं, लेकिन यही पैटर्न हजारों पंक्तियों तक स्केल करता है। + +--- + +## WRAPROWS का उपयोग कैसे करें – क्षैतिज एरे उदाहरण + +यदि आपको `WRAPCOLS` का विपरीत चाहिए, तो `WRAPROWS` आपका समाधान है। सिंटैक्स है: + +``` +WRAPROWS(source_range, [rows_per_item]) +``` + +* `source_range` – वह रेंज जिसे आप ट्रांसफ़ॉर्म करना चाहते हैं। +* `rows_per_item` – वैकल्पिक; Excel को बताता है कि प्रत्येक तत्व कितनी पंक्तियों में occupy करता है। हमारे डेमो में हमने `2` का उपयोग किया ताकि दोनों मान एक ही पंक्ति में आएँ। + +आप दूसरे आर्ग्यूमेंट को बदलकर प्रयोग कर सकते हैं: + +```csharp +// Example: split each value into its own column, three rows per item +sheet["D1"].Formula = "WRAPROWS(A1:B1, 3)"; +``` + +वर्कबुक खोलें और आप देखेंगे कि मान तीन कॉलम में फैलते हैं, प्रत्येक कॉलम में मूल संख्याएँ आवश्यकतानुसार दोहराई गई हैं। + +--- + +## फ़ॉर्मूला गणना को बाध्य करें – कब और क्यों + +आप सोच सकते हैं, “क्या मुझे वास्तव में `CalculateFormula()` कॉल करना चाहिए?” उत्तर **हां** है, यदि: + +* आप सहेजने के बाद गणना किए गए मान **प्रोग्रामेटिक रूप से** पढ़ने की योजना बना रहे हैं। +* आप चाहते हैं कि फ़ाइल Excel में खुले और सही परिणाम पहले से ही दिखाए। +* आप **हेडलेस एनवायरनमेंट** (जैसे, वेब API) में चल रहे हैं जहाँ कोई उपयोगकर्ता मैन्युअली री‑कैल्कुलेशन नहीं ट्रिगर करेगा। + +इस चरण को छोड़ने से वर्कबुक नहीं टूटेगा, लेकिन सेल्स फ़ॉर्मूला टेक्स्ट (`=WRAPCOLS(...)`) दिखाएंगे, गणना किए गए मानों के बजाय, जब तक Excel पुनः गणना नहीं करता। + +--- + +## अपेक्षित आउटपुट – क्या देखना है + +प्रोग्राम चलाने और `WrapFunctions.xlsx` खोलने के बाद: + +| सेल | फ़ॉर्मूला | प्रदर्शित मान | +|------|----------|-----------------| +| **C1** | `=WRAPCOLS(A1:B1, 1)` | `1` (C1 में) और `2` (C2 में) – एक लंबवत सूची | +| **C2** | `=WRAPROWS(A1:B1, 2)` | `1` C2 में और `2` D2 में – एक क्षैतिज सूची | + +इसलिए आप **C1** से शुरू होने वाला मानों का कॉलम और **C2** से शुरू होने वाली मानों की पंक्ति देखेंगे। यह पुष्टि करता है कि दोनों रैप फ़ंक्शन अपेक्षित रूप से कार्य किए। + +--- + +## किनारे के मामलों और विविधताएँ + +| Scenario | What changes? | Suggested tweak | +|----------|---------------|-----------------| +| **बड़ी रेंज (A1:Z1)** | लंबवत अधिक मानों को फैलाने के लिए | `WRAPCOLS` के दूसरे आर्ग्यूमेंट को बढ़ाएँ यदि आप समूह प्रति कई कॉलम चाहते हैं। | +| **गैर‑संख्यात्मक डेटा** | स्ट्रिंग्स को उसी तरह संभाला जाता है | कोड में कोई बदलाव नहीं; `PutValue` किसी भी ऑब्जेक्ट को स्वीकार करता है। | +| **डायनामिक रेंज** | आपको कंपाइल टाइम पर आकार नहीं पता होता | `sheet.Cells.MaxDataColumn` और `MaxDataRow` का उपयोग करके पता स्ट्रिंग बनाएं। | +| **एकाधिक वर्कशीट्स** | विभिन्न शीट्स पर रैप फ़ंक्शन लागू करने की आवश्यकता | सही वर्कशीट को रेफ़रेंस करें (`workbook.Worksheets["Sheet2"]`). | + +इन विविधताओं की पूर्वानुमान करके, आप कोर पैटर्न को लगभग किसी भी ऑटोमेशन परिदृश्य में अनुकूलित कर सकते हैं। + +--- + +## फील्ड से प्रो टिप्स + +* **प्रो टिप:** यदि आप .NET Core 3.1+ को टार्गेट कर रहे हैं तो वर्कबुक निर्माण को `using` ब्लॉक में रखें ताकि सभी संसाधन तुरंत रिलीज़ हो जाएँ। +* **ध्यान रखें:** बड़े रेंज में समान फ़ॉर्मूला सेट करने पर `CalculateFormula()` को कॉल किए बिना प्रदर्शन बाधा उत्पन्न हो सकती है। संभव हो तो फ़ॉर्मूला को बैच‑प्रोसेस करें। +* **Tip:** If you need to read back the calculated values in code, call ` + +{{< /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/hindi/net/tables-and-lists/_index.md b/cells/hindi/net/tables-and-lists/_index.md index 0a5b62e2fa..0c3cc8c747 100644 --- a/cells/hindi/net/tables-and-lists/_index.md +++ b/cells/hindi/net/tables-and-lists/_index.md @@ -39,19 +39,28 @@ ## तालिकाएँ और सूचियाँ ट्यूटोरियल ### [Aspose.Cells का उपयोग करके Excel में सूची ऑब्जेक्ट बनाएँ](./creating-list-object/) इस विस्तृत गाइड के साथ .NET के लिए Aspose.Cells का उपयोग करके Excel में सूची ऑब्जेक्ट बनाएँ। आसान डेटा प्रबंधन और गणना में महारत हासिल करें। + ### [Aspose.Cells के साथ Excel में सूची ऑब्जेक्ट को फ़ॉर्मेट करें](./formatting-list-object/) .NET के लिए Aspose.Cells का उपयोग करके Excel में सूची ऑब्जेक्ट को फ़ॉर्मेट करना सीखें। आसानी से टेबल बनाएँ और स्टाइल करें। + ### [Aspose.Cells का उपयोग करके तालिका को ODS में बदलें](./converting-table-to-ods/) हमारे आसान चरण-दर-चरण ट्यूटोरियल के साथ .NET के लिए Aspose.Cells का उपयोग करके Excel तालिकाओं को ODS में परिवर्तित करना सीखें। + ### [एक्सेल में टेबल को रेंज में बदलें](./converting-table-to-range/) .NET के लिए Aspose.Cells का उपयोग करके Excel तालिकाओं को आसानी से श्रेणियों में बदलें। अपने डेटा हेरफेर को आसान बनाने के लिए हमारे चरण-दर-चरण मार्गदर्शिका का पालन करें। + ### [विकल्पों के साथ तालिका को श्रेणी में बदलें](./converting-table-to-range-with-options/) चरण-दर-चरण मार्गदर्शन के साथ .NET के लिए Aspose.Cells का उपयोग करके Excel में तालिकाओं को आसानी से श्रेणियों में बदलें। अपने Excel डेटा हेरफेर कौशल को बढ़ाएँ। + ### [क्वेरी डेटा स्रोत के साथ तालिका पढ़ें और लिखें](./reading-and-writing-table-with-query-data-source/) .NET के लिए Aspose.Cells की शक्ति अनलॉक करें। इस विस्तृत चरण-दर-चरण मार्गदर्शिका में क्वेरी डेटा स्रोतों के साथ तालिकाओं को पढ़ना और लिखना सीखें। + ### [एक्सेल में तालिका या सूची की टिप्पणी सेट करें](./setting-comment-of-table-or-list/) हमारे आसान चरण-दर-चरण मार्गदर्शिका के साथ .NET के लिए Aspose.Cells का उपयोग करके Excel में तालिकाओं के लिए टिप्पणियाँ सेट करना सीखें। +### [C# में रेंज से टेबल बनाएं – पूर्ण Aspose.Cells ट्यूटोरियल](./create-table-from-range-in-c-complete-aspose-cells-tutorial/) +इस व्यापक गाइड में .NET के लिए Aspose.Cells का उपयोग करके रेंज से टेबल बनाने की पूरी प्रक्रिया सीखें। + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} diff --git a/cells/hindi/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md b/cells/hindi/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md new file mode 100644 index 0000000000..68f872037d --- /dev/null +++ b/cells/hindi/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md @@ -0,0 +1,230 @@ +--- +category: general +date: 2026-03-30 +description: C# में Aspose.Cells के साथ रेंज से टेबल बनाएं – सेल्स में डेटा जोड़ें, + रेंज को ListObject में बदलें और बिना फ़िल्टर के Excel सहेजें। +draft: false +keywords: +- create table from range +- create excel workbook c# +- add data to cells +- convert range to listobject +- save excel without filter +language: hi +og_description: C# में Aspose.Cells के साथ रेंज से टेबल बनाएं। जानें कि कैसे सेल्स + में डेटा जोड़ें, रेंज को ListObject में बदलें, और फ़िल्टर के बिना Excel सहेजें। +og_title: C# में रेंज से टेबल बनाएं – पूर्ण Aspose.Cells ट्यूटोरियल +tags: +- Aspose.Cells +- C# +- Excel Automation +title: C# में रेंज से टेबल बनाना – पूर्ण Aspose.Cells ट्यूटोरियल +url: /hi/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# में रेंज से टेबल बनाएं – पूर्ण Aspose.Cells ट्यूटोरियल + +क्या आपको कभी C# में **create table from range** बनाने की ज़रूरत पड़ी है लेकिन यह नहीं पता था कि साधारण डेटा ब्लॉक को पूरी तरह से फीचर वाली Excel टेबल में कैसे बदला जाए? आप अकेले नहीं हैं। चाहे आप रिपोर्ट्स को ऑटोमेट कर रहे हों, स्कोरकार्ड बना रहे हों, या सिर्फ डाउनस्ट्रीम विश्लेषण के लिए डेटा को साफ़ कर रहे हों, इस छोटे ट्रिक में महारत हासिल करने से आपका बहुत सारा मैन्युअल काम बच सकता है। + +इस गाइड में हम पूरी प्रक्रिया को चरण‑दर‑चरण देखेंगे: **create excel workbook c#**, **add data to cells**, **convert range to ListObject**, और अंत में **save excel without filter**। अंत तक आपके पास एक तैयार‑चलाने योग्य स्निपेट होगा जिसे आप किसी भी .NET प्रोजेक्ट में डाल सकते हैं जो Aspose.Cells को रेफ़रेंस करता है। + +--- + +## आवश्यकताएँ + +- .NET 6+ (या .NET Framework 4.7.2+) स्थापित है +- Aspose.Cells for .NET (NuGet पैकेज `Aspose.Cells`) – लेखन के समय उपलब्ध नवीनतम संस्करण (23.10) पूरी तरह काम करता है। +- C# सिंटैक्स की बुनियादी समझ – गहरी Excel इंटरऑप ज्ञान की आवश्यकता नहीं। + +यदि आपके पास ये सब हैं, तो चलिए शुरू करते हैं। + +--- + +## चरण 1: C# में Excel वर्कबुक बनाएं + +सबसे पहले हमें एक नया वर्कबुक ऑब्जेक्ट चाहिए। इसे एक खाली Excel फ़ाइल के रूप में सोचें जो अंततः हमारी टेबल को रखेगी। + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is equivalent to opening a blank .xlsx file. +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (default) worksheet. +``` + +> **Pro tip:** `Workbook()` बिना किसी आर्ग्युमेंट के एक वर्कबुक बनाता है जिसमें एक डिफ़ॉल्ट वर्कशीट होती है, जो त्वरित डेमो के लिए आदर्श है। यदि आपको कई शीट्स चाहिए, तो आप बाद में `workbook.Worksheets.Add()` से जोड़ सकते हैं। + +--- + +## चरण 2: सेल्स में डेटा जोड़ें + +अब हम शीट को एक छोटे डेटा सेट से भरेंगे – दो कॉलम (Name, Score) और तीन पंक्तियों के मान। यह **add data to cells** को एक साफ़, पढ़ने योग्य तरीके से दर्शाता है। + +```csharp +// Header row +worksheet.Cells["A1"].PutValue("Name"); +worksheet.Cells["B1"].PutValue("Score"); + +// Data rows +worksheet.Cells["A2"].PutValue("Alice"); +worksheet.Cells["B2"].PutValue(85); +worksheet.Cells["A3"].PutValue("Bob"); +worksheet.Cells["B3"].PutValue(92); +``` + +`PutValue` का उपयोग क्यों करें? यह स्वचालित रूप से डेटा प्रकार (string बनाम numeric) का पता लगाता है और सेल को उसी अनुसार फॉर्मेट करता है, जिससे आपको सरल परिदृश्यों में `Style` ऑब्जेक्ट्स के साथ झंझट नहीं करनी पड़ती। + +> **Expected output:** इस चरण के बाद, यदि आप Excel में वर्कबुक खोलते हैं तो आपको दो‑कॉलम ग्रिड दिखाई देगा जिसमें हेडर “Name” और “Score” होंगे, उसके बाद दो पंक्तियों का डेटा। + +--- + +## चरण 3: रेंज को ListObject (टेबल) में बदलें + +यहीं पर जादू होता है: उस साधारण रेंज को एक Excel टेबल में बदलना (Aspose.Cells API में इसे **ListObject** कहा जाता है)। यह न केवल दृश्य स्टाइलिंग जोड़ता है बल्कि सॉर्टिंग, फ़िल्टरिंग, और स्ट्रक्चर्ड रेफ़रेंसेज़ जैसी बिल्ट‑इन सुविधाओं को भी सक्षम करता है। + +```csharp +// Define the range boundaries. +// startRow and startColumn are zero‑based indexes. +// rowCount includes the header row. +int startRow = 0; // Row 1 in Excel +int startColumn = 0; // Column A +int rowCount = 3; // Header + 2 data rows +int columnCount = 2; // Two columns: Name & Score + +// Add a ListObject to the worksheet and retrieve the object. +int listIndex = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); +ListObject table = worksheet.ListObjects[listIndex]; + +// Turn on the UI filter dropdowns so users can interact with the table. +table.ShowAutoFilter = true; +``` + +> **Why use a ListObject?** +> - **Structured references**: फ़ॉर्मूले कॉलम नाम से रेफ़र कर सकते हैं। +> - **Auto‑filter UI**: उपयोगकर्ताओं को तेज़ फ़िल्टरिंग के लिए ड्रॉपडाउन एरो मिलते हैं। +> - **Styling**: आप बाद में एक ही लाइन से बिल्ट‑इन टेबल स्टाइल लागू कर सकते हैं। + +--- + +## चरण 4: AutoFilter UI हटाएँ (फ़िल्टर के बिना Excel सहेजें) + +कभी‑कभी आपको बिना फ़िल्टर एरो के एक साफ़ शीट चाहिए होती है – उदाहरण के लिए, जब वर्कबुक अंतिम रिपोर्ट हो। Aspose.Cells 23.10 ने फ़िल्टर UI को पूरी तरह हटाने का एक सरल तरीका पेश किया। + +```csharp +// Remove the filter UI completely. +table.AutoFilter = null; // Clears the underlying filter object. +table.ShowAutoFilter = false; // Hides the dropdown arrows. +``` + +ध्यान दें कि हम डेटा को डिलीट नहीं कर रहे हैं; हम केवल विज़ुअल फ़िल्टर कंट्रोल्स को बंद कर रहे हैं। यह **save excel without filter** आवश्यकता को पूरा करता है। + +--- + +## चरण 5: वर्कबुक सहेजें + +अंत में, वर्कबुक को डिस्क पर लिखें। फ़ाइल में टेबल होगी लेकिन कोई फ़िल्टर UI नहीं होगा। + +```csharp +// Choose a folder you have write access to. +string outputPath = @"C:\Temp\NoAutoFilter.xlsx"; +workbook.Save(outputPath); +``` + +`NoAutoFilter.xlsx` को Excel में खोलें – आपको टेबल डिफ़ॉल्ट फ़ॉर्मेटिंग के साथ स्टाइल्ड दिखेगी, लेकिन फ़िल्टर एरो नहीं होंगे। डेटा बरकरार है, और फ़ाइल वितरण के लिए तैयार है। + +--- + +![Aspose.Cells का उपयोग करके Excel में रेंज से टेबल बनाने का स्क्रीनशॉट](image.png "रेंज से टेबल बनाने का स्क्रीनशॉट") + +*Image alt text:* **Aspose.Cells का उपयोग करके Excel में रेंज से टेबल बनाने का स्क्रीनशॉट** – यह दृश्य प्रमाण है कि टेबल फ़िल्टर ड्रॉपडाउन के बिना मौजूद है। + +--- + +## पूरा, चलाने योग्य उदाहरण + +नीचे पूरा प्रोग्राम दिया गया है जिसे आप कॉपी‑पेस्ट करके एक कंसोल एप्लिकेशन में उपयोग कर सकते हैं। इसमें ऊपर बताए गए सभी चरण शामिल हैं, साथ ही स्पष्टता के लिए कुछ अतिरिक्त टिप्पणियां भी हैं। + +```csharp +using System; +using Aspose.Cells; + +namespace AsposeTableDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add data to cells – this is the “add data to cells” part. + worksheet.Cells["A1"].PutValue("Name"); + worksheet.Cells["B1"].PutValue("Score"); + worksheet.Cells["A2"].PutValue("Alice"); + worksheet.Cells["B2"].PutValue(85); + worksheet.Cells["A3"].PutValue("Bob"); + worksheet.Cells["B3"].PutValue(92); + + // 3️⃣ Convert the range into a ListObject (i.e., create table from range). + int startRow = 0, startColumn = 0, rowCount = 3, columnCount = 2; + int listIdx = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); + ListObject table = worksheet.ListObjects[listIdx]; + table.ShowAutoFilter = true; // optional UI filter + + // 4️⃣ Remove the AutoFilter UI – “save excel without filter”. + table.AutoFilter = null; + table.ShowAutoFilter = false; + + // 5️⃣ Save the workbook. + string filePath = @"C:\Temp\NoAutoFilter.xlsx"; + workbook.Save(filePath); + + Console.WriteLine($"Workbook saved to {filePath}"); + } + } +} +``` + +प्रोग्राम चलाएँ, फिर `C:\Temp\NoAutoFilter.xlsx` खोलें। आपको एक सुंदर फ़ॉर्मेटेड टेबल, कोई फ़िल्टर एरो नहीं, और वह डेटा दिखाई देगा जो हमने डाला था। यह पूरी **create excel workbook c#** वर्कफ़्लो 60 लाइनों से कम कोड में है। + +--- + +## अक्सर पूछे जाने वाले प्रश्न और किनारे के मामलों + +**Q: यदि मेरा डेटा रेंज सतत नहीं है तो?** +A: Aspose.Cells को `ListObjects.Add` के लिए आयताकार रेंज चाहिए। यदि आपका डेटा असतत है, तो पहले एक अस्थायी रेंज बनाएं (जैसे, टुकड़ों को नई वर्कशीट में कॉपी करें) और फिर उस रेंज को बदलें। + +**Q: क्या मैं कस्टम टेबल स्टाइल लागू कर सकता हूँ?** +A: बिल्कुल। `ListObject` बनाने के बाद, `table.TableStyleType = TableStyleType.TableStyleMedium9;` सेट करें (या 65 बिल्ट‑इन स्टाइल्स में से कोई भी)। यह टेबल को आपके कॉरपोरेट ब्रांडिंग से मेल कराने का एक अच्छा तरीका है। + +**Q: मैं फ़िल्टर को रखूँ लेकिन एरो को छिपाऊँ तो कैसे?** +A: फ़िल्टर लॉजिक `table.AutoFilter` में रहता है। `ShowAutoFilter = false` सेट करने से केवल UI छिपता है; मूल फ़िल्टर बना रहता है। इसलिए आप बाद में प्रोग्रामेटिकली पंक्तियों को फ़िल्टर कर सकते हैं। + +**Q: बड़े डेटा सेट (10k+ पंक्तियों) के बारे में क्या?** +A: वही API काम करता है, लेकिन प्रदर्शन के लिए बड़े इन्सर्ट्स से पहले ऑटोमैटिक कैलकुलेशन (`workbook.CalcEngine = false`) बंद करने पर विचार करें, और बाद में इसे फिर से सक्षम करें। + +--- + +## समापन + +हमने अभी-अभी Aspose.Cells का उपयोग करके C# में **create table from range** कैसे किया, चरण‑दर‑चरण कवर किया है—**create excel workbook c#** से शुरू करके, **add data to cells** तक, फिर **convert range to ListObject**, और अंत में **save excel without filter**। कोड पूर्ण, चलाने योग्य, और प्रोडक्शन के लिए तैयार है। + +अब आप आगे खोज सकते हैं: + +- शीर्ष स्कोर को हाइलाइट करने के लिए कंडीशनल फ़ॉर्मेटिंग जोड़ना। +- `workbook.Save("Report.pdf", SaveFormat.Pdf);` के साथ वर्कबुक को PDF में एक्सपोर्ट करना। +- `table.Columns["Score"].DataBodyRange.Sort` का उपयोग करके प्रोग्रामेटिकली टेबल को सॉर्ट करना। + +विभिन्न डेटा सेट, टेबल स्टाइल्स, या यहाँ तक कि कई वर्कशीट्स के साथ प्रयोग करने में संकोच न करें। API इतनी लचीली है कि वह छोटे स्कोरबोर्ड से लेकर बड़े वित्तीय लेज़र तक सब कुछ संभाल सकती है। + +कोई प्रश्न है या कोई समस्या आती है? नीचे टिप्पणी छोड़ें या GitHub पर मुझे पिंग करें। कोडिंग का आनंद लें, और कच्ची रेंज को पॉलिश्ड 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/hongkong/net/conversion-to-pdf/_index.md b/cells/hongkong/net/conversion-to-pdf/_index.md index 37281744c2..98da35165a 100644 --- a/cells/hongkong/net/conversion-to-pdf/_index.md +++ b/cells/hongkong/net/conversion-to-pdf/_index.md @@ -34,6 +34,8 @@ 使用 Aspose.Cells for .NET 輕鬆將 Excel 電子表格轉換為 PDF!按照我們的逐步指南,獲得無縫體驗。 ### [在.NET中將圖表轉換為PDF](./convert-chart-to-pdf/) 透過本逐步指南了解如何使用 Aspose.Cells 在 .NET 中將 Excel 圖表轉換為 PDF!適合各個層級的程式設計師。 +### [使用 Aspose.Cells 將活頁簿另存為 PDF – 完整逐步指南](./save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/) +本指南詳細說明如何使用 Aspose.Cells 將 Excel 活頁簿完整轉換為 PDF,步驟清晰易懂。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hongkong/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md b/cells/hongkong/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md new file mode 100644 index 0000000000..35607a5a16 --- /dev/null +++ b/cells/hongkong/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-03-30 +description: 學習如何使用 Aspose.Cells 將工作簿另存為 PDF。本教學亦涵蓋將工作表匯出為 PDF、如何將 Excel 匯出為 PDF 以及從工作表建立 + PDF。 +draft: false +keywords: +- save workbook as pdf +- export worksheet to pdf +- how to export excel to pdf +- save excel as pdf +- create pdf from worksheet +language: zh-hant +og_description: 輕鬆將工作簿另存為 PDF。本指南說明如何將工作表匯出為 PDF、如何將 Excel 匯出為 PDF,以及如何使用 C# 從工作表建立 + PDF。 +og_title: 使用 Aspose.Cells 將工作簿另存為 PDF – 完整指南 +tags: +- Aspose.Cells +- C# +- PDF generation +title: 使用 Aspose.Cells 將工作簿另存為 PDF – 完整逐步指南 +url: /zh-hant/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 將工作簿另存為 PDF – 完整步驟指南 + +曾經需要 **將工作簿另存為 PDF**,卻不確定哪個函式庫能保持數字的精度嗎?你並不孤單。在許多專案中,我們必須把 Excel 資料轉成精緻的 PDF,而正確的做法能省下大量除錯時間。 + +在本教學中,我們將逐步示範使用 Aspose.Cells **將工作簿另存為 PDF** 的完整程式碼,並同時說明如何 **將工作表匯出為 PDF**、回答 *如何將 Excel 匯出為 PDF* 的問題,以及展示一種使用自訂精度設定 **從工作表建立 PDF** 的乾淨方式。 + +閱讀完本指南後,你將擁有一個可直接執行的 C# 主控台應用程式,產生只保留你關心的有效位數的 PDF。沒有多餘的雜訊,只有穩定、可投入生產的解決方案。 + +--- + +## 你將學到什麼 + +- 如何建立新的 `Workbook` 並鎖定第一個工作表。 +- **將工作簿另存為 PDF** 時,保持數值精度的正確方法。 +- 為什麼在 **將工作表匯出為 PDF** 時 `SignificantDigits` 屬性如此重要。 +- 嘗試 *如何將 Excel 匯出為 PDF* 時常見的陷阱以及避免方式。 +- 使用不同頁面選項快速 **將 Excel 另存為 PDF**,以及如何以程式方式 **從工作表建立 PDF**。 + +### 前置條件 + +- .NET 6.0 或更新版本(此程式碼同樣支援 .NET Framework 4.5 以上)。 +- 有效的 Aspose.Cells 授權(或測試用的免費臨時授權)。 +- Visual Studio 2022 或任何支援 C# 的 IDE。 + +如果上述條件都已備妥,讓我們開始吧。 + +--- + +## 步驟 1 – 安裝 Aspose.Cells 並初始化 Workbook + +首先,你需要 Aspose.Cells NuGet 套件。在專案資料夾的終端機執行: + +```bash +dotnet add package Aspose.Cells +``` + +套件安裝完成後,建立一個新的 `Workbook` 物件。這個物件就是之後會 **將工作簿另存為 PDF** 的核心。 + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialise a fresh workbook – think of it as a blank Excel file. + Workbook workbook = new Workbook(); + + // Grab the first worksheet (index 0). This is where we’ll put our data. + Worksheet worksheet = workbook.Worksheets[0]; +``` + +*為什麼要這麼做?* +建立 Workbook 能提供乾淨的畫布,且選取第一個工作表可確保操作的目標位置已知。若跳過此步,稍後執行 **將工作表匯出為 PDF** 時很容易遭遇 *null reference* 錯誤。 + +--- + +## 步驟 2 – 插入高精度資料 + +接下來,我們放入一個小數位超過實際想在 PDF 中顯示的數字,以示範 `SignificantDigits` 設定如何裁剪輸出。 + +```csharp + // Place a high‑precision number in cell A1. + worksheet.Cells["A1"].PutValue(1234.56789); +``` + +若此時直接呼叫 `workbook.Save("output.pdf")`,PDF 會顯示完整的 `1234.56789`。這在某些情況下沒問題,但在財務報表等需要四捨五入到特定位數的情境下,就必須自行處理。 + +--- + +## 步驟 3 – 設定 PDF 儲存選項 + +Aspose.Cells 透過 `PdfSaveOptions` 提供細緻的控制。我們關注的屬性是 `SignificantDigits`。將其設為 `4`,即可在 **將工作簿另存為 PDF** 時只保留四個有效位數。 + +```csharp + // Configure PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 // This trims the number to 1235 in the PDF. + }; +``` + +*為什麼要使用 `SignificantDigits`?* +在 **從工作表建立 PDF** 時,常需要遵守法規規定的四捨五入規則。此選項會自動完成四捨五入,免去手動格式化每個儲存格的麻煩。 + +--- + +## 步驟 4 – 使用選項匯出工作表為 PDF + +關鍵時刻到了:我們使用剛剛定義的選項真正 **將工作簿另存為 PDF**。 + +```csharp + // Save the workbook as a PDF using the configured options. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + } +} +``` + +執行程式後,會在專案的輸出資料夾產生 `SignificantDigits.pdf`。打開它,你會看到 A1 儲存格顯示 `1235` —— 數字已四捨五入為四個有效位數。 + +*重點說明*:`Save` 方法同時接受檔案路徑與 `PdfSaveOptions`。若省略選項,將回退至預設行為,可能無法滿足你的精度需求。 + +--- + +## 步驟 5 – 驗證輸出並排除常見問題 + +### 預期結果 + +- 名為 `SignificantDigits.pdf` 的單頁 PDF。 +- A1 儲存格顯示 `1235`(四個有效位數)。 +- 不會出現額外的工作表或隱藏內容。 + +### 常見問答 + +| 問題 | 解答 | +|----------|--------| +| **如果需要多個工作表該怎麼辦?** | 迭代 `workbook.Worksheets`,在分別儲存每張工作表時套用相同的 `PdfSaveOptions`,或在選項中設定 `OnePagePerSheet = true`。 | +| **能保留原始的數字格式嗎?** | 可以——將 `PdfSaveOptions.AllColumnsInOnePage = true`,讓 Excel 的格式規則自行處理,但 `SignificantDigits` 仍會覆寫數值精度。 | +| **這能套用在已存在的 .xlsx 檔案嗎?** | 完全可以。把 `new Workbook()` 改成 `new Workbook("input.xlsx")`,其餘程式碼保持不變。 | +| **如果 PDF 為空白該怎麼辦?** | 確認 Workbook 確實有資料,且儲存路徑可寫入。同時檢查 Aspose.Cells 授權是否正確;未授權的試用版可能會限制輸出。 | + +### 小技巧 + +若需要 **將 Excel 另存為 PDF** 時指定頁面方向,可在呼叫 `Save` 前加入 `pdfSaveOptions.PageSetup.Orientation = PageOrientation.Landscape;`。這個小調整常能避免事後手動調整 PDF。 + +--- + +## 變化寫法:匯出多張工作表或自訂頁面設定 + +### 一次匯出全部工作表 + +```csharp +PdfSaveOptions allSheetsOptions = new PdfSaveOptions +{ + SignificantDigits = 4, + OnePagePerSheet = true // Each worksheet gets its own page. +}; + +workbook.Save("AllSheets.pdf", allSheetsOptions); +``` + +### 匯出單一工作表為 PDF + +若只想 **將工作表匯出為 PDF** 某張特定工作表,可使用 `Worksheet` 物件的 `ToPdf` 方法: + +```csharp +Worksheet sheet = workbook.Worksheets["Sheet2"]; +sheet.ToPdf("Sheet2.pdf", pdfSaveOptions); +``` + +### 調整頁邊距 + +```csharp +pdfSaveOptions.PageSetup.TopMargin = 20; +pdfSaveOptions.PageSetup.BottomMargin = 20; +``` + +透過這些微調,你可以在不需後製的情況下,精細控制最終文件的版面。 + +--- + +## 完整範例程式 + +以下是可直接複製貼上的完整程式碼,已整合本文所有重點。存為 `Program.cs` 後執行 `dotnet run`。 + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and select the first worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Insert a high‑precision number. + worksheet.Cells["A1"].PutValue(1234.56789); + + // 3️⃣ Set PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 + }; + + // 4️⃣ Save the workbook as PDF. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + + // Optional: Export another sheet with custom settings. + // Worksheet sheet2 = workbook.Worksheets.Add("Report"); + // sheet2.Cells["B2"].PutValue(9876.54321); + // sheet2.ToPdf("Report.pdf", pdfSaveOptions); + } +} +``` + +**結果**:開啟 `SignificantDigits.pdf`,即可看到四捨五入後的值 `1235`。檔案大小適中,版面與原始 Excel 表格相符。 + +--- + +## 結語 + +我們剛剛示範了如何使用 Aspose.Cells **將工作簿另存為 PDF**,涵蓋從基礎設定到進階選項,如 **將工作表匯出為 PDF**、*如何將 Excel 匯出為 PDF*,以及 **從工作表建立 PDF** 的精確數值控制。 + +此方法簡潔,只需少量 C# 程式碼,即可跨 .NET 版本運作。接下來,你可以探索加入頁首/頁尾、嵌入圖片,或從範本產生 PDF——這些皆是建立在你現在掌握的基礎上。 + +有想法想嘗試嗎?例如為 PDF 設定密碼保護,或合併多個 PDF。這些都是自然的延伸,Aspose.Cells API 也都有支援。快去實驗,讓函式庫為你處理繁重的工作吧。 + +--- + +![save workbook as pdf screenshot](/images/save-workbook-as-pdf.png){alt="將工作簿另存為 PDF 的範例,顯示產生的 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/hongkong/net/converting-excel-files-to-other-formats/_index.md b/cells/hongkong/net/converting-excel-files-to-other-formats/_index.md index fb686812d2..0ea557db4f 100644 --- a/cells/hongkong/net/converting-excel-files-to-other-formats/_index.md +++ b/cells/hongkong/net/converting-excel-files-to-other-formats/_index.md @@ -66,6 +66,7 @@ Aspose.Cells for .NET 簡化了文件轉換,讓開發人員可以自動化流 描述:在此詳細教學中了解如何使用 Aspose.Cells for .NET 以程式設計方式追蹤文件轉換進度。 ### [在 .NET 中以程式設計方式追蹤 TIFF 文件轉換進度](./tracking-document-conversion-progress-for-tiff/) 透過我們的逐步指南,學習使用 Aspose.Cells for .NET 以程式設計方式追蹤 TIFF 轉換進度。增強您的文件管理技能。 +### [從 Excel 建立 PowerPoint – 步驟說明 C# 指南](./create-powerpoint-from-excel-step-by-step-c-guide/) {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hongkong/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md b/cells/hongkong/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md new file mode 100644 index 0000000000..68d48f9439 --- /dev/null +++ b/cells/hongkong/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md @@ -0,0 +1,251 @@ +--- +category: general +date: 2026-03-30 +description: 快速使用 Aspose.Cells 與 Aspose.Slides 從 Excel 建立 PowerPoint。了解如何將工作表匯出為影像,並以 + C# 將簡報儲存為 PPTX。 +draft: false +keywords: +- create powerpoint from excel +- convert excel to powerpoint +- export worksheet as image +- save presentation as pptx +- export excel chart as picture +language: zh-hant +og_description: 使用 Aspose 在 C# 中從 Excel 建立 PowerPoint。將工作表匯出為圖像,保持形狀可編輯,並將結果儲存為 PPTX。 +og_title: 從 Excel 建立 PowerPoint – 完整 C# 教學 +tags: +- Aspose +- C# +- Office Automation +title: 從 Excel 建立 PowerPoint – C# 逐步指南 +url: /zh-hant/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-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**,卻不確定哪個函式庫能讓圖表保持可編輯?你並不孤單。在許多報表情境下,你會想把試算表轉成投影片,同時保留之後調整文字方塊的能力。本指南將示範如何使用 Aspose.Cells 與 Aspose.Slides **將 Excel 轉換為 PowerPoint**,並說明如何 **將工作表匯出為影像**,最後 **將簡報儲存為 PPTX**。 + +我們會逐行說明程式碼,解釋每個設定背後的原因,甚至討論當工作簿包含複雜圖表且你想將其以圖片形式匯出時的處理方式。完成後,你將擁有一個可直接執行的 C# 主控台應用程式,將 `ShapesDemo.xlsx` 轉成 `Result.pptx` – 並保有可編輯的文字方塊與清晰的影像。 + +## 需要的環境 + +- .NET 6.0 或更新版本(API 亦支援 .NET Framework,但 .NET 6 為最佳選擇)。 +- **Aspose.Cells** 與 **Aspose.Slides** NuGet 套件(免費試用授權即可測試)。 +- 基本的 C# 語法概念 – 只要會寫 `Console.WriteLine` 就足夠。 + +不需要額外的 COM interop、伺服器上不必安裝 Office,也不必手動複製貼上圖片。一切皆以程式方式完成。 + +--- + +## 從 Excel 建立 PowerPoint – 載入活頁簿並設定匯出選項 + +首先,我們開啟 Excel 檔案,並告訴 Aspose.Cells 我們希望如何呈現工作表。`ImageOrPrintOptions` 物件就是魔法發生的地方:我們啟用 `ExportShapes` 與 `ExportEditableTextBoxes`,讓所有形狀(包括圖表)在投影片中保持 **可編輯**。 + +```csharp +using Aspose.Cells; +using Aspose.Slides; + +// 1️⃣ Load the Excel workbook +string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; +Workbook workbook = new Workbook(excelPath); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first sheet + +// 2️⃣ Configure image export – keep shapes editable +ImageOrPrintOptions imageOptions = new ImageOrPrintOptions +{ + OnePagePerSheet = true, // Export the whole sheet as one slide + ExportShapes = true, // Include shapes (charts, drawings) + ExportEditableTextBoxes = true // Make text boxes editable in PPTX +}; +``` + +**為什麼要設定這些旗標?** +- `OnePagePerSheet` 可防止工作表被切割成多張投影片 – 只會產生單一完整大小的圖片。 +- `ExportShapes` 告訴 Aspose.Cells 要將圖表 *以及* 向量形狀光柵化,保留外觀。 +- `ExportEditableTextBoxes` 是讓你在 PowerPoint 中雙擊文字方塊即可編輯文字,而不必再開啟 Excel 的祕密武器。 + +> **小技巧:** 若你只需要圖表的靜態圖片,可將 `ExportShapes = false`,之後使用 `ExportExcelChartAsPicture` 方法(見最後一節)。 + +--- + +## 從 Excel 轉換為 PowerPoint – 從工作表產生影像 + +設定完成後,我們將工作表轉成 `System.Drawing.Image`。`WorksheetToImageConverter` 會執行主要工作,套用我們剛才定義的設定。 + +```csharp +// 3️⃣ Convert the worksheet to an image using the options above +WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); +System.Drawing.Image sheetImage = converter.ConvertToImage(0, imageOptions); +``` + +`0` 參數代表第一頁(因為 `OnePagePerSheet` 只會有一頁)。產生的 `sheetImage` 會保留原始 DPI,確保投影片在高解析度螢幕上不會顯得模糊。 + +--- + +## 儲存簡報為 PPTX – 將影像插入投影片 + +接著,我們建立全新的 PowerPoint 檔案,新增一張投影片,並把位圖放上去。Aspose.Slides 會把圖片當作 *圖片框架*(picture frame)形狀,你之後可以像操作任何原生 PowerPoint 物件一樣調整大小或位置。 + +```csharp +// 4️⃣ Create a new PowerPoint presentation +Presentation presentation = new Presentation(); +ISlide slide = presentation.Slides[0]; // The default blank slide + +// Add the Excel‑derived image as a picture frame +slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, // Simple rectangle container + 0, 0, // Top‑left corner (0,0) + sheetImage.Width, // Width of the picture + sheetImage.Height, // Height of the picture + sheetImage); // The bitmap we generated +``` + +> **如果影像大於投影片尺寸該怎麼辦?** +> PowerPoint 會自動裁切超出投影片範圍的部分。快速解決方式是先縮放影像再插入: + +```csharp +float scale = Math.Min(presentation.SlideSize.Size.Width / (float)sheetImage.Width, + presentation.SlideSize.Size.Height / (float)sheetImage.Height); +int newWidth = (int)(sheetImage.Width * scale); +int newHeight = (int)(sheetImage.Height * scale); +``` + +然後把 `newWidth` 與 `newHeight` 傳給 `AddPictureFrame`。 + +--- + +## 匯出工作表為影像 – 儲存 PPTX 檔案 + +最後,我們把簡報寫入磁碟。`SaveFormat.Pptx` 旗標保證使用現代的 OpenXML 格式,適用於所有近期版本的 PowerPoint。 + +```csharp +// 5️⃣ Save the presentation as a PPTX file +string pptxPath = "YOUR_DIRECTORY/Result.pptx"; +presentation.Save(pptxPath, SaveFormat.Pptx); +``` + +開啟 `Result.pptx` 後,你會看到只有一張投影片,外觀與 Excel 工作表完全相同,同時仍可直接在 PowerPoint 中點擊任意文字方塊進行編輯。 + +--- + +## 匯出 Excel 圖表為圖片 – 當需要光柵圖時 + +有時你不需要可編輯的形狀,只要一張高品質 PNG 圖表即可。Aspose.Cells 能夠將特定圖表匯出為影像,而不必轉換整個工作表: + +```csharp +// Example: Export the first chart on the sheet as a PNG +int chartIndex = 0; // Adjust if you have multiple charts +Chart chart = worksheet.Charts[chartIndex]; +ImageOrPrintOptions chartOptions = new ImageOrPrintOptions +{ + ImageFormat = ImageFormat.Png, + OnePagePerSheet = false +}; +chart.ToImage("chart.png", chartOptions); +``` + +之後你可以像插入 `sheetImage` 那樣把 `chart.png` 放入投影片。此作法可減少 PPTX 檔案大小,且在不需要周圍資料時特別有用。 + +--- + +## 常見問題與避免方式 + +| 問題 | 為什麼會發生 | 解決方法 | +|------|--------------|----------| +| **文字模糊** | 匯出時 DPI 較低(預設 96)。 | 在轉換前設定 `imageOptions.Dpi = 300;` | +| **形狀消失** | `ExportShapes` 為 `false`。 | 需要可編輯圖形時,確保 `ExportShapes = true` | +| **投影片尺寸不符** | 影像大於投影片尺寸。 | 縮放影像(參見程式碼片段)或透過 `presentation.SlideSize` 調整投影片大小 | +| **授權例外** | 使用試用版未正確啟用授權。 | 在 `Main` 開頭呼叫 `License license = new License(); license.SetLicense("Aspose.Total.lic");` | + +--- + +## 完整範例(可直接複製貼上) + +以下是完整程式碼,可直接放入新的主控台專案。將 `YOUR_DIRECTORY` 替換為放置 Excel 檔案的資料夾路徑。 + +```csharp +using System; +using Aspose.Cells; +using Aspose.Slides; +using System.Drawing; + +namespace ExcelToPowerPointDemo +{ + class Program + { + static void Main(string[] args) + { + // ----------------------------------------------------------------- + // 1️⃣ Load the Excel workbook + // ----------------------------------------------------------------- + string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; + Workbook workbook = new Workbook(excelPath); + Worksheet worksheet = workbook.Worksheets[0]; + + // ----------------------------------------------------------------- + // 2️⃣ Set up export options – keep shapes editable + // ----------------------------------------------------------------- + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + OnePagePerSheet = true, + ExportShapes = true, + ExportEditableTextBoxes = true, + Dpi = 300 // High‑resolution output + }; + + // ----------------------------------------------------------------- + // 3️⃣ Convert worksheet to an image + // ----------------------------------------------------------------- + WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); + Image sheetImage = converter.ConvertToImage(0, imageOptions); + + // ----------------------------------------------------------------- + // 4️⃣ Create PowerPoint and add the image as a slide + // ----------------------------------------------------------------- + Presentation presentation = new Presentation(); + ISlide slide = presentation.Slides[0]; + slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, + 0, 0, + sheetImage.Width, + sheetImage.Height, + sheetImage); + + // ----------------------------------------------------------------- + // 5️⃣ Save the PPTX file + // ----------------------------------------------------------------- + string pptxPath = "YOUR_DIRECTORY/Result.pptx"; + presentation.Save(pptxPath, SaveFormat.Pptx); + + Console.WriteLine("✅ PowerPoint created successfully at: " + pptxPath); + } + } +} +``` + +**預期輸出:** +執行程式會印出 `✅ PowerPoint created successfully at: YOUR_DIRECTORY/Result.pptx`。開啟 PPTX 後會看到單一投影片,與原始 Excel 工作表鏡像,且文字方塊仍可編輯。 + +--- + +## 重點回顧與後續步驟 + +你現在已掌握如何使用 Aspose 強大的 API **從 Excel 建立 PowerPoint**、**將工作表匯出為影像**,以及 **以 PPTX 格式儲存簡報**,同時保留可編輯性。同樣的模式也適用於多工作表的活頁簿——只要遍歷 `workbook.Worksheets`,為每張工作表新增一張投影片即可。 + +**接下來可以探索的方向?** + +- **批次轉換:** 迴圈處理資料夾內的多個 Excel 檔案,為每個檔案產生投影片套件。 +- **動態版面配置:** 使用 `slide.LayoutSlide` 套用預先設計好的 PowerPoint 範本。 +- **僅圖表匯出:** 結合「匯出 Excel 圖表為圖片」的程式碼,搭配投影片佔位符,打造更精簡的簡報。 +- **進階樣式:** 透過 Aspose.Slides 套用自訂投影片背景、過場動畫或動態效果。 + +盡情實驗吧——調整 DPI、將 `ShapeType.Ellipse` 換成圓形圖片框,甚至在同一投影片中嵌入多張圖片。只要掌握程式化的控制權,創意的可能性無限。 + +{{< /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/hongkong/net/document-properties/_index.md b/cells/hongkong/net/document-properties/_index.md index 9a90bbe295..81d086f58c 100644 --- a/cells/hongkong/net/document-properties/_index.md +++ b/cells/hongkong/net/document-properties/_index.md @@ -35,6 +35,8 @@ Excel 中的文件屬性就像是關於文件的元資料一樣。想像一下 透過我們的逐步指南了解如何使用 Aspose.Cells for .NET 存取 Excel 中的文件屬性。有效率地管理您的電子表格。 ### [在 .NET 中新增文件屬性](./adding-document-properties/) 透過本詳細的逐步指南了解如何使用 Aspose.Cells for .NET 在 Excel 中新增文件屬性。 +### [如何在 C# 中使用自訂屬性保存 XLSB – 步驟指南](./how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/) +透過本分步指南了解如何在 C# 中使用 Aspose.Cells for .NET 將 XLSB 檔案保存並設定自訂屬性。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hongkong/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md b/cells/hongkong/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md new file mode 100644 index 0000000000..d560199111 --- /dev/null +++ b/cells/hongkong/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md @@ -0,0 +1,234 @@ +--- +category: general +date: 2026-03-30 +description: 學習如何在 C# 中儲存 XLSB,同時加入自訂屬性、讀取回來,並精通使用 Aspose.Cells 將活頁簿儲存為 XLSB。完整程式碼已附上。 +draft: false +keywords: +- how to save xlsb +- add custom property +- how to add property +- how to read property +- save workbook as xlsb +language: zh-hant +og_description: 如何在 C# 中儲存 XLSB?本教學示範如何新增自訂屬性、讀取該屬性,並使用 Aspose.Cells 將活頁簿儲存為 XLSB。 +og_title: 如何在 C# 中儲存帶有自訂屬性的 XLSB – 完整指南 +tags: +- Aspose.Cells +- C# +- Excel Automation +title: 如何在 C# 中儲存帶有自訂屬性的 XLSB – 步驟指南 +url: /zh-hant/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何在 C# 中儲存 XLSB 並加入自訂屬性 – 步驟指南 + +有沒有想過 **如何儲存 XLSB** 同時在工作表上保留額外的中繼資料?你並非唯一有此需求的人。在許多企業情境下,你需要一個二進位的 Excel 檔案,同時攜帶自己的鍵/值對——例如合約編號、處理旗標或版本標籤。 + +好消息是 Aspose.Cells 讓這件事變得輕而易舉。在本指南中,你將看到如何新增自訂屬性、將其持久化,然後讀回,同時 **將活頁簿儲存為 XLSB**。不會有模糊的說明,只有完整、可執行的範例,讓你今天就能直接放入專案中。 + +## 你將學會的內容 + +- 從頭開始建立的全新 `.xlsb` 檔案。 +- 能夠 **新增自訂屬性** 到工作表。 +- 示範 **如何讀取屬性** 的程式碼,檔案重新載入後使用。 +- 關於在 **將活頁簿儲存為 XLSB** 時可能遇到的陷阱提示。 + +> **先決條件:** .NET 6+(或 .NET Framework 4.6+)、Visual Studio(或任何 C# IDE),以及透過 NuGet 安裝的 Aspose.Cells for .NET 套件。除此之外無需其他。 + +--- + +## 步驟 1:設定專案並建立新活頁簿 + +首先,先取得一個乾淨的活頁簿物件。 + +```csharp +using Aspose.Cells; +using System; + +// Initialize a new workbook; this will be an in‑memory Excel file. +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0) – it’s created automatically. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +*為什麼這很重要:* `Workbook` 是 Aspose.Cells 所有操作的入口。從全新實例開始,可避免任何隱藏狀態在之後破壞你的自訂中繼資料。 + +--- + +## 步驟 2:**新增自訂屬性** 到工作表 + +現在我們要在此工作表上附加一個僅屬於此工作表的鍵/值對。 + +```csharp +// Add a user‑defined property called "MyProperty" with the value "CustomValue". +worksheet.CustomProperties.Add("MyProperty", "CustomValue"); +``` + +> **專業提示:** 屬性名稱區分大小寫。如果之後嘗試取得 `"myproperty"`,會拋出 `KeyNotFoundException`。請從一開始就遵循命名慣例——camelCase 或 PascalCase。 + +--- + +## 步驟 3:**將活頁簿儲存為 XLSB** – 持久化屬性 + +當你將活頁簿寫入二進位 XLSB 格式時,魔法就會發生。 + +```csharp +// Define the output path. Adjust the folder to something writable on your machine. +string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + +// Save the workbook; the custom property travels with the file. +workbook.Save(outputPath, SaveFormat.Xlsb); +``` + +*你實際上在做什麼:* `SaveFormat.Xlsb` 列舉告訴 Aspose.Cells 輸出二進位的 Excel 檔案(開啟更快、磁碟佔用更小)。所有工作表層級的自訂屬性會自動序列化——不需額外步驟。 + +--- + +## 步驟 4:重新載入檔案並 **讀取屬性** + +讓我們證明屬性在往返過程中仍然存在。 + +```csharp +// Load the just‑saved XLSB file back into memory. +Workbook reloadedWorkbook = new Workbook(outputPath); + +// Access the same worksheet (index 0) and fetch the property value. +string customValue = reloadedWorkbook.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); +``` + +如果一切順利,`customValue` 現在會保存 `"CustomValue"`。 + +--- + +## 步驟 5:驗證結果 – 快速 Console 輸出 + +在開發過程中,一個小小的檢查有助於驗證。 + +```csharp +Console.WriteLine($"Custom property value: {customValue}"); +``` + +執行程式後應會印出: + +``` +Custom property value: CustomValue +``` + +看到這行文字代表你已成功掌握 **如何儲存 XLSB**、**新增自訂屬性**,以及 **如何讀取屬性**——全部在一個整潔的流程中。 + +--- + +## 完整可執行範例(直接複製貼上) + +以下是完整程式碼。將它貼到新的 Console App 中,按 **F5**,即可在 Console 中看到屬性值的確認。 + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // 1️⃣ Create a new workbook and get its first sheet + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // 2️⃣ Add a custom property (key/value) to the sheet + // ------------------------------------------------- + worksheet.CustomProperties.Add("MyProperty", "CustomValue"); + + // ------------------------------------------------- + // 3️⃣ Save the workbook as XLSB – the property is kept + // ------------------------------------------------- + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(outputPath, SaveFormat.Xlsb); + + // ------------------------------------------------- + // 4️⃣ Reload the saved file to demonstrate persistence + // ------------------------------------------------- + Workbook reloaded = new Workbook(outputPath); + + // ------------------------------------------------- + // 5️⃣ Retrieve the custom property's value + // ------------------------------------------------- + string customValue = reloaded.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); + + // ------------------------------------------------- + // 6️⃣ Display the retrieved value (optional) + // ------------------------------------------------- + Console.WriteLine($"Custom property value: {customValue}"); + } +} +``` + +> **請記得:** 將 `outputPath` 改成你有寫入權限的資料夾。如果你使用 Linux/macOS,請使用類似 `"/tmp/WithCustomProp.xlsb"` 的路徑。 + +--- + +## 常見問題與邊緣案例 + +### 如果屬性已存在會怎樣? + +`Add` 若使用已存在的鍵會拋出 `ArgumentException`。如果不確定,可先使用 `ContainsKey`,或將呼叫包在 `try/catch` 中。 + +```csharp +if (!worksheet.CustomProperties.ContainsKey("MyProperty")) +{ + worksheet.CustomProperties.Add("MyProperty", "AnotherValue"); +} +``` + +### 我可以儲存非字串值嗎? + +當然可以。`Value` 屬性接受任何 `object`。對於數字、日期或布林,只要傳入相應的型別——Aspose.Cells 會在讀回時處理轉換。 + +### 轉換成 XLSX 時屬性會保留嗎? + +會。自訂屬性是工作表 XML 表示的一部份,因此在 XLSX、XLS 與 XLSB 格式之間都會保留。 + +### 如何 **新增屬性** 到多個工作表? + +遍歷 `Worksheets` 集合,對每個需要的工作表呼叫相同的 `CustomProperties.Add`。 + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + ws.CustomProperties.Add("ExportedBy", "MyApp"); +} +``` + +### 大量 **將活頁簿儲存為 XLSB** 時的效能提示 + +如果要產生數百個檔案,請重複使用同一個 `Workbook` 實例,並在每次儲存後呼叫 `Clear` 釋放記憶體。若不需要在載入時計算公式,也可將 `Workbook.Settings.CalculateFormulaOnOpen = false` 設為 `false`。 + +--- + +## 結論 + +你現在已經了解如何在 C# 中 **儲存 XLSB**,同時使用 Aspose.Cells 嵌入並稍後讀取自訂屬性。完整的解決方案——建立活頁簿、加入屬性、使用 **將活頁簿儲存為 XLSB** 進行持久化、重新載入並讀取值——不超過 50 行程式碼。 + +接下來你可以探索: + +- 為每個工作表加入多個自訂屬性。 +- 透過 JSON 字串儲存複雜物件。 +- 為 XLSB 檔案加密以提升安全性。 + +試試這些想法,你將迅速成為團隊中 Excel 自動化的首選人物。有任何問題或特殊情境,請在下方留言,祝編程愉快! + +![如何儲存帶有自訂屬性的 XLSB](/images/how-to-save-xlsb.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/hongkong/net/excel-copy-worksheet/_index.md b/cells/hongkong/net/excel-copy-worksheet/_index.md index baed17665e..04cf019659 100644 --- a/cells/hongkong/net/excel-copy-worksheet/_index.md +++ b/cells/hongkong/net/excel-copy-worksheet/_index.md @@ -42,6 +42,7 @@ Aspose.Cells for .NET 提供了強大的操作 Excel 檔案的功能,包括複 | [Excel 複製工作表](./excel-copy-worksheet/) |透過本簡單易懂的逐步指南,了解如何使用 Aspose.Cells for .NET 複製 Excel 工作表。非常適合希望自動執行 Excel 任務的 .NET 開發人員。 | | [Excel 在工作簿之間複製工作表](./excel-copy-worksheets-between-workbooks/) |了解如何使用 Aspose.Cells for .NET 在 Excel 工作簿之間複製工作表。帶有程式碼範例的逐步指南,可簡化您的電子表格管理。 | | [Excel 行動工作表](./excel-move-worksheet/) |在我們的逐步指南中學習如何使用 Aspose.Cells for .NET 在 Excel 中移動工作表。掌握 Excel 程式設計的藝術。 | +| [使用 Aspose.Cells 的 C# 複製工作表完整指南](./how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/) |本完整指南說明如何在 C# 中使用 Aspose.Cells 複製工作表,提供詳細程式碼範例與步驟說明。 | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hongkong/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md b/cells/hongkong/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md new file mode 100644 index 0000000000..b345c584ec --- /dev/null +++ b/cells/hongkong/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md @@ -0,0 +1,264 @@ +--- +category: general +date: 2026-03-30 +description: 如何在 C# 中使用 Aspose.Cells 複製工作表 – 步驟說明,涵蓋複製儲存格範圍、在工作表之間複製欄位、複製工作表樞紐分析表以及新增工作表程式碼。 +draft: false +keywords: +- how to copy worksheet +- copy cell range +- copy columns between sheets +- copy worksheet pivot table +- add new worksheet code +language: zh-hant +og_description: 學習如何在 C# 中使用 Aspose.Cells 複製工作表。本指南展示了複製儲存格範圍、保留樞紐分析表、在工作表之間複製欄位,以及新增工作表的程式碼。 +og_title: 如何在 C# 中複製工作表 – 完整 Aspose.Cells 教程 +tags: +- Aspose.Cells +- C# +- Excel Automation +title: 如何在 C# 中使用 Aspose.Cells 複製工作表 – 完整指南 +url: /zh-hant/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何在 C# 使用 Aspose.Cells 複製工作表 – 完整指南 + +曾經想過在 C# 中 **how to copy worksheet** 而不遺失任何樞紐分析表或公式嗎?你並不孤單——許多開發者在需要複製工作表同時保留所有功能時會卡關。在本教學中,我們將一步步示範一個實用的端到端解決方案,不僅能複製資料,還能保留 **copy worksheet pivot table**、處理 **copy cell range**,並展示你需要的 **add new worksheet code**。 + +我們將涵蓋從載入來源活頁簿到儲存目標檔案的全部步驟,讓你能在工作表之間 **copy columns between sheets**、保留物件,並保持程式碼整潔。沒有模糊的說明,只有完整、可直接執行的範例,今天就能放入你的專案。 + +## 本教學涵蓋內容 + +- 使用 Aspose.Cells 載入現有的 Excel 檔案 +- 使用 **add new worksheet code** 建立目標工作表 +- 定義包含樞紐分析表的 **copy cell range** +- 設定 **CopyOptions** 以保留圖表、公式與樞紐分析表 +- 執行 **copy columns between sheets**,以列為單位的精確度 +- 儲存結果並驗證工作表已正確複製 + +閱讀完本指南後,你將能自信地回答「how to copy worksheet」這個問題,無論是自動化報表或是打造以試算表為基礎的 UI。 + +## 複製工作表概述 + +在深入程式碼之前,先概述高層次的流程。把它想像成一道食譜: + +1. **Load** 來源活頁簿 (`Source.xlsx`)。 +2. **Add** 一個新的工作表以容納複製內容 (`add new worksheet code`)。 +3. **Define** 想要複製的區域 (`copy cell range`)。 +4. **Configure** 複製選項以確保樞紐分析表存活 (`copy worksheet pivot table`)。 +5. **Copy** 列與欄 (`copy columns between sheets`)。 +6. **Save** 新的活頁簿 (`Destination.xlsx`)。 + +就是這樣——六個步驟,沒有魔法。每個步驟在下方都有程式碼片段與背後的原理說明。 + +## 步驟 1 – 載入來源活頁簿 + +首先,你需要一個指向欲複製檔案的 `Workbook` 實例。此步驟很重要,因為 Aspose.Cells 直接操作檔案系統,而非 Office UI。 + +```csharp +using Aspose.Cells; + +// Path to the original file +string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; +string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + +// Load the workbook – this is the starting point for how to copy worksheet +Workbook workbook = new Workbook(sourcePath); +``` + +*為什麼這很重要:* 載入檔案會在記憶體中建立每個工作表、儲存格與物件的表示。若沒有這一步,就沒有可複製的內容,之後任何 `add new worksheet code` 的嘗試都會失敗,因為來源資料不存在。 + +## 步驟 2 – 新增工作表(add new worksheet code) + +現在我們需要一個地方貼上複製的資料。這正是 **add new worksheet code** 發揮作用的地方。工作表名稱可以自行命名;此處我們稱之為 `"Copy"`。 + +```csharp +// Grab the first worksheet (the one we want to copy) +Worksheet sourceSheet = workbook.Worksheets[0]; + +// Add a fresh worksheet to receive the copy +Worksheet copySheet = workbook.Worksheets.Add("Copy"); +``` + +*小技巧:* 若要複製多個工作表,請在迴圈中呼叫 `Worksheets.Add`,並為每個工作表指定唯一名稱。如此可避免名稱衝突,保持活頁簿整潔。 + +## 步驟 3 – 定義複製儲存格範圍 + +一個 **copy cell range** 告訴 Aspose.Cells 要複製哪些列與欄。在許多實務情境中,範圍會包含樞紐分析表,因此必須精確指定。 + +```csharp +// Define the area that contains the pivot table (A1:G20) +CellArea sourceRange = new CellArea +{ + StartRow = 0, // Row 1 (zero‑based) + StartColumn = 0, // Column A + EndRow = 19, // Row 20 + EndColumn = 6 // Column G +}; + +// Destination range – we start at the same top‑left corner +CellArea destinationRange = new CellArea +{ + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 +}; +``` + +*為什麼需要這一步:* 明確指定範圍可避免複製整張工作表(可能會浪費資源),同時確保樞紐分析表位於複製區域內。這就是在只需工作表部分內容時 **how to copy worksheet** 的核心。 + +## 步驟 4 – 設定複製選項(preserve copy worksheet pivot table) + +Aspose.Cells 提供 `CopyOptions` 物件,可控制貼上的內容。為了保留樞紐分析表、圖表與公式,我們將 `PasteType.All` 設為貼上類型,並啟用 `PasteSpecial`。 + +```csharp +CopyOptions copyOptions = new CopyOptions +{ + PasteType = PasteType.All, // Copy everything: values, formats, objects + PasteSpecial = true // Enable special paste to retain pivot tables +}; +``` + +*說明:* `PasteType.All` 是最全面的選項,而 `PasteSpecial` 讓引擎正確處理複雜物件(如樞紐分析表)。忽略此步驟是常見的陷阱,會導致複製的工作表失去互動功能。 + +## 步驟 5 – 複製列與欄(copy columns between sheets) + +現在進入重點:實際搬移資料。我們將使用 `CopyRows` 與 `CopyColumns` 來處理 **copy columns between sheets**。兩者同時使用可確保合併儲存格與欄寬被保留。 + +```csharp +// Copy rows from the source to the destination sheet +sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + +// Copy columns from the source to the destination sheet +sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); +``` + +*發生了什麼:* `CopyRows` 逐列搬移資料,`CopyColumns` 則逐欄搬移。兩者同時執行可保證整個矩形區塊被完整複製,這在需要 **copy columns between sheets**、且兩張工作表的欄寬或隱藏欄不同時尤為重要。 + +## 步驟 6 – 儲存活頁簿 + +最後,將變更寫回磁碟。此步驟完成 **how to copy worksheet** 的流程。 + +```csharp +// Save the workbook with the newly copied sheet +workbook.Save(destinationPath); +``` + +*驗證提示:* 開啟 `Destination.xlsx`,確認 `"Copy"` 工作表與原始檔案完全相同,樞紐分析表可正常運作,且欄寬相符。如有異常,請重新檢查 `CopyOptions` 設定。 + +## 邊緣情況與常見變化 + +### 複製多個工作表 + +若需複製多張工作表,請將上述邏輯包在 `foreach` 迴圈中: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + Worksheet newWs = workbook.Worksheets.Add(ws.Name + "_Copy"); + // Re‑use sourceRange/destinationRange or calculate per sheet + // Then call CopyRows/CopyColumns as shown earlier +} +``` + +### 跨不同活頁簿保留公式 + +當來源與目標活頁簿的命名範圍不同時,請將 `copyOptions` 設為 `PasteType.Formulas`,同時保留 `All`: + +```csharp +copyOptions.PasteType = PasteType.All | PasteType.Formulas; +``` + +### 大範圍與效能 + +對於龐大資料集(數十萬列),可考慮僅使用 `CopyRows`,若欄寬不重要則省略 `CopyColumns`。這樣可節省數秒的執行時間。 + +## 完整範例程式 + +以下是完整、可直接執行的程式範例,涵蓋前述所有內容。將其貼入 Console 應用程式,調整檔案路徑後,按下 **F5**。 + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // ---------- Step 1: Load the source workbook ---------- + string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; + string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + Workbook workbook = new Workbook(sourcePath); + + // ---------- Step 2: Add a new worksheet (add new worksheet code) ---------- + Worksheet sourceSheet = workbook.Worksheets[0]; + Worksheet copySheet = workbook.Worksheets.Add("Copy"); + + // ---------- Step 3: Define the copy cell range ---------- + CellArea sourceRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + CellArea destinationRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + + // ---------- Step 4: Set copy options (preserve copy worksheet pivot table) ---------- + CopyOptions copyOptions = new CopyOptions + { + PasteType = PasteType.All, + PasteSpecial = true + }; + + // ---------- Step 5: Copy rows and columns (copy columns between sheets) ---------- + sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + + sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); + + // ---------- Step 6: Save the workbook ---------- + workbook.Save(destinationPath); + } +} +``` + +**預期結果:** 開啟 `Destination.xlsx` 後會看到名為 **Copy** 的工作表,與 `Source.xlsx` 的第一張工作表完全相同——包括所有樞紐分析表、格式與欄寬。原始檔案保持不變。 + +## 常見問答 + +**Q: 這能用於 Excel 2019 建立的 .xlsx 檔案嗎?** +A: 當然可以。Aspose.Cells 支援所有現代 Excel 格式,因此相同程式碼同樣適用於 `.xlsx`、`.xlsm`,甚至舊版的 `.xls` 檔案 + +{{< /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/hongkong/net/excel-custom-number-date-formatting/_index.md b/cells/hongkong/net/excel-custom-number-date-formatting/_index.md index e74b889f8b..96e476cc39 100644 --- a/cells/hongkong/net/excel-custom-number-date-formatting/_index.md +++ b/cells/hongkong/net/excel-custom-number-date-formatting/_index.md @@ -36,6 +36,10 @@ 透過本逐步教學學習如何使用 Aspose.Cells for .NET 根據自訂數字格式檢查 Excel 儲存格值。 ### [將資料匯入 Excel 工作表時指定公式字段](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) 在本詳細教學中了解如何使用 Aspose.Cells for .NET 將資料匯入具有指定公式欄位的 Excel 工作表。 +### [在 C# 中使用分隔符格式化數字 – 完整 Aspose.Cells 指南](./format-number-with-separator-in-c-complete-aspose-cells-guid/) +本教學說明如何在 C# 使用 Aspose.Cells 為數字加入千位分隔符,提升 Excel 報表的可讀性。 +### [從 Excel 格式化 ISO 日期 – 完整 C# 指南](./format-date-iso-from-excel-complete-c-guide/) +本教學說明如何在 C# 使用 Aspose.Cells 從 Excel 轉換並格式化為 ISO 日期,提升資料一致性。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hongkong/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md b/cells/hongkong/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..5392a116ea --- /dev/null +++ b/cells/hongkong/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md @@ -0,0 +1,200 @@ +--- +category: general +date: 2026-03-30 +description: 學習在使用 Aspose.Cells 於 C# 讀取 Excel 日期時間值時,如何將日期格式化為 ISO,並提取 Excel 日期時間資料。 +draft: false +keywords: +- format date iso +- read excel datetime +- extract datetime excel +- Aspose.Cells date parsing +- Japanese era dates +language: zh-hant +og_description: 使用 Aspose.Cells 從 Excel 資料格式化 ISO 日期。本指南說明如何讀取 Excel 日期時間、提取日期時間值,並輸出 + ISO 日期。 +og_title: 從 Excel 轉換 ISO 日期格式 – C# 逐步教學 +tags: +- C# +- Excel +- DateTime +- Aspose.Cells +title: 從 Excel 轉換 ISO 日期格式 – 完整 C# 指南 +url: /zh-hant/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 從 Excel 格式化 ISO 日期 – 完整 C# 指南 + +有沒有需要在從 Excel 工作表中提取日期時 **format date iso**?也許你正在處理日本年號日期,或只是想要一個乾淨的 `yyyy‑MM‑dd` 字串作為 API 載荷。在本教學中,你將會看到如何 **read Excel datetime** 儲存格、**extract datetime Excel** 值,並將它們轉換成 ISO‑8601 格式——不需要猜測。 + +我們將逐步示範一個使用 Aspose.Cells 的實務範例,說明每一行程式碼的意義,並展示最終輸出,你可以直接複製貼上到你的專案中。完成後,你將能處理像「令和3年5月1日」這樣的特殊年號字串,產生標準的 ISO 日期,隨時可用於資料庫、JSON 或任何需要的地方。 + +## 前置條件 + +- .NET 6.0 或更新版本(此程式碼亦可於 .NET Framework 使用) +- Aspose.Cells for .NET(免費試用版或授權版) +- 具備 C# 與 Excel 基本概念 +- Visual Studio 或任何你喜歡的 C# 編輯器 + +除了 Aspose.Cells 之外不需要其他 NuGet 套件,因此設定相當簡單。 + +--- + +## 步驟 1:建立 Workbook 並鎖定第一個工作表 + +首先,你需要建立一個新的 `Workbook` 物件。它會在記憶體中產生 Excel 檔案的表示,你可以對其進行操作或讀取。 + +```csharp +using Aspose.Cells; +using System.Globalization; + +// Step 1: Initialize a new workbook and grab the first worksheet +Workbook workbook = new Workbook(); // creates an empty .xlsx +Worksheet worksheet = workbook.Worksheets[0]; // the default sheet is "Sheet1" +``` + +*為什麼這很重要:* +以程式方式建立 Workbook 可避免在測試期間處理實體檔案。它也確保工作表參考始終有效——在稍後嘗試 **read Excel datetime** 時不會出現 null 參考的意外。 + +## 步驟 2:將日本年號日期字串寫入儲存格 + +我們的目標是示範解析非公曆日期。我們會將年號字串直接寫入儲存格 **A1**。 + +```csharp +// Step 2: Insert a Japanese era date string into cell A1 +worksheet.Cells["A1"].PutValue("令和3年5月1日"); +``` + +*小技巧:* 如果你是從現有的工作簿中提取資料,你可以省略 `PutValue` 呼叫,直接參考已包含日期的儲存格。關鍵是該儲存格保存的是一個 **string**,代表日本陰陽曆的日期。 + +## 步驟 3:設定能理解日本陰陽曆的 Culture + +.NET 的 `CultureInfo` 類別讓你指定日期的解析方式。透過將預設的 Gregorian calendar 換成 `JapaneseLunisolarCalendar`,即可為解析器提供所需的上下文。 + +```csharp +// Step 3: Set up a culture using the Japanese lunisolar calendar +CultureInfo japaneseCulture = new CultureInfo("ja-JP"); +japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); +``` + +*為什麼這麼做:* +如果你使用預設 Culture 嘗試解析「令和3年5月1日」,.NET 會拋出 `FormatException`。改用陰陽曆可讓執行階段精確地將「令和3年」(Reiwa era 第 3 年)映射到公曆 2021 年。 + +## 步驟 4:使用已設定的 Culture 解析儲存格值為 `DateTime` + +現在進入操作的核心——將年號字串轉換為正確的 `DateTime` 物件。Aspose.Cells 提供了接受 `CultureInfo` 的便利 `GetDateTime` 重載。 + +```csharp +// Step 4: Retrieve the cell value as a DateTime, respecting the Japanese culture +DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); +``` + +*底層發生了什麼:* +`GetDateTime` 讀取原始字串,套用提供的 Culture 的曆法規則,並回傳一個在公曆中代表同一時間點的 `DateTime`。此時你已經 **extract datetime Excel** 成為 .NET 可處理的形式。 + +## 步驟 5:以 ISO 8601 格式輸出解析後的日期 + +最後,我們將 `DateTime` 格式化為 ISO 字串—`yyyy‑MM‑dd`—這在 API、資料庫與前端框架中皆被普遍接受。 + +```csharp +// Step 5: Print the date in ISO format (e.g., 2021-05-01) +Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // Output: 2021-05-01 +``` + +*為什麼使用 ISO?* +ISO 8601 消除歧義。「05/01/2021」可能是 5 月 1 日或 1 月 5 日,視語系而定。`2021-05-01` 則一目了然,這也是我們在幾乎所有整合情境中 **format date iso** 的原因。 + +## 完整範例程式 + +以下是完整、可直接執行的程式。將它複製到 Console App 專案中,加入 Aspose.Cells 參考,然後按 **F5**。 + +```csharp +using Aspose.Cells; +using System; +using System.Globalization; + +class Program +{ + static void Main() + { + // 1️⃣ Create workbook and select the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("令和3年5月1日"); + + // 3️⃣ Set up Japanese lunisolar culture + CultureInfo japaneseCulture = new CultureInfo("ja-JP"); + japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); + + // 4️⃣ Parse the cell value as DateTime using the culture + DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); + + // 5️⃣ Output the date in ISO format + Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // 2021-05-01 + } +} +``` + +**預期輸出** + +``` +2021-05-01 +``` + +執行一次,你會看到 ISO 格式的日期印在主控台上。這就是從 **read Excel datetime** 到 **format date iso** 的完整流程。 + +## 處理常見邊緣情況 + +### 1. 包含真實 Excel 日期數值的儲存格 + +有時 Excel 會以序列號儲存日期(例如 `44204`)。此時不需要 Culture,只需呼叫不帶參數的 `GetDateTime()`: + +```csharp +DateTime serialDate = worksheet.Cells["B2"].GetDateTime(); // B2 holds a numeric date +Console.WriteLine(serialDate.ToString("yyyy-MM-dd")); +``` + +### 2. 空白或無效的儲存格 + +如果儲存格為空或包含無法解析的字串,`GetDateTime` 會拋出例外。請將呼叫包在 `try/catch` 中,或先檢查 `IsDateTime`: + +```csharp +if (worksheet.Cells["C3"].Type == CellValueType.IsDateTime) +{ + DateTime safeDate = worksheet.Cells["C3"].GetDateTime(); + Console.WriteLine(safeDate.ToString("yyyy-MM-dd")); +} +else +{ + Console.WriteLine("Cell C3 does not contain a valid date."); +} +``` + +### 3. 不同的年號格式 + +其他日本年號(如 Heisei、Showa)亦遵循相同模式。同一個 `JapaneseLunisolarCalendar` 會自動處理它們,無需額外邏輯——只要提供字串即可。 + +## 專業技巧與注意事項 + +- **Performance:** 在處理大型試算表時,請重複使用同一個 `CultureInfo` 實例,而不是在迴圈內每次建立新實例。 +- **Thread Safety:** 在設定曆法後,`CultureInfo` 物件為唯讀,因此可安全於多執行緒間共享。 +- **Aspose.Cells Licensing:** 若使用免費試用版,請留意部分功能在試用期結束後可能受限。此處的日期解析在試用版與授權版皆可正常運作。 +- **Time Zones:** 取得的 `DateTime` 為 **unspecified**(未指定時區)。若需 UTC,可呼叫 `DateTime.SpecifyKind(parsedDate, DateTimeKind.Utc)` 或使用 `TimeZoneInfo` 進行轉換。 + +## 結論 + +我們已說明如何使用 C# 從 Excel 活頁簿 **format date iso**。從原始的日本年號字串開始,我們 **read Excel datetime**、設定正確的 Culture、**extract datetime excel** 資料,最後輸出乾淨的 ISO‑8601 字串。此方法適用於 Excel 可能提供的任何日期表示方式,無論是序列號、特定語系字串,或傳統年號格式。 + +接下來的步驟?試著對整欄日期進行迴圈處理,將 ISO 結果寫回新工作表,或直接塞入 Web 服務的 JSON 載荷中。如果你對其他曆法系統(希伯來曆、伊斯蘭曆)感興趣,Aspose.Cells 與 .NET 的 `CultureInfo` 也能讓這些實驗同樣簡單。 + +有任何問題或遇到難以破解的日期格式嗎?在下方留言,我們會盡力協助。祝編程愉快! + +{{< /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/hongkong/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md b/cells/hongkong/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md new file mode 100644 index 0000000000..e22086928a --- /dev/null +++ b/cells/hongkong/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md @@ -0,0 +1,232 @@ +--- +category: general +date: 2026-03-30 +description: 學習如何在 C# 中使用 Aspose.Cells 進行帶分隔符的數字格式設定。內容包括設定自訂數字格式、加入千位分隔符、格式化小數位,以及儲存格的格式設定。 +draft: false +keywords: +- format number with separator +- set custom number format +- add thousands separator +- format decimal places +- how to format cell +language: zh-hant +og_description: 在 C# 中使用分隔符格式化數字。本指南說明如何設定自訂數字格式、加入千位分隔符、格式化小數位,以及如何使用 Aspose.Cells + 進行儲存格格式化。 +og_title: 在 C# 中使用分隔符格式化數字 – Aspose.Cells 教學 +tags: +- C# +- Aspose.Cells +- Number Formatting +title: 在 C# 中使用分隔符格式化數字 – 完整 Aspose.Cells 指南 +url: /zh-hant/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 在 C# 中使用分隔符格式化數字 – 完整 Aspose.Cells 指南 + +是否曾經需要在試算表中 **format number with separator**,卻不確定該使用哪個 API 呼叫?你並非唯一遇到此問題的人——開發人員在匯出資料時,常常要與千位分隔符、小數位數和自訂格式模式奮戰。 + +好消息:Aspose.Cells 讓這件事變得輕而易舉。在本教學中,我們將逐步示範一個實務範例,涵蓋 **sets a custom number format**、**adds a thousands separator**、**formats decimal places**,以及展示 **how to format cell** 輸出為字串。完成後,你將擁有一段可直接放入任何 .NET 專案的即用程式碼。 + +## 本指南涵蓋內容 + +* 你需要的確切 NuGet 套件以及如何安裝它。 +* 一步一步的程式碼,建立工作簿、寫入數值,並套用自訂格式。 +* 說明為何 `ExportTableOptions.ExportAsString` 是取得格式化值的首選方式。 +* 常見陷阱——例如忘記啟用 `ExportAsString` 或使用錯誤的格式遮罩。 +* 如何調整格式遮罩,以符合不同的小數位數或不同的分隔符樣式。 + +不需要外部文件連結;所有資訊皆在此。讓我們開始吧。 + +--- + +## 前置條件 + +| 需求 | 原因 | +|-------------|--------| +| .NET 6.0 或更新版本 | Aspose.Cells 23.10+ 目標為 .NET Standard 2.0+,因此 .NET 6 安全且為最新版本。 | +| Visual Studio 2022(或任何 C# IDE) | 讓除錯與套件管理變得輕鬆。 | +| Aspose.Cells for .NET NuGet 套件 | 提供我們將使用的 `Workbook`、`Worksheet` 與 `ExportTableOptions` 類別。 | + +你可以透過套件管理員主控台安裝此套件: + +```powershell +Install-Package Aspose.Cells +``` + +就這樣——不需要額外的 DLL、也不需要 COM interop,只要一個 NuGet 參考即可。 + +## 步驟 1:初始化新工作簿(How to Format Cell) + +我們首先建立一個全新的 `Workbook` 實例。可以把它想像成一個尚未寫入資料的空白 Excel 檔案。 + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Create a new workbook – this is where we’ll format the cell. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **為何重要:** `Workbook` 是 Aspose.Cells 所有操作的入口。透過取得第一個工作表 (`Worksheets[0]`) 我們即可得到一個乾淨的畫布,而不必先命名工作表。 + +## 步驟 2:將數值寫入目標儲存格 + +接著,我們將原始數字寫入儲存格 **A1**。此數值尚未套用格式——僅為 double 型別。 + +```csharp + // Step 2: Insert a raw numeric value. + worksheet.Cells["A1"].PutValue(12345.6789); +``` + +> **專業提示:** 若之後要套用數值格式,請使用 `PutValue` 而非 `PutString`。這樣可保留底層資料型別,讓 Excel 兼容的計算得以執行。 + +## 步驟 3:設定自訂數字格式(加入千位分隔符與設定小數位數) + +現在進入本教學的核心:定義一個格式遮罩,告訴 Aspose.Cells 如何顯示數字。遮罩 `#,##0.00` 具備三個功能: + +1. **`#,##0`** – 加入千位分隔符(預設為逗號)。 +2. **`.00`** – 強制顯示兩位小數。 + +如果需要不同的小數位數,只要更改小數點後的 `0` 數量即可。 + +```csharp + // Step 3: Configure the custom number format. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, // Return the value as a formatted string. + NumberFormat = "#,##0.00" // Add thousands separator and fix to 2 decimals. + }; +``` + +> **為何使用 `ExportAsString`**:預設情況下,`ExportString` 會回傳原始值。將 `ExportAsString = true` 設為 true,會在轉換為文字前套用 `NumberFormat` 遮罩。當你需要精確的字串表示(例如報表、JSON 輸出或 UI 顯示)時,這是必須的。 + +## 步驟 4:匯出格式化文字(How to Format Cell) + +設定好選項後,我們在同一個儲存格上呼叫 `ExportString`。此方法會遵循剛才定義的遮罩,回傳格式化好的字串。 + +```csharp + // Step 4: Export the formatted value. + string formattedCellText = worksheet.Cells["A1"].ExportString(exportOptions); + + // Step 5: Show the result. + Console.WriteLine(formattedCellText); // Expected output: 12,345.68 + } +} +``` + +執行程式後,會在主控台印出 **`12,345.68`**——正是我們要求的格式。 + +> **邊緣情況:** 若來源數字超過兩位小數,遮罩會進行四捨五入。若需要截斷而非四捨五入,必須在呼叫 `PutValue` 前先以 `Math.Truncate` 處理數值。 + +## 步驟 5:微調格式 – 常見變化 + +### 5.1 更改小數精度 + +想要三位小數嗎?只要更換遮罩即可: + +```csharp +NumberFormat = "#,##0.000" // → 12,345.679 +``` + +### 5.2 使用不同的千位分隔符 + +某些語系偏好使用空格或句點作為分隔符。你可以直接將字元寫入遮罩: + +```csharp +NumberFormat = "# ##0.00" // Uses a non‑breaking space as separator. +``` + +或是依賴工作簿的文化設定: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("de-DE"); +NumberFormat = "#.##0,00"; // German style: 12.345,68 +``` + +### 5.3 前綴或後綴(貨幣、百分比) + +直接在遮罩中加入美元符號或百分比符號: + +```csharp +NumberFormat = "$#,##0.00"; // → $12,345.68 +NumberFormat = "0.00%"; // → 1,234,568.00% +``` + +> **注意:** 遮罩區分大小寫。`$` 與 `%` 為字面符號;不會影響底層數值。 + +## 步驟 6:完整可執行範例(即貼即用) + +以下是完整程式碼,你可以直接複製到新的主控台應用程式中。它包含所有步驟、註解以及最終輸出驗證。 + +```csharp +using System; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write raw numeric value to A1. + worksheet.Cells["A1"].PutValue(12345.6789); + + // 3️⃣ Define custom format: thousands separator + two decimals. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + NumberFormat = "#,##0.00" + }; + + // 4️⃣ Export the formatted string. + string result = worksheet.Cells["A1"].ExportString(exportOptions); + + // 5️⃣ Display the outcome. + Console.WriteLine(result); // Output: 12,345.68 + + // Optional: keep console open. + Console.WriteLine("Press any key to exit..."); + Console.ReadKey(); + } +} +``` + +執行程式(在終端機輸入 `dotnet run` 或在 Visual Studio 按 F5),即可看到如圖所示的格式化數字。 + +## 常見問題 (FAQ) + +**Q: 這在較舊版本的 Excel 上也能運作嗎?** +A: 可以。格式遮罩遵循 Excel 原生的數字格式語法,只要支援 `#,##0.00` 的版本都會呈現相同的字串。 + +**Q: 如果需要一次格式化多個儲存格該怎麼辦?** +A: 迭代目標範圍,對每個儲存格套用相同的 `ExportTableOptions`,或是在整個範圍設定 `Style.Custom` 屬性,然後在單一儲存格上呼叫 `ExportString`。 + +**Q: 能否直接匯出為 CSV 並保留這些格式?** +A: 完全可以。在每個儲存格設定格式後,使用 `Workbook.Save("output.csv", SaveFormat.CSV);`。Aspose.Cells 會在產生 CSV 時遵循儲存格的 `Style`。 + +## 結論 + +我們剛剛示範了如何在 C# 中使用 Aspose.Cells **format number with separator**,涵蓋了從 **set custom number format**、**add thousands separator**、**format decimal places** 到關鍵的 **how to format cell** 以匯出字串的全部步驟。程式碼完整且獨立,適用於 .NET 6+,且可依任何語系或精度需求調整。 + +接下來,你可以探索: + +* 將相同技巧套用於日期與時間(`NumberFormat = "dd‑MMM‑yyyy"`)。 +* 自動化大量匯出,讓每一欄位使用不同的遮罩。 +* 將格式化字串整合至使用 Aspose.Words 的 PDF 報告中。 + +試試看這些範例,你將很快成為團隊中負責試算表格式化的首選人物。祝開發愉快! (Image: ![Screenshot showing formatted number with separator in Aspose.Cells](image-placeholder.png){alt="Formatted number with separator displayed in Aspose.Cells output"} ) + +{{< /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/hongkong/net/excel-data-import-export/_index.md b/cells/hongkong/net/excel-data-import-export/_index.md index 2743ebf479..775a7a45db 100644 --- a/cells/hongkong/net/excel-data-import-export/_index.md +++ b/cells/hongkong/net/excel-data-import-export/_index.md @@ -32,6 +32,10 @@ 在本簡單易懂的教學中,學習如何使用 Aspose.Cells for .NET 將自訂 DB Num 格式的資料匯入 Excel。 ### [在 Excel 中插入資料表行時將第一行向下移動](./shift-first-row-down-when-inserting-cells-datatable-rows-in-excel/) 學習使用 Aspose.Cells for .NET 在 Excel 中插入 DataTable 行,而無需向下移動第一行。輕鬆實現自動化的分步指南。 +### [建立 Excel 工作簿 C# – 插入 JSON 並儲存為 XLSX](./create-excel-workbook-c-insert-json-and-save-as-xlsx/) +學習如何使用 Aspose.Cells for .NET 在 C# 中建立 Excel 工作簿,將 JSON 資料插入並儲存為 XLSX 檔案。 +### [建立 Excel 工作簿 C# – 套用貨幣格式並匯入 DataTable](./create-excel-workbook-c-apply-currency-format-and-import-dat/) +學習如何在 C# 中建立 Excel 工作簿,套用貨幣格式並匯入 DataTable。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hongkong/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md b/cells/hongkong/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md new file mode 100644 index 0000000000..8489fe2e88 --- /dev/null +++ b/cells/hongkong/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md @@ -0,0 +1,281 @@ +--- +category: general +date: 2026-03-30 +description: 使用 C# 建立具貨幣格式的 Excel 工作簿。學習如何匯入 DataTable、在 Excel 中新增數字格式,並在幾分鐘內為欄位套用貨幣格式。 +draft: false +keywords: +- create excel workbook c# +- format cells currency +- import datatable to excel +- add number format excel +- apply currency format column +language: zh-hant +og_description: 使用 C# 建立 Excel 活頁簿,並即時將儲存格格式化為貨幣。本步驟教學示範如何將 DataTable 匯入 Excel 以及為欄位新增數字格式。 +og_title: 使用 C# 建立 Excel 工作簿 – 貨幣格式設定指南 +tags: +- Aspose.Cells +- C# +- Excel automation +title: 建立 Excel 工作簿 C# – 套用貨幣格式並匯入 DataTable +url: /zh-hant/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 建立 Excel 工作簿 C# – 套用貨幣格式並匯入 DataTable + +有沒有需要 **create Excel workbook C#**,但希望一開始就像完成的報表一樣?也許你正從資料庫撈取銷售數字,想讓價格欄位直接顯示美元符號,而不必手動在 Excel 裡調整。聽起來很熟悉吧?其實大多數開發者在第一次自動化 Excel 匯出時,都會遇到這個問題。 + +在本教學中,我們將一步步示範完整、可直接執行的解決方案,**建立 Excel 工作簿 C#**、匯入 `DataTable`,並 **將 Price 欄位格式化為貨幣**。完成後,你會得到一個名為 `StyledTable.xlsx` 的檔案,打開後即可看到已套用格式的數字,無需額外後處理。 + +> **你將學會** +> - 如何在 .NET 專案中設定 Aspose.Cells +> - 如何 **import datatable to excel** 並使用樣式陣列 +> - 如何 **add number format excel** 為特定欄位設定格式 +> - 處理更多欄位或不同語系的技巧 + +> **先備條件** +> - 已安裝 .NET 6+(或 .NET Framework 4.6+) +> - Aspose.Cells for .NET NuGet 套件(`Install-Package Aspose.Cells`) +> - 具備基本的 C# 與 DataTable 應用知識 + +--- + +## Step 1: Prepare the DataTable (import datatable to excel) + +首先,我們需要一些範例資料。實際專案中通常會從資料庫查詢填入,但這裡使用硬編碼的方式讓示例更簡潔。 + +```csharp +using System.Data; + +// Create a DataTable with two columns: Product (string) and Price (double) +DataTable dataTable = new DataTable(); +dataTable.Columns.Add("Product", typeof(string)); +dataTable.Columns.Add("Price", typeof(double)); + +// Add a few rows – you can add as many as you like +dataTable.Rows.Add("Apple", 1.23); +dataTable.Rows.Add("Banana", 0.78); +dataTable.Rows.Add("Cherry", 2.50); +``` + +*為什麼這很重要*:`DataTable` 是業務資料與 Excel 檔案之間的橋樑。Aspose.Cells 能直接匯入它,保留欄位名稱與資料型別。 + +--- + +## Step 2: Spin Up a New Workbook (create excel workbook c#) + +接著建立實際的 Excel 檔案物件。把它想成你即將繪製的空白畫布。 + +```csharp +using Aspose.Cells; + +// Instantiate a fresh workbook – this is the core of create excel workbook c# +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0). You could also add more sheets later. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **專業小技巧**:若需要多個工作表,只要呼叫 `workbook.Worksheets.Add()` 並為每張工作表命名即可。 + +--- + +## Step 3: Define a Currency Style (format cells currency) + +Aspose.Cells 允許你建立 `Style` 物件,定義儲存格的外觀。貨幣格式使用內建的數字格式 ID 164(`"$#,##0.00"`)。 + +```csharp +// Create a new style object for the price column +Style priceStyle = workbook.CreateStyle(); +priceStyle.Number = 164; // Built‑in currency format "$#,##0.00" +``` + +*為什麼不直接設定格式字串?* 使用內建 ID 可確保在不同 Excel 版本間的相容性,並避免語系特有的怪異行為。 + +--- + +## Step 4: Build the Style Array (apply currency format column) + +匯入 `DataTable` 時,你可以傳入 `Style` 陣列——每個欄位對應一個樣式。`null` 代表「使用預設樣式」。此處我們只把 `priceStyle` 套用到第二欄。 + +```csharp +// Column 0 (Product) gets the default style, Column 1 (Price) gets the currency style +Style[] columnStyles = { null, priceStyle }; +``` + +若之後新增欄位,只要相應擴充陣列即可。`columnStyles` 的長度必須與匯入的欄位數相同,否則 Aspose 會拋出例外。 + +--- + +## Step 5: Import the DataTable with Styles (import datatable to excel) + +現在魔法發生了——`DataTable` 會被寫入工作表,且價格欄位立即以貨幣格式顯示。 + +```csharp +// Parameters: +// - dataTable: source data +// - true: include column headers +// - startRow: 0 (top of sheet) +// - startColumn: 0 (first column) +// - columnStyles: style array defined above +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +*如果有超過兩個欄位怎麼辦?* 只要擴充 `columnStyles`,讓每個欄位都有適當的樣式(或 `null` 使用預設),這是最乾淨的 **add number format excel** 實作方式。 + +--- + +## Step 6: Save the Workbook (create excel workbook c#) + +最後,將檔案寫入磁碟。選擇任意你有寫入權限的資料夾。 + +```csharp +// Save the workbook as an XLSX file +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +開啟 `StyledTable.xlsx`,你應該會看到: + +| 產品 | 價格 | +|--------|--------| +| 蘋果 | $1.23 | +| 香蕉 | $0.78 | +| 櫻桃 | $2.50 | + +**Price**(價格)欄位已自動套用貨幣格式——不需要額外步驟。 + +--- + +## Edge Cases & Variations + +### More Columns, Different Formats + +如果需要 **format cells currency** 給多個欄位(例如 Cost、Tax、Total),只要為每個欄位建立獨立的 `Style`,再填入 `columnStyles`: + +```csharp +Style costStyle = workbook.CreateStyle(); +costStyle.Number = 164; // currency + +Style taxStyle = workbook.CreateStyle(); +taxStyle.Number = 164; + +// Assuming columns: Product, Cost, Tax, Total +Style[] styles = { null, costStyle, taxStyle, priceStyle }; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, styles); +``` + +### Locale‑Specific Currency + +若要顯示歐元或英鎊,可使用不同的內建 ID(例如 165 代表 `€#,##0.00`)。或者自行設定自訂格式字串: + +```csharp +priceStyle.Custom = "€#,##0.00"; +``` + +### Large Data Sets + +Aspose.Cells 能處理上百萬列資料,但樣式物件會佔用記憶體。對所有貨幣欄位重複使用同一個 `Style` 實例,可降低記憶體使用量。 + +### Missing Styles + +如果 `columnStyles` 的長度小於欄位數,Aspose 會對剩餘欄位套用預設樣式。這在只關心少數欄位時非常方便。 + +--- + +## Full Working Example (All Steps Combined) + +以下是完整程式碼,可直接貼到 Console App 中執行。程式碼已包含前面討論的所有步驟與說明註解。 + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // Step 1: Build sample DataTable (import datatable to excel) + // ------------------------------------------------- + DataTable dataTable = new DataTable(); + dataTable.Columns.Add("Product", typeof(string)); + dataTable.Columns.Add("Price", typeof(double)); + dataTable.Rows.Add("Apple", 1.23); + dataTable.Rows.Add("Banana", 0.78); + dataTable.Rows.Add("Cherry", 2.50); + // You can add as many rows as you like here. + + // ------------------------------------------------- + // Step 2: Create a new workbook (create excel workbook c#) + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // Step 3: Define a currency style (format cells currency) + // ------------------------------------------------- + Style priceStyle = workbook.CreateStyle(); + priceStyle.Number = 164; // "$#,##0.00" – built‑in currency format + + // ------------------------------------------------- + // Step 4: Build the style array (apply currency format column) + // ------------------------------------------------- + // First column gets default style (null), second column uses priceStyle. + Style[] columnStyles = { null, priceStyle }; + + // ------------------------------------------------- + // Step 5: Import the DataTable with the style array + // ------------------------------------------------- + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // ------------------------------------------------- + // Step 6: Save the workbook to disk + // ------------------------------------------------- + string outputPath = @"YOUR_DIRECTORY\StyledTable.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } +} +``` + +**預期結果**:開啟 `StyledTable.xlsx` 時,`Price`(價格)欄位會顯示美元符號與兩位小數,正如 **format cells currency** 的需求所示。 + +--- + +## Frequently Asked Questions + +**Q: 這能在 .NET Core 上使用嗎?** +A: 完全可以。Aspose.Cells 符合 .NET standard,支援 .NET 5、.NET 6 以及更新的版本,無需額外修改。 + +**Q: 我的 DataTable 有 10 個欄位,但只想格式化第 5 欄,該怎麼做?** +A: 建立長度為 10 的 `Style[]`,將索引 0‑4 與 6‑9 設為 `null`,在索引 4(第 5 欄,零基)放入自訂樣式即可。Aspose 會依照每個陣列項目套用樣式。 + +**Q: 可以隱藏標題列嗎?** +A: 匯入後,可設定 `worksheet.Cells.Rows[0].Hidden = true;`,或在 `ImportDataTable` 時將 `includeColumnNames` 參數設為 `false`。 + +--- + +## Conclusion + +我們已成功 **create Excel workbook C#**、匯入 `DataTable`,並使用 Aspose.Cells **apply a currency format column**。從資料準備、樣式定義、樣式陣列建立、以 `ImportDataTable` 匯入、最後儲存,這幾個核心步驟涵蓋了大多數 Excel 自動化需求。 + +接下來你可以探索: + +- 為日期或百分比 **add number format excel** +- 在同一檔案中匯出多張工作表 +- 使用 **format cells currency** 搭配不同語系符號 +- 依相同資料自動產生圖表 + +不妨試試看,讓自己成為團隊中 Excel 報表的關鍵人物。有任何新想法或技巧想分享嗎?歡迎在下方留言——祝開發順利! + +![create excel workbook c# screenshot](image.png "create excel workbook c#") + +{{< /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/hongkong/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md b/cells/hongkong/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md new file mode 100644 index 0000000000..63f7ce8026 --- /dev/null +++ b/cells/hongkong/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md @@ -0,0 +1,248 @@ +--- +category: general +date: 2026-03-30 +description: 使用 C# 快速建立 Excel 活頁簿,將 JSON 資料插入並儲存為 XLSX。學習如何從 JSON 產生 Excel、將 JSON + 寫入 Excel,以及將 JSON 插入 Excel。 +draft: false +keywords: +- create excel workbook c# +- save workbook as xlsx +- generate excel from json +- write json to excel +- insert json into excel +language: zh-hant +og_description: 使用 C# 快速建立 Excel 活頁簿,插入 JSON 資料並儲存為 XLSX。遵循此一步一步的指南,從 JSON 產生 Excel。 +og_title: 使用 C# 建立 Excel 工作簿 – 插入 JSON 並儲存為 XLSX +tags: +- Aspose.Cells +- C# +- Excel automation +title: 使用 C# 建立 Excel 工作簿 – 插入 JSON 並儲存為 XLSX +url: /zh-hant/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 建立 Excel 工作簿 C# – 插入 JSON 並儲存為 XLSX + +是否曾需要 **建立 Excel 工作簿 C#** 並直接將 JSON 塞入儲存格?你並非唯一遇到此情況的人——開發人員常常在需要將 API 載荷或設定檔放入試算表以供報告或分享時,面臨相同的難題。 + +好消息是,使用 Aspose.Cells 只需幾行程式碼即可完成,**save workbook as XLSX**,且整個過程保持型別安全。在本教學中,我們將 **generate Excel from JSON**、**write JSON to Excel**,並示範如何 **insert JSON into Excel**,全程不需繁雜的字串拼接。 + +## 本指南涵蓋 + +我們將逐步說明: + +1. 建立全新的工作簿。 +2. 加入一個期待 JSON 的 Smart Marker。 +3. 將 JSON 陣列提供給標記。 +4. 調整 `SmartMarkerOptions` 使 JSON 保持在單一儲存格內。 +5. 將檔案儲存為 XLSX 工作簿。 + +完成後,您將擁有可直接使用的 `JsonSingleCell.xlsx` 檔案,以及一套可在任何 JSON‑to‑Excel 情境中重複使用的可靠模式。無需外部服務,僅使用純 C# 與 Aspose.Cells 函式庫。 + +**先決條件** + +- .NET 6+(或 .NET Framework 4.6+)。 +- Visual Studio 2022 或任何相容 C# 的 IDE。 +- NuGet 套件 `Aspose.Cells`(免費試用版或授權版)。 + +如果您已具備上述條件,讓我們開始吧——無需額外設定。 + +--- + +## 第一步:在 C# 中建立新工作簿 + +您首先需要的是一個空白的工作簿物件。可將其視為等待寫入資料的全新 Excel 檔案。 + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is your empty Excel file +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; +``` + +**為什麼這很重要:** +`Workbook` 是所有 Excel 操作的入口點。先建立它,可確保後續的 **save workbook as xlsx** 呼叫有具體的物件可序列化。 + +> **Pro tip:** 如果您打算使用多個工作表,可以現在使用 `workbook.Worksheets.Add()` 來新增。 + +--- + +## 第二步:放置一個期待 JSON 的 Smart Marker + +Smart Markers 是 Aspose.Cells 在執行時會取代的佔位符。此處我們指示它尋找名為 `data` 的 JSON 字串。 + +```csharp +// Put a Smart Marker in cell A1 – {{data:json}} tells Aspose to expect JSON +worksheet.Cells["A1"].PutValue("{{data:json}}"); +``` + +**為什麼這很重要:** +`:json` 後綴告訴引擎傳入的值是 JSON,而非純文字。這是 **write json to excel** 而不需手動解析的關鍵。 + +--- + +## 第三步:定義 JSON 陣列 + +現在我們建立要插入的 JSON。為示範起見,我們將使用一個簡單的人員清單。 + +```csharp +// Sample JSON array – could come from an API, file, or DB +string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; +``` + +**邊緣案例:** +如果您的 JSON 包含雙引號,請確保已正確跳脫(如範例所示),或使用逐字字串 (`@"..."`) 以避免編譯錯誤。 + +--- + +## 第四步:設定 Smart Marker Options – 保持陣列完整 + +預設情況下,Aspose 會嘗試將陣列展開至多列。我們希望整個 JSON 字串保留在單一儲存格內,這對於之後由消費者解析 JSON 的 **insert json into excel** 情境非常適合。 + +```csharp +SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions +{ + // Treat the whole array as a single cell value + ArrayAsSingle = true +}; +``` + +**為什麼這很重要:** +`ArrayAsSingle = true` 可防止列展開,讓您得到乾淨的單儲存格 JSON 資料塊。當試算表作為傳輸格式而非報表時,這點尤為重要。 + +--- + +## 第五步:使用 JSON 資料處理 Smart Marker + +現在我們將 JSON 綁定至標記,讓 Aspose 完成繁重的處理工作。 + +```csharp +// Process the marker – the anonymous object maps "data" to our JSON string +worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); +``` + +**底層發生的事情:** +Aspose 會評估佔位符 `{{data:json}}`,序列化 `jsonData` 字串,並依照我們設定的選項寫入儲存格 A1。 + +--- + +## 第六步:將工作簿儲存為 XLSX 檔案 + +最後,我們將工作簿寫入磁碟。這就是 **save workbook as xlsx** 發揮作用的地方。 + +```csharp +// Save the workbook – the extension determines the format (XLSX here) +workbook.Save("JsonSingleCell.xlsx"); +``` + +**結果:** +在 Excel 中開啟 `JsonSingleCell.xlsx`,您會看到 JSON 陣列正如我們定義的那樣,整齊地位於儲存格 A1。 + +--- + +## 完整、可執行範例 + +以下是完整程式碼,您可以直接複製貼上到 Console 應用程式。它包含上述所有步驟,且可直接執行(前提是已安裝 Aspose.Cells NuGet 套件)。 + +```csharp +using System; +using Aspose.Cells; + +namespace JsonToExcelDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add a Smart Marker that expects JSON + worksheet.Cells["A1"].PutValue("{{data:json}}"); + + // 3️⃣ Define the JSON array + string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; + + // 4️⃣ Configure options – keep array as a single cell value + SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions + { + ArrayAsSingle = true + }; + + // 5️⃣ Process the marker with the JSON payload + worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); + + // 6️⃣ Save the workbook as XLSX + workbook.Save("JsonSingleCell.xlsx"); + + Console.WriteLine("Excel file created successfully! Check JsonSingleCell.xlsx."); + } + } +} +``` + +**預期在 Excel 中的輸出** + +| A | +|---| +| `[{"Name":"John","Age":30},{"Name":"Jane","Age":28}]` | + +該單一儲存格現在包含一個完全有效的 JSON 陣列,可供後續處理使用。 + +--- + +## 常見問題與邊緣案例 + +### 如果我需要將 JSON 分散到多列呢? + +將 `ArrayAsSingle = false`(預設值)設定為 false。Aspose 會為每個陣列元素建立一列,並將物件屬性對映到欄位。當您想要表格化檢視而非原始 JSON 字串時,這非常方便。 + +### 我可以使用 JSON 檔案而非硬編碼字串嗎? + +當然可以。先將檔案讀入字串: + +```csharp +string jsonData = File.ReadAllText("people.json"); +``` + +然後將 `jsonData` 傳入相同的 `Process` 呼叫。其餘流程保持不變。 + +### 這能處理大型 JSON 載荷嗎? + +可以,但請留意記憶體使用量。對於巨大的陣列,建議使用串流方式或直接寫入列(`ArrayAsSingle = false`),以避免產生 Excel 難以處理的單一巨型儲存格。 + +### 產生的 XLSX 是否相容舊版 Excel? + +`.xlsx` 格式基於 Office Open XML,支援 Excel 2007 及之後版本。若需要傳統的 `.xls` 格式,只需更改儲存呼叫: + +```csharp +workbook.Save("JsonSingleCell.xls", SaveFormat.Excel97To2003); +``` + +--- + +## 使用 JSON 與 Excel 的進階技巧 + +- **Validate JSON first** – 使用 `System.Text.Json.JsonDocument.Parse(jsonData)` 以提前捕捉格式錯誤的輸入。 +- **Escape special characters** – 若 JSON 包含換行,會以字面 `\n` 顯示於儲存格;可在處理前將其替換為 `Environment.NewLine`。 +- **Reuse Smart Markers** – 您可以在同一工作表放置多個標記,分別指向不同的 JSON 屬性。 +- **Combine with formulas** – JSON 進入儲存格後,可使用 Excel 的 `FILTERXML`(較新版本)即時解析。 + +## 結論 + +您現在已了解如何 **create excel workbook c#**、嵌入 JSON 載荷,並使用 Aspose.Cells **save workbook as xlsx**。此模式讓您只需幾行程式碼即可 **generate excel from json**、**write json to excel**,以及 **insert json into excel**,讓服務與分析師之間的資料交換變得輕鬆無痛。 + +準備好進一步了嗎?試著將 JSON 陣列轉換為正式的表格(設定 `ArrayAsSingle = false`),或在插入後為工作表套用樣式。同樣的做法亦適用於 CSV、XML,甚至自訂物件——只需調整 Smart Marker 類型即可。 + +祝開發順利,盡情嘗試吧!若遇到任何問題,歡迎在下方留言,或參考 Aspose 官方文件深入了解 Smart Markers。 + +{{< /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/hongkong/net/excel-workbook/_index.md b/cells/hongkong/net/excel-workbook/_index.md index 305c20961d..674ee41f61 100644 --- a/cells/hongkong/net/excel-workbook/_index.md +++ b/cells/hongkong/net/excel-workbook/_index.md @@ -86,6 +86,7 @@ Excel 工作表中定義的名稱可以是管理資料的便捷方式。它們 | [工作簿列印預覽](./workbook-print-preview/) |了解如何使用 Aspose.Cells for .NET 為 Excel 檔案建立列印預覽。透過詳細、易於遵循的教程學習編碼步驟。 | | [使用內容類型屬性](./working-with-content-type-properties/) |了解如何使用 Aspose.Cells for .NET 處理內容類型屬性以增強 Excel 元資料管理。請按照這個簡單的逐步指南進行操作。 | | [Xades 簽名支持](./xades-signature-support/) |透過本逐步指南了解如何使用 Aspose.Cells for .NET 將 Xades 簽章新增至 Excel 檔案。保護您的文件。 | +| [在 C# 中建立主工作表 – 完整 Aspose.Cells 指南](./create-master-sheet-in-c-complete-aspose-cells-guide/) |了解如何使用 Aspose.Cells for .NET 在 C# 中建立主工作表,完整指南一步步教您操作。 | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hongkong/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md b/cells/hongkong/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md new file mode 100644 index 0000000000..1786b2326e --- /dev/null +++ b/cells/hongkong/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-03-30 +description: 使用 Aspose.Cells 在 C# 中建立主工作表。學習如何在 C# 中建立 Excel 工作簿、允許工作表名稱重複,並在幾個步驟內將工作簿儲存為 + XLSX。 +draft: false +keywords: +- create master sheet +- create excel workbook c# +- save workbook as xlsx +- allow duplicate sheet names +language: zh-hant +og_description: 使用 Aspose.Cells 在 C# 中建立主工作表。本指南示範如何在 C# 中建立 Excel 工作簿、允許工作表名稱重複,並將工作簿儲存為 + XLSX。 +og_title: 在 C# 中建立主工作表 – 完整 Aspose.Cells 指南 +tags: +- Aspose.Cells +- C# +- Excel automation +title: 在 C# 中建立主工作表 – 完整的 Aspose.Cells 指南 +url: /zh-hant/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 在 C# 中建立主工作表 – 完整 Aspose.Cells 指南 + +是否曾需要 **建立主工作表** 於 Excel 檔案中,但不確定要如何處理一堆共用相同基礎名稱的明細工作表?你並不孤單。在許多報表情境下,你會得到數十個明細分頁,而大多數函式庫的預設行為是在兩個工作表名稱相同時拋出例外。 + +幸好,Aspose.Cells 讓 **建立主工作表**、設定引擎 **允許重複工作表名稱**,再 **將活頁簿另存為 XLSX** 變得輕而易舉,全部都只需乾淨的 C# 程式碼。本教學將示範一個可完整執行的範例、說明每一行程式碼的意義,並提供一系列可直接套用到自己專案的技巧。 + +> **學完你將能夠** +> * 以 Aspose.Cells **建立 Excel 活頁簿 C#** 風格。 +> * 嵌入會為每筆資料產生明細工作表的 smart‑marker。 +> * 設定 `DetailSheetNewName = DuplicateAllowed`,讓函式庫自動在名稱後加上數字後綴。 +> * **將活頁簿另存為 XLSX** 至磁碟,且不需額外步驟。 + +不需要外部文件說明——所有資訊都在此。 + +--- + +## 前置條件 + +在開始之前,請確認你已具備: + +| 前置條件 | 為何重要 | +|-------------|----------------| +| .NET 6.0 或更新版本(或 .NET Framework 4.7+) | Aspose.Cells 23.x+ 針對這些執行環境。 | +| Visual Studio 2022(或任何 C# IDE) | 方便建立專案與除錯。 | +| Aspose.Cells for .NET NuGet 套件(`Install-Package Aspose.Cells`) | 提供所有 smart‑marker 魔法的核心函式庫。 | +| 基本的 C# 知識 | 讓你能直接閱讀程式碼,免除速成教學。 | + +如果缺少上述任一項,請立即安裝,否則半成品的環境只會浪費時間。 + +--- + +## 步驟 1:使用 Aspose.Cells 建立主工作表 + +首先,我們以 **建立 Excel 活頁簿 C#** 風格,實例化 `Workbook` 物件。此物件預設已包含一張工作表,我們會把它重新命名為「Master」,並將其作為所有明細頁的範本。 + +```csharp +using Aspose.Cells; + +// Step 1: Initialise a new workbook – this automatically gives us one sheet +Workbook workbook = new Workbook(); + +// Grab the first (and only) worksheet that comes with a fresh workbook +Worksheet masterSheet = workbook.Worksheets[0]; + +// Give it a meaningful name – this will be our master sheet +masterSheet.Name = "Master"; +``` + +*為何要重新命名工作表?* +預設名稱如「Sheet1」無法表達意圖,之後檢視檔案時,你會希望主分頁一眼就能辨識。命名同時也能避免日後新增工作表時發生意外衝突。 + +--- + +## 步驟 2:準備會產生明細工作表的 smart‑marker + +smart‑marker 是 Aspose.Cells 在執行時會被資料取代的佔位符。將 `{{#detail:DataSheetName}}` 放在 **A1** 儲存格,我們告訴引擎:「對資料來源的每一筆記錄,建立一張名稱來自 `DataSheetName` 欄位的新工作表。」 + +```csharp +// Step 2: Insert a smart‑marker into cell A1. +// The marker #detail tells Aspose.Cells to generate a new sheet per data row. +masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); +``` + +把這個標記想像成貼在工作表上的小指示卡。處理器執行時會讀取卡片、從資料來源取出相對應的值,然後將主工作表複製成新分頁。 + +--- + +## 步驟 3:建立資料來源 ── 故意使用重複的工作表名稱 + +實務上你可能會從資料庫撈資料,但為了示範,我們使用記憶體中的匿名物件陣列。注意兩筆資料的 `DataSheetName` 欄位皆為相同的基礎名稱 `"Detail"`;這正是 **允許重複工作表名稱** 必須發揮作用的情境。 + +```csharp +// Step 3: Create a data source with two items that share the same base sheet name. +var dataSource = new[] +{ + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } +}; +``` + +若未設定任何特殊選項,第二次迭代時 Aspose.Cells 會因已存在名為「Detail」的工作表而拋出例外。這也是下一步驟的重要性所在。 + +--- + +## 步驟 4:啟用重複工作表名稱 + +Aspose.Cells 提供 `SmartMarkerOptions.DetailSheetNewName`。將其設為 `DetailSheetNewName.DuplicateAllowed` 後,當名稱衝突時,引擎會自動在名稱後加上數字後綴(例如「Detail_1」)。 + +```csharp +// Step 4: Configure SmartMarker options to permit duplicate sheet names. +var smartMarkerOptions = new SmartMarkerOptions +{ + // This makes the library rename clashes to "Detail_1", "Detail_2", etc. + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed +}; +``` + +*為何不直接手動給每一列一個唯一名稱?* +因為來源資料往往無法保證唯一性,尤其是使用者自行輸入的自由文字。交由函式庫自動處理後綴,可省去一大堆潛在錯誤。 + +--- + +## 步驟 5:處理 smart‑marker 並產生明細工作表 + +現在呼叫 `SmartMarkers.Process`,傳入資料來源與剛剛設定好的選項。此方法會逐筆遍歷資料、複製主工作表,並依 `DataSheetName` 欄位(加上必要的後綴)重新命名複本。 + +```csharp +// Step 5: Run the smart‑marker processor – this creates the detail sheets. +masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); +``` + +執行完此行程式碼後,活頁簿將會有三個分頁: + +1. **Master** ── 原始範本。 +2. **Detail** ── 第一張產生的工作表(不需要後綴)。 +3. **Detail_1** ── 第二張產生的工作表(自動加上後綴)。 + +你可以開啟 Excel 檢查,會看到兩張明細工作表並排顯示。 + +--- + +## 步驟 6:將活頁簿另存為 XLSX 檔案 + +最後,我們把檔案寫入磁碟。只要給 `Save` 方法一個 `.xlsx` 副檔名,它就會自動選擇 XLSX 格式。 + +```csharp +// Step 6: Persist the workbook – this is the moment we finally “save workbook as XLSX”. +string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; +workbook.Save(outputPath); +``` + +**小技巧:** 若需直接將檔案串流至 Web 回應(例如 ASP.NET Core),請改用 `workbook.Save(stream, SaveFormat.Xlsx)`,而非寫入檔案路徑。 + +--- + +## 完整可執行範例 + +以下是完整、可直接執行的程式碼。複製貼上到 Console App、按 F5,然後開啟產生的檔案即可看到結果。 + +```csharp +using System; +using Aspose.Cells; + +namespace MasterSheetDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook and rename the default sheet to "Master" + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert a smart‑marker that will generate a detail sheet per data row + masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); + + // 3️⃣ Prepare a data source where two rows share the same sheet name + var dataSource = new[] + { + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } + }; + + // 4️⃣ Allow duplicate sheet names – the library will add "_1", "_2", … + var smartMarkerOptions = new SmartMarkerOptions + { + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed + }; + + // 5️⃣ Process the smart‑markers; this creates the detail sheets + masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); + + // 6️⃣ Save the workbook as an XLSX file + string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**預期結果:** 開啟 `DuplicateDetailSheets.xlsx`,會看到三個工作表 ── `Master`、`Detail`、`Detail_1`。每張明細工作表都是主工作表的完整副本,之後你可以自行填入列別資料。 + +--- + +## 常見問題與特殊情況 + +### 如果需要超過兩張重複的工作表怎麼辦? + +沒問題。相同的 `DuplicateAllowed` 設定會持續在名稱後遞增數字(`Detail_2`、`Detail_3` …),直到每筆資料都有自己的分頁。 + +### 可以自訂後綴的格式嗎? + +預設情況下,Aspose.Cells 會使用底線加數字作為後綴。若想改成其他樣式(例如「Detail‑A」或「Detail‑B」),必須在 `Process` 執行完畢後自行遍歷 `workbook.Worksheets`,自行重新命名。 + +### 這個方法能處理大量資料(數百筆)嗎? + +可以,但需留意記憶體使用量。每產生一張工作表都會完整複製主工作表,若資料筆數過多,檔案大小會快速膨脹。若每張工作表只需要少量列,可考慮使用 `SmartMarkerOptions.RemoveEmptyRows = true` 以移除多餘的儲存格。 + +### 產生的檔案真的就是 XLSX 嗎? + +絕對是。`Save` 方法會寫入 Excel 所需的 Open XML 包,你甚至可以直接用 LibreOffice 或 Google Sheets 開啟,無需任何轉換。 + +--- + +## 進階上線建議 + +| 建議 | 為何重要 | +|-----|----------------| +| **Dispose `Workbook`** | 確保釋放非受控資源,避免記憶體泄漏。 | +| 使用 `using` 陳述式包住 `Workbook` 例項 | 可自動呼叫 `Dispose`,提升程式碼可讀性。 | +| 在大量產生工作表前先評估檔案大小上限 | 防止產出過大的檔案導致使用者下載或開啟失敗。 | +| 若需多執行緒產生工作表,請確保每個執行緒使用獨立 `Workbook` 實例 | 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/hongkong/net/formulas-functions/_index.md b/cells/hongkong/net/formulas-functions/_index.md index a12d0d1190..cb794099ca 100644 --- a/cells/hongkong/net/formulas-functions/_index.md +++ b/cells/hongkong/net/formulas-functions/_index.md @@ -100,7 +100,11 @@ 了解如何使用 Aspose.Cells .NET 指定 Excel 檔案的語言。透過此國際化公式設定的逐步指南,增強文件的可存取性和合規性。 ### [使用 Aspose.Cells .NET 更新 Excel Power Query 公式](./update-power-query-formulas-aspose-cells-net) -了解如何使用 Aspose.Cells for .NET 以程式設計方式更新 Excel 工作簿中的 Power Query 公式。主資料來源管理,用於動態報告。 + +### [如何在 C# 中使用 WRAPCOLS – 建立具備換列功能的 Excel 工作簿](./how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/) + +### [建立 Excel 工作簿 C# – Lambda、SEQUENCE 與 EXPAND 指南](./create-excel-workbook-c-lambda-sequence-expand-guide/) +說明如何在 C# 中使用 Lambda、SEQUENCE 與 EXPAND 函數建立 Excel 工作簿,提升公式動態生成與資料展開能力。 ## 了解 Excel 公式類型 diff --git a/cells/hongkong/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md b/cells/hongkong/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md new file mode 100644 index 0000000000..0e40eb42c1 --- /dev/null +++ b/cells/hongkong/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md @@ -0,0 +1,211 @@ +--- +category: general +date: 2026-03-30 +description: 使用 Aspose.Cells 於 C# 建立 Excel 工作簿。學習在 Excel 中套用 lambda 函數、sequence 函數、展開陣列,並將工作簿儲存為 + xlsx。 +draft: false +keywords: +- create excel workbook c# +- lambda function excel +- save workbook as xlsx +- sequence function excel +- expand array excel +language: zh-hant +og_description: 快速使用 C# 建立 Excel 工作簿。本指南說明如何在 Excel 中使用 Lambda 函數、序列函數、展開陣列,並將工作簿另存為 + xlsx。 +og_title: 使用 C# 建立 Excel 工作簿 – Lambda、SEQUENCE 與 EXPAND 指南 +tags: +- Aspose.Cells +- C# +- Excel automation +title: 使用 C# 建立 Excel 工作簿 – Lambda、SEQUENCE 與 EXPAND 指南 +url: /zh-hant/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 建立 Excel 工作簿 C# – Lambda、SEQUENCE 與 EXPAND 指南 + +是否曾需要 **create Excel workbook C#** 來產生自動化報告,但不確定該使用哪個 API 呼叫?你並不孤單——許多開發者在首次接觸程式化 Excel 產生時都會遇到相同的障礙。在本指南中,你將看到一個完整、可執行的範例,涵蓋從全新的 **SEQUENCE function Excel** 到強大的 **LAMBDA function Excel**,甚至如何 **expand array Excel** 結果。 + +我們也會示範如何使用 **save workbook as xlsx** 的精確步驟,讓你能將檔案交給任何使用 Excel 的人。完成本教學後,你將擁有一段穩固、可直接投入生產環境的程式碼片段,能放入任何 .NET 專案中。沒有模糊的「請參考文件」連結——只有即刻可用的程式碼。 + +## 你需要的條件 + +- **.NET 6.0 或更新版本** – 本範例以 .NET 6 為目標,但任何較新的版本皆可運作。 +- **Aspose.Cells for .NET** – 透過 NuGet 安裝 (`Install-Package Aspose.Cells`)。 +- 具備基本的 C# 語法概念(變數、物件與 lambda 表達式)。 +- 使用你熟悉的 IDE(Visual Studio、Rider 或 VS Code)。 + +就這樣。無需額外的 COM interop,也不需要在伺服器上安裝 Office——Aspose.Cells 會在記憶體中處理所有工作。 + +## 建立 Excel 工作簿 C# – 步驟式實作 + +以下我們將流程拆解為易於消化的步驟。每個步驟都有清晰的標題、簡短的程式碼片段,以及說明 **為何** 這樣做。隨意複製最後的完整程式碼塊,將其作為主控台應用程式執行。 + +### 步驟 1 – 初始化新工作簿 + +首先,我們需要一個空白的工作簿物件,代表記憶體中的 Excel 檔案。 + +```csharp +using Aspose.Cells; + +// Step 1: Create a new workbook and get the first worksheet +Workbook workbook = new Workbook(); // empty workbook +Worksheet sheet = workbook.Worksheets[0]; // default first sheet +``` + +*Why this matters:* `Workbook` 是所有 Aspose.Cells 操作的入口點。取得第一個 `Worksheet` 後,我們就得到一個可以寫入公式、數值或格式的畫布。 + +> **Pro tip:** 若需要多個工作表,只要呼叫 `workbook.Worksheets.Add()` 並保留對每個工作表的參考即可。 + +### 步驟 2 – 使用 SEQUENCE function Excel 產生資料 + +**sequence function excel** 會在不使用 VBA 的情況下建立動態數字陣列。我們將它放在 `A1` 儲存格,讓 Excel 自動展開。 + +```csharp +// Step 2: Generate a 5‑row, 1‑column array from a SEQUENCE +sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; // 1..3 padded with blanks +``` + +*Why this matters:* `SEQUENCE(3)` 會產生 `[1,2,3]`。將其包裹在 `EXPAND` 中會將結果強制展開為 5 列的範圍,額外的列會以空白填充。這同時示範了 **sequence function excel** 與 **expand array excel**。 + +### 步驟 3 – 使用 LAMBDA function Excel 彙總數字 + +現在讓我們展示 **lambda function excel** 的功能。我們將使用新推出的 `REDUCE` 函數(內部依賴 lambda)來加總 1‑5 的數字。 + +```csharp +// Step 3: Aggregate a sequence (sum 1..5) using REDUCE/LAMBDA +sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; // result = 15 +``` + +*Why this matters:* `REDUCE` 會遍歷由 `SEQUENCE(5)` 產生的陣列,將每個元素(`b`)與累加器(`a`)一起傳入 lambda。lambda `a+b` 將它們相加,最終在 `B1` 中得到 `15`。這是一種純公式、無需在 C# 中迴圈的簡潔縮減方式。 + +### 步驟 4 – 直接在儲存格中套用三角函數 + +Excel 內建的數學函數非常適合快速計算。我們將在相鄰的儲存格中放入餘切與雙曲餘切。 + +```csharp +// Step 4: Trigonometric functions directly in Excel cells +sheet["C1"].Formula = "COT(PI()/4)"; // evaluates to 1 +sheet["D1"].Formula = "COTH(1)"; // hyperbolic cotangent of 1 +``` + +*Why this matters:* 示範了可以將傳統數學函數與較新的動態陣列公式混合使用。除非有特定的效能需求,否則無需在 C# 中計算這些值。 + +### 步驟 5 – 計算所有公式 + +當設定公式時,Aspose.Cells 不會自動評估。必須明確要求它計算。 + +```csharp +// Step 5: Force calculation so that cells store the results +workbook.CalculateFormula(); +``` + +*Why this matters:* 呼叫此方法後,每個儲存格的 `Value` 屬性會包含已評估的結果,隨時可保存或讀取。 + +### 步驟 6 – 將工作簿儲存為 Xlsx + +最後,我們使用 **save workbook as xlsx** 的方式將工作簿寫入磁碟。 + +```csharp +// Step 6: Save the workbook to an Excel file (XLSX format) +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + +workbook.Save(outputPath); +Console.WriteLine($"Workbook saved to: {outputPath}"); +``` + +*Why this matters:* `Save` 方法會自動偵測檔案副檔名。使用「.xlsx」即可確保檔案相容於現代 Excel 版本。路徑指向桌面,方便測試時快速存取。 + +### 完整可執行範例 + +以下是完整的程式碼,你可以貼到新的主控台專案中。它包含上述所有步驟,並加入一個小型驗證區塊,將計算結果輸出至主控台。 + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialize workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + + // SEQUENCE + EXPAND + sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; + + // REDUCE with LAMBDA + sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; + + // Trig functions + sheet["C1"].Formula = "COT(PI()/4)"; + sheet["D1"].Formula = "COTH(1)"; + + // Calculate formulas + workbook.CalculateFormula(); + + // Verify results (optional) + Console.WriteLine("A1‑A5 (expanded SEQUENCE):"); + for (int i = 0; i < 5; i++) + { + Console.WriteLine($" Row {i + 1}: {sheet.Cells[i, 0].Value ?? "blank"}"); + } + Console.WriteLine($"B1 (sum 1‑5): {sheet["B1"].Value}"); + Console.WriteLine($"C1 (cot(π/4)): {sheet["C1"].Value}"); + Console.WriteLine($"D1 (coth(1)): {sheet["D1"].Value}"); + + // Save workbook + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + workbook.Save(outputPath); + Console.WriteLine($"Workbook saved to: {outputPath}"); + } +} +``` + +**預期在主控台的輸出** + +``` +A1‑A5 (expanded SEQUENCE): + Row 1: 1 + Row 2: 2 + Row 3: 3 + Row 4: blank + Row 5: blank +B1 (sum 1‑5): 15 +C1 (cot(π/4)): 1 +D1 (coth(1)): 1.31303528549933 +Workbook saved to: C:\Users\YourName\Desktop\NewFunctions.xlsx +``` + +當你開啟 *NewFunctions.xlsx* 時,會看到相同的數字排列在前四欄。 + +![create excel workbook c# screenshot of the resulting spreadsheet](/images/create-excel-workbook-csharp.png) + +## 邊緣情況、技巧與常見問題 + +- **如果需要多於一個工作表該怎麼辦?** + 只要呼叫 `workbook.Worksheets.Add()`,然後在每個新的 `Worksheet` 物件上重複公式設定即可。 + +- **我可以使用較舊的 Excel 版本嗎?** + 動態陣列函數(`SEQUENCE`、`EXPAND`、`REDUCE`)需要 Excel 365 或 Excel 2021 以上。若要支援較舊版本,請改用傳統公式或在寫入前於 C# 中計算數值。 + +- **效能問題?** + 對於數千列的情況,在整個範圍設定公式後再呼叫 `CalculateFormula`,通常比逐一迴圈指派值更快。 + +- **改為儲存至串流而非檔案?** + `work + +{{< /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/hongkong/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md b/cells/hongkong/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md new file mode 100644 index 0000000000..34d8ebac26 --- /dev/null +++ b/cells/hongkong/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md @@ -0,0 +1,210 @@ +--- +category: general +date: 2026-03-30 +description: 學習如何在 C# 中使用 WRAPCOLS 建立 Excel 工作簿、向 Excel 添加資料,並在使用 WRAPROWS 時強制公式計算。 +draft: false +keywords: +- how to use wrapcols +- create excel workbook c# +- add data to excel +- force formula calculation +- how to use wraprows +language: zh-hant +og_description: 了解如何在 C# 中使用 WRAPCOLS 建立 Excel 工作簿、加入資料、強制公式計算,並利用 WRAPROWS 實作陣列公式。 +og_title: 如何在 C# 中使用 WRAPCOLS – 完整指南 +tags: +- Aspose.Cells +- C# +- Excel Automation +title: 如何在 C# 中使用 WRAPCOLS – 建立具換行功能的 Excel 活頁簿 +url: /zh-hant/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何在 C# 中使用 WRAPCOLS – 建立具 Wrap 函數的 Excel 活頁簿 + +有沒有想過在使用 C# 自動化 Excel 時 **如何使用 WRAPCOLS**?你並不孤單——許多開發者在需要將水平範圍轉換為垂直陣列而不想寫大量程式碼時,常會卡關。好消息是 Aspose.Cells 讓這件事變得輕而易舉。 + +在本教學中,我們將逐步示範一個完整且可執行的範例,說明 **如何使用 WRAPCOLS**、如何 **以 C# 方式建立 Excel 活頁簿**、如何 **將資料新增至 Excel**,甚至如何 **強制公式計算** 讓結果即時顯示。我們也會簡介 **如何使用 WRAPROWS** 以完成相反的轉換。完成後,你將擁有一個可直接執行的程式,並清楚了解每一步的意義。 + +--- + +![如何在 C# 中使用 WRAPCOLS 範例](alt="使用 WRAPCOLS 於 C# 後的 Excel 活頁簿螢幕截圖") + +## 本指南涵蓋內容 + +* 使用 Aspose.Cells 建立全新的活頁簿。 +* 以程式方式填入儲存格 (**add data to Excel**)。 +* 套用 `WRAPCOLS` 函數將列轉換為欄。 +* 使用 `WRAPROWS` 將欄翻回列 (**how to use wraprows**)。 +* 立即強制引擎評估公式 (**force formula calculation**)。 +* 儲存檔案並檢查輸出。 + +不需要外部文件說明——所有資訊皆在此處。 + +--- + +## 如何在 C# 中使用 WRAPCOLS – 步驟實作說明 + +以下為完整原始碼。你可以將它複製貼上到新的 Console 專案,加入 Aspose.Cells NuGet 套件,然後按 **F5** 執行。 + +```csharp +// ------------------------------------------------------------ +// How to Use WRAPCOLS in C# – Complete Example +// ------------------------------------------------------------ +using System; +using Aspose.Cells; + +namespace WrapFunctionsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a fresh workbook (this is how we **create excel workbook c#** style) + Workbook workbook = new Workbook(); + + // 2️⃣ Grab the first worksheet – it's created by default + Worksheet sheet = workbook.Worksheets[0]; + + // 3️⃣ **Add data to Excel**: place two numbers side‑by‑side + sheet.Cells["A1"].PutValue(1); // first value + sheet.Cells["B1"].PutValue(2); // second value + + // 4️⃣ **How to use WRAPCOLS** – turn the horizontal range A1:B1 into a vertical array + // The second argument (1) tells WRAPCOLS to create 1 column per element. + sheet["C1"].Formula = "WRAPCOLS(A1:B1, 1)"; + + // 5️⃣ **How to use WRAPROWS** – the opposite; turn the same range into a horizontal array + // Here we ask for 2 rows per element, which produces a single row with both values. + sheet["C2"].Formula = "WRAPROWS(A1:B1, 2)"; + + // 6️⃣ **Force formula calculation** so the workbook reflects the results immediately + workbook.CalculateFormula(); + + // 7️⃣ Save the workbook to disk – change the path to a folder you own + string outputPath = @"WrapFunctions.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + Console.WriteLine("Check cells C1 and C2 for the WRAPCOLS / WRAPROWS results."); + } + } +} +``` + +### 為何每一行都很重要 + +| 步驟 | 說明 | +|------|------| +| **1️⃣ 建立全新活頁簿** | 這是基礎。Aspose.Cells 將 `Workbook` 物件視為整個 Excel 檔案,因此你實際上是在 **以 C# 方式建立 Excel 活頁簿**。 | +| **2️⃣ 取得第一個工作表** | 新活頁簿總會至少包含一個工作表 (`Worksheets[0]`)。提前取得可避免 null 參考的意外。 | +| **3️⃣ 新增資料至 Excel** | 使用 `PutValue` 我們 **add data to Excel**,且不必擔心儲存格格式。數字 `1` 與 `2` 為我們測試 wrap 函數的資料。 | +| **4️⃣ 如何使用 WRAPCOLS** | `WRAPCOLS(A1:B1, 1)` 告訴 Excel 將範圍 `A1:B1` 的值垂直展開,每列一個。結果放在 `C1`,向下展開 (`C1`, `C2`, …)。 | +| **5️⃣ 如何使用 WRAPROWS** | `WRAPROWS(A1:B1, 2)` 則相反:產生水平展開,將兩個值放入從 `C2` 開始的同一列。 | +| **6️⃣ 強制公式計算** | 預設情況下,Aspose.Cells 可能會延遲計算,直到在 Excel 中開啟檔案。呼叫 `CalculateFormula()` **forces formula calculation**,讓你在儲存後即可讀取結果。 | +| **7️⃣ 儲存活頁簿** | 最後一步將所有內容寫入磁碟。開啟產生的 `WrapFunctions.xlsx` 以檢視結果。 | + +--- + +## 建立 Excel 活頁簿 C# – 環境設定 + +在執行程式碼之前,請確保已備妥以下工具: + +1. **.NET 6.0+** – 建議使用最新的 LTS 版本。 +2. **Visual Studio 2022**(或搭配 C# 擴充功能的 VS Code)。 +3. **Aspose.Cells for .NET** – 透過 NuGet 安裝: + ```bash + dotnet add package Aspose.Cells + ``` +4. 一個可寫入的資料夾,用於存放輸出檔案。 + +這些前置條件相當簡單;不需 COM interop 或安裝 Office,正因如此 Aspose.Cells 成為伺服器端產生 Excel 的熱門選擇。 + +--- + +## 新增資料至 Excel – 最佳實踐 + +以程式方式 **add data to Excel** 時,請參考以下建議: + +* **使用 `PutValue`** 來寫入原始數字或字串;它會自動偵測資料類型。 +* **避免在大型專案中硬編碼儲存格位址**——使用迴圈或命名範圍以提升可擴充性。 +* **盡量少設定儲存格樣式**;每次樣式變更都會產生額外開銷。若需格式化,請建立單一樣式物件,並套用至多個儲存格。 + +在我們這個小範例中僅插入兩個數字,但相同的模式可擴充至數千列。 + +--- + +## 如何使用 WRAPROWS – 水平陣列範例 + +若需要 `WRAPCOLS` 的相反功能,`WRAPROWS` 就是你的首選。語法如下: + +``` +WRAPROWS(source_range, [rows_per_item]) +``` + +* `source_range` – 你想要轉換的範圍。 +* `rows_per_item` – 可選參數,告訴 Excel 每個元素佔用多少列。在本示範中,我們使用 `2` 讓兩個值放在同一列上。 + +你可以透過變更第二個參數來試驗: + +```csharp +// Example: split each value into its own column, three rows per item +sheet["D1"].Formula = "WRAPROWS(A1:B1, 3)"; +``` + +開啟活頁簿後,你會看到值橫向展開至三個欄位,每個欄位皆依需求重複原始數字。 + +--- + +## 強制公式計算 – 何時與為何 + +你可能會想,「真的需要呼叫 `CalculateFormula()` 嗎?」答案是 **是**,如果: + +* 你打算在 **儲存** 後以 **程式方式** 讀取 **已計算** 的值。 +* 你希望確保檔案在 **Excel** 中開啟時,已 **顯示正確** 的結果。 +* 你在 **無介面環境**(例如 Web API)執行,沒有使用者會手動觸發重新計算。 + +跳過此步驟不會破壞活頁簿,但儲存格會顯示公式文字 (`=WRAPCOLS(...)`),而非計算結果,直到 Excel 重新計算為止。 + +--- + +## 預期輸出 – 觀察要點 + +執行程式並開啟 `WrapFunctions.xlsx` 後: + +| 儲存格 | 公式 | 顯示值 | +|--------|------|--------| +| **C1** | `=WRAPCOLS(A1:B1, 1)` | `1`(於 C1)與 `2`(於 C2)— 垂直清單 | +| **C2** | `=WRAPROWS(A1:B1, 2)` | `1`(於 C2)與 `2`(於 D2)— 水平清單 | + +因此你會看到從 **C1** 開始的垂直欄位,以及從 **C2** 開始的水平列。這證實兩個 wrap 函數皆如預期運作。 + +--- + +## 邊緣情況與變形 + +| 情境 | 會有什麼變化? | 建議調整 | +|------|----------------|----------| +| **大型範圍 (A1:Z1)** | 垂直展開的值更多 | 若想每組產生多欄,請增加 `WRAPCOLS` 的第二個參數。 | +| **非數值資料** | 文字字串會以相同方式處理 | 無需更改程式碼;`PutValue` 接受任何物件。 | +| **動態範圍** | 編譯時無法得知大小 | 使用 `sheet.Cells.MaxDataColumn` 與 `MaxDataRow` 來組成地址字串。 | +| **多工作表** | 需要在不同工作表上套用 wrap 函數 | 參照正確的工作表 (`workbook.Worksheets["Sheet2"]`)。 | + +預先考慮這些變化,你即可將核心模式套用至幾乎所有自動化情境。 + +--- + +## 實務小技巧 + +* **Pro tip:** 若目標為 .NET Core 3.1+,請將活頁簿建立包在 `using` 區塊中,以確保即時釋放所有資源。 +* **Watch out for:** 在大範圍內設定相同公式卻未呼叫 `CalculateFormula()`,可能導致效能瓶頸。盡可能批次處理公式。 +* **Tip:** 若需在程式碼中讀回計算後的值,呼叫 ` + +{{< /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/hongkong/net/tables-and-lists/_index.md b/cells/hongkong/net/tables-and-lists/_index.md index b75f55f584..d10fa1549e 100644 --- a/cells/hongkong/net/tables-and-lists/_index.md +++ b/cells/hongkong/net/tables-and-lists/_index.md @@ -51,6 +51,8 @@ Aspose.Cells for .NET 最強大的功能之一是它能夠輕鬆讀取和寫入 釋放 Aspose.Cells for .NET 的強大功能。透過本詳細的分步指南學習如何讀取和寫入具有查詢資料來源的表。 ### [在 Excel 中設定表格或清單的註釋](./setting-comment-of-table-or-list/) 透過我們簡單的逐步指南了解如何使用 Aspose.Cells for .NET 為 Excel 中的表格設定註解。 +### [使用 Aspose.Cells 在 C# 中從範圍建立表格 – 完整教程](./create-table-from-range-in-c-complete-aspose-cells-tutorial/) +透過本完整指南,學習如何使用 Aspose.Cells for .NET 在 C# 中將範圍轉換為表格,提升資料管理效率。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hongkong/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md b/cells/hongkong/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md new file mode 100644 index 0000000000..4800d0d4b5 --- /dev/null +++ b/cells/hongkong/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md @@ -0,0 +1,229 @@ +--- +category: general +date: 2026-03-30 +description: 在 C# 使用 Aspose.Cells 從範圍建立表格 – 向儲存格加入資料,將範圍轉換為 ListObject,並儲存 Excel 而不套用篩選。 +draft: false +keywords: +- create table from range +- create excel workbook c# +- add data to cells +- convert range to listobject +- save excel without filter +language: zh-hant +og_description: 在 C# 中使用 Aspose.Cells 從範圍建立表格。了解如何向儲存格加入資料、將範圍轉換為 ListObject,並在不使用篩選的情況下儲存 + Excel。 +og_title: 在 C# 中從範圍建立表格 – 完整 Aspose.Cells 教程 +tags: +- Aspose.Cells +- C# +- Excel Automation +title: 在 C# 中從範圍建立表格 – 完整 Aspose.Cells 教程 +url: /zh-hant/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 在 C# 中從範圍建立表格 – 完整 Aspose.Cells 教程 + +是否曾經需要在 C# 中 **create table from range**,卻不確定要如何把一段普通資料區塊轉換成完整功能的 Excel 表格?你並非唯一遇到這個問題的人。無論是自動化報表、產生成績卡,或只是為後續分析清理資料,掌握這個小技巧都能為你省下大量手動工作。 + +在本指南中,我們將完整示範整個流程:**create excel workbook c#**、**add data to cells**、**convert range to ListObject**,最後 **save excel without filter**。完成後,你將擁有一段可直接在任何引用 Aspose.Cells 的 .NET 專案中執行的程式碼片段。 + +--- + +## Prerequisites + +- 已安裝 .NET 6+(或 .NET Framework 4.7.2+) +- Aspose.Cells for .NET(NuGet 套件 `Aspose.Cells`)— 以撰寫本文時的最新版本 (23.10) 為例,完全相容。 +- 具備基本的 C# 語法概念 — 不需要深入的 Excel interop 知識。 + +如果你已滿足上述條件,讓我們開始吧。 + +--- + +## Step 1: Create an Excel Workbook in C# + +首先,我們需要一個全新的 Workbook 物件。可以把它想像成未來將存放表格的空白 Excel 檔案。 + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is equivalent to opening a blank .xlsx file. +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (default) worksheet. +``` + +> **Pro tip:** `Workbook()` 若不帶參數會建立一個僅含預設工作表的活頁簿,對於快速示範相當方便。若需要多張工作表,可稍後使用 `workbook.Worksheets.Add()` 追加。 + +--- + +## Step 2: Add Data to Cells + +接下來,我們在工作表中填入一小段資料——兩個欄位(Name、Score)以及三列值。此範例說明了 **add data to cells** 的簡潔寫法。 + +```csharp +// Header row +worksheet.Cells["A1"].PutValue("Name"); +worksheet.Cells["B1"].PutValue("Score"); + +// Data rows +worksheet.Cells["A2"].PutValue("Alice"); +worksheet.Cells["B2"].PutValue(85); +worksheet.Cells["A3"].PutValue("Bob"); +worksheet.Cells["B3"].PutValue(92); +``` + +為什麼使用 `PutValue`?它會自動偵測資料類型(字串或數值),並依據類型套用相應的格式,讓你在簡單情境下免除手動設定 `Style` 物件的麻煩。 + +> **Expected output:** 完成此步驟後,若在 Excel 中開啟活頁簿,會看到一個兩欄的格子,標題分別為「Name」與「Score」,下方緊接兩列資料。 + +--- + +## Step 3: Convert the Range into a ListObject (Table) + +這一步就是魔法所在:將普通範圍轉換為 Excel 表格(在 Aspose.Cells API 中稱為 **ListObject**)。除了提供視覺樣式外,還能啟用內建的排序、篩選與結構化參照等功能。 + +```csharp +// Define the range boundaries. +// startRow and startColumn are zero‑based indexes. +// rowCount includes the header row. +int startRow = 0; // Row 1 in Excel +int startColumn = 0; // Column A +int rowCount = 3; // Header + 2 data rows +int columnCount = 2; // Two columns: Name & Score + +// Add a ListObject to the worksheet and retrieve the object. +int listIndex = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); +ListObject table = worksheet.ListObjects[listIndex]; + +// Turn on the UI filter dropdowns so users can interact with the table. +table.ShowAutoFilter = true; +``` + +> **Why use a ListObject?** +> - **Structured references**:公式可直接以欄位名稱引用。 +> - **Auto‑filter UI**:使用者會看到下拉箭頭,方便快速篩選。 +> - **Styling**:之後只需一行程式碼即可套用內建表格樣式。 + +--- + +## Step 4: Remove the AutoFilter UI (Save Excel Without Filter) + +有時候需要一張沒有篩選箭頭的乾淨工作表,例如最終報告的交付版。Aspose.Cells 23.10 提供了直接移除篩選 UI 的簡易方法。 + +```csharp +// Remove the filter UI completely. +table.AutoFilter = null; // Clears the underlying filter object. +table.ShowAutoFilter = false; // Hides the dropdown arrows. +``` + +請注意,我們並未刪除資料,只是關閉了視覺上的篩選控制元件,滿足 **save excel without filter** 的需求。 + +--- + +## Step 5: Save the Workbook + +最後,將活頁簿寫入磁碟。檔案中仍保留表格,但不會顯示任何篩選箭頭。 + +```csharp +// Choose a folder you have write access to. +string outputPath = @"C:\Temp\NoAutoFilter.xlsx"; +workbook.Save(outputPath); +``` + +開啟 `NoAutoFilter.xlsx` 後,你會看到表格已套用預設格式,卻沒有篩選箭頭。資料完整,檔案即可直接分發。 + +--- + +![Screenshot showing create table from range in Excel using Aspose.Cells](image.png "Create table from range screenshot") + +*Image alt text:* **Screenshot showing create table from range in Excel using Aspose.Cells** – 以視覺方式證明表格已建立且沒有篩選下拉選單。 + +--- + +## Full, Runnable Example + +以下是完整程式碼,可直接貼到 Console 應用程式中執行。程式碼包含上述所有步驟,並加入少許說明註解以提升可讀性。 + +```csharp +using System; +using Aspose.Cells; + +namespace AsposeTableDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add data to cells – this is the “add data to cells” part. + worksheet.Cells["A1"].PutValue("Name"); + worksheet.Cells["B1"].PutValue("Score"); + worksheet.Cells["A2"].PutValue("Alice"); + worksheet.Cells["B2"].PutValue(85); + worksheet.Cells["A3"].PutValue("Bob"); + worksheet.Cells["B3"].PutValue(92); + + // 3️⃣ Convert the range into a ListObject (i.e., create table from range). + int startRow = 0, startColumn = 0, rowCount = 3, columnCount = 2; + int listIdx = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); + ListObject table = worksheet.ListObjects[listIdx]; + table.ShowAutoFilter = true; // optional UI filter + + // 4️⃣ Remove the AutoFilter UI – “save excel without filter”. + table.AutoFilter = null; + table.ShowAutoFilter = false; + + // 5️⃣ Save the workbook. + string filePath = @"C:\Temp\NoAutoFilter.xlsx"; + workbook.Save(filePath); + + Console.WriteLine($"Workbook saved to {filePath}"); + } + } +} +``` + +執行程式後,開啟 `C:\Temp\NoAutoFilter.xlsx`,即可看到格式良好的表格、沒有篩選箭頭,且資料與我們輸入的完全相同。這就是 **create excel workbook c#** 流程的全部內容,總計不到 60 行程式碼。 + +--- + +## Frequently Asked Questions & Edge Cases + +**Q: 如果我的資料範圍不是連續的怎麼辦?** +A: `ListObjects.Add` 需要矩形範圍。若資料不連續,請先將各段資料複製至新工作表形成暫時的連續範圍,再執行轉換。 + +**Q: 可以套用自訂的表格樣式嗎?** +A: 當然可以。建立 `ListObject` 後,設定 `table.TableStyleType = TableStyleType.TableStyleMedium9;`(或任意 65 種內建樣式之一),即可讓表格符合企業品牌風格。 + +**Q: 想保留篩選功能但隱藏箭頭該怎麼做?** +A: 篩選邏輯屬於 `table.AutoFilter`。將 `ShowAutoFilter = false` 只會隱藏 UI,實際的篩選條件仍然存在,之後仍可程式化地篩選列。 + +**Q: 大型資料集(10k+ 列)會有問題嗎?** +A: API 本身支援大資料量,但建議在大量寫入前先關閉自動計算 (`workbook.CalcEngine = false`) 以提升效能,寫入完成後再重新啟用。 + +--- + +## Wrap‑Up + +我們已完整說明如何在 C# 中使用 Aspose.Cells **create table from range**,從 **create excel workbook c#**、**add data to cells**、**convert range to ListObject**,最後 **save excel without filter**,一步步實作。程式碼已完整、可執行,且適合直接投入生產環境。 + +接下來,你可以進一步探索: + +- 加入條件格式以突顯最高分數。 +- 使用 `workbook.Save("Report.pdf", SaveFormat.Pdf);` 將活頁簿匯出為 PDF。 +- 透過 `table.Columns["Score"].DataBodyRange.Sort` 程式化排序表格。 + +歡迎自行嘗試不同的資料集、表格樣式,或是多工作表的情境。Aspose.Cells API 足夠彈性,能處理從小型計分表到大型財務帳本的各種需求。 + +有任何問題或卡關嗎?歡迎在下方留言或於 GitHub 私訊我。祝開發順利,玩得開心,盡情把原始範圍變成精緻的 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/hungarian/net/conversion-to-pdf/_index.md b/cells/hungarian/net/conversion-to-pdf/_index.md index 84ccdf0d8b..66840492d0 100644 --- a/cells/hungarian/net/conversion-to-pdf/_index.md +++ b/cells/hungarian/net/conversion-to-pdf/_index.md @@ -34,6 +34,8 @@ De várj, ez még nem minden! Mi van, ha Excel-táblázatokból származó diagr Konvertálj Excel táblázatokat PDF-be egyszerűen az Aspose.Cells for .NET segítségével! Kövesd lépésről lépésre útmutatónkat a zökkenőmentes élményért. ### [Diagram konvertálása PDF-be .NET-ben](./convert-chart-to-pdf/) Tanuld meg, hogyan konvertálhatsz Excel-diagramokat PDF-be .NET-ben az Aspose.Cells használatával ezzel a lépésről lépésre szóló útmutatóval! Tökéletes minden szintű programozó számára. +### [Munkafüzet mentése PDF-be az Aspose.Cells segítségével – Teljes lépésről‑lépésre útmutató](./save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/) +Ismerd meg, hogyan mentheted el a munkafüzetet PDF formátumban az Aspose.Cells használatával, részletes lépésekkel. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hungarian/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md b/cells/hungarian/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md new file mode 100644 index 0000000000..dbb5d8f76e --- /dev/null +++ b/cells/hungarian/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md @@ -0,0 +1,249 @@ +--- +category: general +date: 2026-03-30 +description: Ismerje meg, hogyan menthet el egy munkafüzetet PDF formátumban az Aspose.Cells + használatával. Ez az útmutató bemutatja a munkalap PDF-be exportálását, azt, hogyan + exportálhatja az Excelt PDF-be, és hogyan hozhat létre PDF-et a munkalapról. +draft: false +keywords: +- save workbook as pdf +- export worksheet to pdf +- how to export excel to pdf +- save excel as pdf +- create pdf from worksheet +language: hu +og_description: Mentsd el a munkafüzetet PDF-ként egyszerűen. Ez az útmutató megmutatja, + hogyan exportálj munkalapot PDF-be, hogyan exportálj Excel-t PDF-be, és hogyan hozz + létre PDF-et munkalapból C#- használatával. +og_title: Munkafüzet mentése PDF‑ként az Aspose.Cells segítségével – Teljes útmutató +tags: +- Aspose.Cells +- C# +- PDF generation +title: Munkafüzet mentése PDF‑ként az Aspose.Cells‑szel – Teljes lépésről‑lépésre + útmutató +url: /hu/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Mentsd a munkafüzetet pdf‑ként – Teljes lépésről‑lépésre útmutató + +Valaha is szükséged volt **save workbook as pdf** funkcióra, de nem tudtad, melyik könyvtár tartja meg a számok pontosságát? Nem vagy egyedül. Sok projektben Excel‑adatokat kell átalakítanunk egy kifinomult PDF‑be, és a helyes megközelítés órákat spórol a hibakeresésben. + +Ebben a tutorialban végigvezetünk a pontos kódon, amellyel **save workbook as pdf** Aspose.Cells‑szel, és közben megmutatjuk, hogyan **export worksheet to pdf**, megválaszoljuk a *how to export excel to pdf* kérdéseket, valamint bemutatunk egy tiszta módszert a **create pdf from worksheet** egyedi pontossági beállításokkal. + +A végére egy kész C# konzolalkalmazást kapsz, amely egy PDF‑et generál, amely csak a számodra fontos jelentős számjegyeket tartalmazza. Nincs felesleges többlet, csak egy stabil, termelés‑kész megoldás. + +--- + +## Amit megtanulsz + +- Hogyan állíts be egy új `Workbook`‑ot, és célozd meg az első munkalapját. +- A pontos módszer a **save workbook as pdf** végrehajtására a numerikus pontosság megőrzésével. +- Miért fontos a `SignificantDigits` tulajdonság, amikor **export worksheet to pdf**‑t végzel. +- Gyakori buktatók a **how to export excel to pdf** során, és hogyan kerüld el őket. +- Gyors módszerek a **save excel as pdf** különböző oldalbeállításokkal, valamint a **create pdf from worksheet** programozott létrehozására. + +### Előfeltételek + +- .NET 6.0 vagy újabb (a kód .NET Framework 4.5+‑tel is működik). +- Érvényes Aspose.Cells licenc (vagy egy ingyenes ideiglenes licenc teszteléshez). +- Visual Studio 2022 vagy bármely C#‑kompatibilis IDE. + +Ha ezek megvannak, merüljünk el. + +--- + +## 1. lépés – Aspose.Cells telepítése és a Workbook inicializálása + +Először is szükséged van az Aspose.Cells NuGet csomagra. Nyiss egy terminált a projekt mappájában, és futtasd: + +```bash +dotnet add package Aspose.Cells +``` + +Miután a csomag telepítve van, hozz létre egy új `Workbook` objektumot. Ez az objektum lesz, amelyet végül **save workbook as pdf**‑vel mentünk. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialise a fresh workbook – think of it as a blank Excel file. + Workbook workbook = new Workbook(); + + // Grab the first worksheet (index 0). This is where we’ll put our data. + Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Miért ez a lépés?* +A workbook létrehozása egy tiszta vásznat ad, és az első munkalap kiválasztása biztosítja, hogy egy ismert helyen dolgozol. Ennek kihagyása *null reference* hibához vezethet, amikor később **export worksheet to pdf**‑t próbálsz végrehajtani. + +--- + +## 2. lépés – Nagy pontosságú adat beszúrása + +Most egy számot helyezünk el, amely több tizedesjegyet tartalmaz, mint amennyit a PDF‑ben meg szeretnénk jeleníteni. Ez szemlélteti, hogyan vágja le a `SignificantDigits` beállítás a kimenetet. + +```csharp + // Place a high‑precision number in cell A1. + worksheet.Cells["A1"].PutValue(1234.56789); +``` + +Ha most futtatod a programot, és egyszerűen meghívod a `workbook.Save("output.pdf")`‑t, a PDF a teljes `1234.56789` értéket mutatja. Ez bizonyos esetekben megfelelő, de gyakran szükség van arra, hogy egy meghatározott számú jelentős számjegyre kerekítsünk – különösen pénzügyi jelentések esetén. + +--- + +## 3. lépés – PDF mentési beállítások konfigurálása + +Az Aspose.Cells finomhangolt vezérlést biztosít a `PdfSaveOptions` segítségével. A számunkra fontos tulajdonság a `SignificantDigits`. Ennek `4`‑re állítása azt mondja a motornak, hogy csak négy jelentős számjegyet tartson meg, amikor **save workbook as pdf**‑t hajtunk végre. + +```csharp + // Configure PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 // This trims the number to 1235 in the PDF. + }; +``` + +*Miért használjuk a `SignificantDigits`‑et?* +Amikor **create pdf from worksheet**‑t készítesz, gyakran szabályozott kerekítési szabályokat kell betartani. Ez a beállítás automatikusan elvégzi a kerekítést, így nem kell minden cellát manuálisan formázni. + +--- + +## 4. lépés – Munkalap exportálása PDF‑be a beállításokkal + +Itt jön a döntő pillanat: ténylegesen **save workbook as pdf** a korábban definiált opciókkal. + +```csharp + // Save the workbook as a PDF using the configured options. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + } +} +``` + +A program futtatása egy `SignificantDigits.pdf` nevű fájlt hoz létre a projekt kimeneti mappájában. Nyisd meg, és láthatod, hogy az A1 cellában `1235` szerepel – a szám négy jelentős számjegyre lett kerekítve. + +*Fontos:* A `Save` metódus mind a fájl útvonalát, mind a `PdfSaveOptions`‑t megkapja. Ha kihagyod a beállításokat, az alapértelmezett viselkedés lép életbe, ami nem biztos, hogy megfelel a pontossági igényeidnek. + +--- + +## 5. lépés – Az eredmény ellenőrzése és gyakori problémák hibaelhárítása + +### Várt eredmény + +- Egyoldalas PDF `SignificantDigits.pdf` néven. +- Az A1 cella `1235`‑et (négy jelentős számjegyet) mutat. +- Nem jelenik meg extra munkalap vagy rejtett tartalom. + +### Gyakran feltett kérdések + +| Question | Answer | +|----------|--------| +| **What if I need more than one worksheet?** | Loop through `workbook.Worksheets` and apply the same `PdfSaveOptions` when you save each sheet individually, or set `OnePagePerSheet = true` in the options. | +| **Can I keep the original number format?** | Yes – set `PdfSaveOptions.AllColumnsInOnePage = true` and let Excel’s formatting rules handle it, but remember that `SignificantDigits` will still override the numeric precision. | +| **Does this work with .xlsx files that already exist?** | Absolutely. Replace `new Workbook()` with `new Workbook("input.xlsx")` and the rest of the code stays the same. | +| **What if the PDF is blank?** | Verify that the workbook actually contains data and that you’re saving to a writable directory. Also, ensure the Aspose.Cells license is correctly applied; an unlicensed trial may limit output. | + +### Pro Tip + +Ha **save excel as pdf**‑t szeretnél egy adott oldalorientációval, állítsd be a `pdfSaveOptions.PageSetup.Orientation = PageOrientation.Landscape;`‑t a `Save` hívása előtt. Ez a kis trükk gyakran megspórolja a PDF későbbi manuális módosítását. + +--- + +## Variációk: Több lap exportálása vagy egyedi oldalbeállítások + +### Az összes lap exportálása egy hívással + +```csharp +PdfSaveOptions allSheetsOptions = new PdfSaveOptions +{ + SignificantDigits = 4, + OnePagePerSheet = true // Each worksheet gets its own page. +}; + +workbook.Save("AllSheets.pdf", allSheetsOptions); +``` + +### Egyetlen lap exportálása PDF‑be + +Ha csak egy adott lapot szeretnél **export worksheet to pdf**, használd a `Worksheet` objektum `ToPdf` metódusát: + +```csharp +Worksheet sheet = workbook.Worksheets["Sheet2"]; +sheet.ToPdf("Sheet2.pdf", pdfSaveOptions); +``` + +### Oldalmargók módosítása + +```csharp +pdfSaveOptions.PageSetup.TopMargin = 20; +pdfSaveOptions.PageSetup.BottomMargin = 20; +``` + +Ezekkel a finomhangolásokkal a végső dokumentumot anélkül tudod optimalizálni, hogy utólagos feldolgozásra lenne szükség. + +--- + +## Teljes működő példa + +Az alábbi kód egy komplett, másolás‑beillesztés‑kész program, amely mindent tartalmaz, amit eddig tárgyaltunk. Mentsd `Program.cs`‑ként, és futtasd a `dotnet run` parancsot. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and select the first worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Insert a high‑precision number. + worksheet.Cells["A1"].PutValue(1234.56789); + + // 3️⃣ Set PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 + }; + + // 4️⃣ Save the workbook as PDF. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + + // Optional: Export another sheet with custom settings. + // Worksheet sheet2 = workbook.Worksheets.Add("Report"); + // sheet2.Cells["B2"].PutValue(9876.54321); + // sheet2.ToPdf("Report.pdf", pdfSaveOptions); + } +} +``` + +**Eredmény:** Nyisd meg a `SignificantDigits.pdf`‑t – a kerekített érték `1235`‑et fogod látni. A fájlméret kicsi, a megjelenés pedig megegyezik az eredeti Excel‑lap elrendezésével. + +--- + +## Összegzés + +Megmutattuk, hogyan **save workbook as pdf** Aspose.Cells‑szel, az alapbeállítástól a haladó opciókig, mint a **export worksheet to pdf**, **how to export excel to pdf**, és a **create pdf from worksheet** pontos numerikus vezérléssel. + +A megközelítés egyszerű, néhány C# sorra van szükség, és minden .NET verzióval működik. Következő lépésként érdemes fejléceket/lábléceket hozzáadni, képeket beágyazni, vagy sablonokból PDF‑eket generálni – mindez a most megszerzett alapra épül. + +Van valami saját ötleted? Talán jelszóval szeretnéd védeni a PDF‑et, vagy több PDF‑et egyesíteni. Ezek természetes kiterjesztések, és az Aspose.Cells API mindezt lefedi. Merülj el, kísérletezz, és hagyd, hogy a könyvtár végezze a nehéz munkát. + +--- + +![save workbook as pdf screenshot](/images/save-workbook-as-pdf.png){alt="save workbook as pdf example showing the generated PDF file"} + +*Boldog kódolást! Ha elakadtál, írj egy megjegyzést alul, és együtt megoldjuk a problémát.* + +{{< /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/hungarian/net/converting-excel-files-to-other-formats/_index.md b/cells/hungarian/net/converting-excel-files-to-other-formats/_index.md index c4ac036ae7..3d938fb30a 100644 --- a/cells/hungarian/net/converting-excel-files-to-other-formats/_index.md +++ b/cells/hungarian/net/converting-excel-files-to-other-formats/_index.md @@ -65,7 +65,9 @@ Ebben a részletes oktatóanyagban megtudhatja, hogyan menthet munkafüzetet Str ### [Dokumentumkonverziós folyamat követése programozottan .NET-ben](./tracking-document-conversion-progress/) leírás: Ebben a részletes oktatóanyagban megtudhatja, hogyan követheti nyomon a dokumentumkonverzió előrehaladását programozottan az Aspose.Cells for .NET használatával. ### [Dokumentumkonverziós folyamatkövetés TIFF formátumban programozottan .NET-ben](./tracking-document-conversion-progress-for-tiff/) -Tanuld meg, hogyan követheted nyomon a TIFF konverzió előrehaladását programozottan az Aspose.Cells for .NET használatával lépésről lépésre bemutató útmutatónkkal. Fejleszd dokumentumkezelési készségeidet. +Tanuld meg, hogyan követheted nyomon a TIFF konverzió előrehaladását programozottan az Aspose.Cells for .NET használatával lépésről‑lépésre bemutató útmutatónkkal. Fejleszd dokumentumkezelési készségeidet. +### [PowerPoint létrehozása Excelből – Lépésről‑lépésre C# útmutató](./create-powerpoint-from-excel-step-by-step-c-guide/) +Ismerje meg, hogyan hozhat létre PowerPoint‑prezentációt Excel‑adatokból C#‑ban az Aspose.Cells segítségével, lépésről‑lépésre. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hungarian/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md b/cells/hungarian/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md new file mode 100644 index 0000000000..75070e3d5a --- /dev/null +++ b/cells/hungarian/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md @@ -0,0 +1,238 @@ +--- +category: general +date: 2026-03-30 +description: Készítsen PowerPoint-ot Excelből gyorsan az Aspose.Cells és az Aspose.Slides + segítségével. Tanulja meg, hogyan exportálhatja a munkalapot képként, és mentheti + a prezentációt PPTX formátumban C#-ban. +draft: false +keywords: +- create powerpoint from excel +- convert excel to powerpoint +- export worksheet as image +- save presentation as pptx +- export excel chart as picture +language: hu +og_description: Készíts PowerPoint-ot Excelből C#-ban az Aspose segítségével. Exportáld + a munkalapot képként, tartsd szerkeszthetőnek a formákat, és mentsd el az eredményt + PPTX formátumban. +og_title: PowerPoint létrehozása Excelből – Teljes C# oktatóanyag +tags: +- Aspose +- C# +- Office Automation +title: PowerPoint létrehozása Excelből – Lépésről lépésre C# útmutató +url: /hu/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PowerPoint létrehozása Excelből – Teljes C# útmutató + +Valaha szükséged volt **PowerPoint létrehozására Excelből**, de nem tudtad, melyik könyvtár tudja szerkeszthetővé tenni a diagramjaidat? Nem vagy egyedül. Sok jelentési helyzetben egy táblázatot szeretnél diavetítésévé alakítani anélkül, hogy elveszítenéd a szövegdobozok későbbi módosításának lehetőségét. Ez az útmutató pontosan megmutatja, hogyan **konvertálhatod az Excelt PowerPointba** az Aspose.Cells és az Aspose.Slides segítségével, miközben bemutatja, hogyan **exportálhatod a munkalapot képként**, és végül **mentheted a prezentációt PPTX formátumban**. + +Végigvezetünk minden kódsoron, elmagyarázzuk, *miért* fontos minden beállítás, és még azt is megvitatjuk, mit tegyünk, ha a munkafüzeted összetett diagramokat tartalmaz, amelyeket inkább képként szeretnél exportálni. A végére egy azonnal futtatható C# konzolalkalmazást kapsz, amely a `ShapesDemo.xlsx` fájlt `Result.pptx`-re alakítja – mindezt szerkeszthető szövegdobozokkal és éles képekkel. + +## Amire Szükséged Van + +- .NET 6.0 vagy újabb (az API .NET Framework‑kel is működik, de a .NET 6 a legoptimálisabb). +- **Aspose.Cells** és **Aspose.Slides** NuGet csomagok (az ingyenes próbaverzió licenc is működik teszteléshez). +- Alapvető ismeret a C# szintaxisról – ha tudsz `Console.WriteLine`-t írni, már készen állsz. + +Nincs szükség további COM interopra, nincs Office telepítve a szerveren, és nincs manuális képmásolás. Minden programozott módon történik. + +## PowerPoint létrehozása Excelből – Munkafüzet betöltése és exportálási beállítások megadása + +Az első lépés, hogy megnyitjuk az Excel fájlt, és megmondjuk az Aspose.Cells-nek, hogyan szeretnénk megjeleníteni a munkalapot. Az `ImageOrPrintOptions` objektumban történik a varázslat: engedélyezzük az `ExportShapes` és az `ExportEditableTextBoxes` beállításokat, hogy minden alakzat (beleértve a diagramokat is) a diára kerüljön **és** a konverzió után szerkeszthető maradjon. + +```csharp +using Aspose.Cells; +using Aspose.Slides; + +// 1️⃣ Load the Excel workbook +string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; +Workbook workbook = new Workbook(excelPath); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first sheet + +// 2️⃣ Configure image export – keep shapes editable +ImageOrPrintOptions imageOptions = new ImageOrPrintOptions +{ + OnePagePerSheet = true, // Export the whole sheet as one slide + ExportShapes = true, // Include shapes (charts, drawings) + ExportEditableTextBoxes = true // Make text boxes editable in PPTX +}; +``` + +**Miért ezek a jelzők?** +- `OnePagePerSheet` megakadályozza, hogy a munkalap több diára legyen felosztva – egyetlen, teljes méretű képet kapsz. +- `ExportShapes` azt mondja az Aspose.Cells-nek, hogy rasterizálja a diagramokat *és* a vektoros alakzatokat, megőrizve azok megjelenését. +- `ExportEditableTextBoxes` a titkos összetevő, amely lehetővé teszi, hogy duplán kattints egy szövegdobozra a PowerPointban, és szerkeszd a szöveget anélkül, hogy újra megnyitnád az Excelt. + +> **Pro tipp:** Ha csak egy statikus képre van szükséged a diagramról, állítsd `ExportShapes = false`-ra, és később használd az `ExportExcelChartAsPicture` metódust (lásd a végső szekciót). + +## Excel konvertálása PowerPointba – Kép generálása a munkalapról + +Miután a beállítások készen vannak, a munkalapot `System.Drawing.Image`-é alakítjuk. A `WorksheetToImageConverter` végzi a nehéz munkát, alkalmazva a most definiált beállításokat. + +```csharp +// 3️⃣ Convert the worksheet to an image using the options above +WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); +System.Drawing.Image sheetImage = converter.ConvertToImage(0, imageOptions); +``` + +A `0` argumentum az első oldalt jelzi (csak egy van, a `OnePagePerSheet` miatt). Az eredményül kapott `sheetImage` megőrzi az eredeti DPI-t, így a diád nem lesz pixeles még nagy felbontású kijelzőkön sem. + +## Prezentáció mentése PPTX‑ként – Kép beszúrása egy diára + +Most létrehozunk egy új PowerPoint fájlt, hozzáadunk egy diát, és ráhelyezzük a bitmapet. Az Aspose.Slides a képet *képkeret* alakzatként kezeli, amelyet később átméretezhetsz vagy áthelyezhetsz, akárcsak bármely natív PowerPoint objektumot. + +```csharp +// 4️⃣ Create a new PowerPoint presentation +Presentation presentation = new Presentation(); +ISlide slide = presentation.Slides[0]; // The default blank slide + +// Add the Excel‑derived image as a picture frame +slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, // Simple rectangle container + 0, 0, // Top‑left corner (0,0) + sheetImage.Width, // Width of the picture + sheetImage.Height, // Height of the picture + sheetImage); // The bitmap we generated +``` + +> **Mi van, ha a kép nagyobb, mint a dia mérete?** +> A PowerPoint automatikusan levágja a dia méretét meghaladó részeket. Egy gyors megoldás, ha a képet a beszúrás előtt átméretezed: + +```csharp +float scale = Math.Min(presentation.SlideSize.Size.Width / (float)sheetImage.Width, + presentation.SlideSize.Size.Height / (float)sheetImage.Height); +int newWidth = (int)(sheetImage.Width * scale); +int newHeight = (int)(sheetImage.Height * scale); +``` + +Ezután átadhatod a `newWidth` és `newHeight` értékeket az `AddPictureFrame`-nek. + +## Munkalap exportálása képként – PPTX fájl mentése + +Végül elmentjük a prezentációt a lemezre. A `SaveFormat.Pptx` jelző garantálja a modern OpenXML formátumot, amely minden legújabb PowerPoint verzióval működik. + +```csharp +// 5️⃣ Save the presentation as a PPTX file +string pptxPath = "YOUR_DIRECTORY/Result.pptx"; +presentation.Save(pptxPath, SaveFormat.Pptx); +``` + +Amikor megnyitod a `Result.pptx`-t, egyetlen diát látsz, amely pontosan úgy néz ki, mint az Excel munkalapod, de továbbra is rákattinthatsz bármely szövegdobozra, és közvetlenül a PowerPointban szerkesztheted a tartalmát. + +## Excel diagram exportálása képként – Amikor a raszteres képek előnyben részesülnek + +Néha nincs szükség szerkeszthető alakzatokra; egy magas minőségű PNG diagram elég. Az Aspose.Cells képes egy adott diagramot képként exportálni anélkül, hogy az egész munkalapot konvertálná: + +```csharp +// Example: Export the first chart on the sheet as a PNG +int chartIndex = 0; // Adjust if you have multiple charts +Chart chart = worksheet.Charts[chartIndex]; +ImageOrPrintOptions chartOptions = new ImageOrPrintOptions +{ + ImageFormat = ImageFormat.Png, + OnePagePerSheet = false +}; +chart.ToImage("chart.png", chartOptions); +``` + +Ezután beágyazhatod a `chart.png`-t egy diára ugyanúgy, ahogy a `sheetImage`-t hozzáadtuk. Ez a megközelítés csökkenti a PPTX fájl méretét, és hasznos, ha a környező adatokra a dián nincs szükség. + +## Gyakori Hibák és Hogyan Kerülhetők El + +| Probléma | Miért fordul elő | Megoldás | +|----------|------------------|----------| +| **A szöveg elmosódott** | Alacsony DPI-n exportálva (alapértelmezett 96). | Állítsd `imageOptions.Dpi = 300;`-ra a konverzió előtt. | +| **Az alakzatok eltűnnek** | `ExportShapes` `false` maradt. | Győződj meg róla, hogy `ExportShapes = true`, ha szerkeszthető grafikára van szükség. | +| **Dia méreteltérés** | A kép nagyobb, mint a dia méretei. | Méretezd át a képet (lásd a kódrészletet), vagy változtasd meg a dia méretét a `presentation.SlideSize` segítségével. | +| **Licenc kivétel** | A próbaverzió használata megfelelő aktiválás nélkül. | Hívd meg a `License license = new License(); license.SetLicense("Aspose.Total.lic");`-t a `Main` elején. | + +## Teljes Működő Példa (Kész a Másolásra és Beillesztésre) + +Az alábbiakban a teljes program található, amely készen áll egy új konzolprojektbe beilleszteni. Cseréld le a `YOUR_DIRECTORY`-t arra a mappára, amely az Excel fájlodat tartalmazza. + +```csharp +using System; +using Aspose.Cells; +using Aspose.Slides; +using System.Drawing; + +namespace ExcelToPowerPointDemo +{ + class Program + { + static void Main(string[] args) + { + // ----------------------------------------------------------------- + // 1️⃣ Load the Excel workbook + // ----------------------------------------------------------------- + string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; + Workbook workbook = new Workbook(excelPath); + Worksheet worksheet = workbook.Worksheets[0]; + + // ----------------------------------------------------------------- + // 2️⃣ Set up export options – keep shapes editable + // ----------------------------------------------------------------- + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + OnePagePerSheet = true, + ExportShapes = true, + ExportEditableTextBoxes = true, + Dpi = 300 // High‑resolution output + }; + + // ----------------------------------------------------------------- + // 3️⃣ Convert worksheet to an image + // ----------------------------------------------------------------- + WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); + Image sheetImage = converter.ConvertToImage(0, imageOptions); + + // ----------------------------------------------------------------- + // 4️⃣ Create PowerPoint and add the image as a slide + // ----------------------------------------------------------------- + Presentation presentation = new Presentation(); + ISlide slide = presentation.Slides[0]; + slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, + 0, 0, + sheetImage.Width, + sheetImage.Height, + sheetImage); + + // ----------------------------------------------------------------- + // 5️⃣ Save the PPTX file + // ----------------------------------------------------------------- + string pptxPath = "YOUR_DIRECTORY/Result.pptx"; + presentation.Save(pptxPath, SaveFormat.Pptx); + + Console.WriteLine("✅ PowerPoint created successfully at: " + pptxPath); + } + } +} +``` + +**Várható kimenet:** +A program futtatása kiírja: `✅ PowerPoint created successfully at: YOUR_DIRECTORY/Result.pptx`. A PPTX megnyitása egyetlen diát mutat, amely tükrözi az eredeti Excel munkalapot, szerkeszthető szövegdobozokkal. + +## Összefoglalás és Következő Lépések + +Most már tudod, hogyan **hozhatsz létre PowerPointot Excelből** az Aspose erőteljes API-jainak segítségével, hogyan **exportálhatod a munkalapot képként**, és hogyan **mentheted a prezentációt PPTX‑ként**, miközben megőrzöd a szerkeszthetőséget. Ugyanez a minta több munkalapos munkafüzeteknél is működik – egyszerűen iterálj a `workbook.Worksheets`-en, és minden egyeshez adj hozzá egy új diát. + +**Mit érdemes még felfedezni?** + +- **Kötegelt konverzió:** Iterálj egy mappán Excel fájlokkal, és minden fájlhoz generálj egy diakészletet. +- **Dinamikus elrendezések:** Használd a `slide.LayoutSlide`-t előre megtervezett PowerPoint sablonok alkalmazásához. +- **Csak diagram exportálás:** Kombináld a „Export Excel chart as picture” kódrészletet diahelyőrzőkkel egy könnyebb prezentációhoz. +- **Haladó stílus:** Alkalmazz egyedi dia háttérképeket, áttűnéseket vagy animációkat az Aspose.Slides segítségével. + +Nyugodtan kísérletezz – változtasd meg a DPI-t, cseréld le a `ShapeType.Ellipse`-t egy kör alakú képkeretre, vagy akár több képet ágyazz be egy diára. A lehetőségek határtalanok, ha programozottan irányítod a folyamatot + +{{< /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/hungarian/net/document-properties/_index.md b/cells/hungarian/net/document-properties/_index.md index 0ac135ba1b..f511dfbb67 100644 --- a/cells/hungarian/net/document-properties/_index.md +++ b/cells/hungarian/net/document-properties/_index.md @@ -35,6 +35,8 @@ Ismerje meg, hogyan érheti el a dokumentumok tulajdonságait Excelben az Aspose Tanulja meg, hogyan érheti el a dokumentumok tulajdonságait Excelben az Aspose.Cells for .NET használatával lépésről lépésre bemutató útmutatónkkal. Kezelje hatékonyan táblázatait. ### [Dokumentumtulajdonságok hozzáadása .NET-ben](./adding-document-properties/) Tanulja meg, hogyan adhat hozzá dokumentumtulajdonságokat az Excelben az Aspose.Cells for .NET használatával ebből a részletes, lépésről lépésre szóló útmutatóból. +### [Hogyan mentse el az XLSB fájlt egyéni tulajdonságokkal C#‑ban – Lépésről lépésre útmutató](./how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/) +Tanulja meg, hogyan menthet XLSB fájlt egyedi dokumentumtulajdonságokkal C#‑ban, részletes, lépésről‑lépésre útmutatóval. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hungarian/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md b/cells/hungarian/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md new file mode 100644 index 0000000000..b3f8183e48 --- /dev/null +++ b/cells/hungarian/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md @@ -0,0 +1,234 @@ +--- +category: general +date: 2026-03-30 +description: Tanulja meg, hogyan menthet XLSB fájlt C#-ban, miközben egyedi tulajdonságot + ad hozzá, visszaolvassa, és elsajátíthatja a munkafüzet XLSB formátumban történő + mentését az Aspose.Cells használatával. Teljes kód mellékelve. +draft: false +keywords: +- how to save xlsb +- add custom property +- how to add property +- how to read property +- save workbook as xlsb +language: hu +og_description: Hogyan menthetünk XLSB-t C#-ban? Ez az útmutató bemutatja, hogyan + adhatunk hozzá egyéni tulajdonságot, hogyan olvashatjuk vissza, és hogyan menthetjük + a munkafüzetet XLSB formátumban az Aspose.Cells segítségével. +og_title: Hogyan menthetünk XLSB fájlt egyedi tulajdonságokkal C#‑ban – Teljes útmutató +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Hogyan menthetünk XLSB fájlt egyedi tulajdonságokkal C#-ban – Lépésről lépésre + útmutató +url: /hu/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hogyan menthetünk XLSB‑t egyedi tulajdonságokkal C#‑ban – Lépésről‑lépésre útmutató + +Gondolkodtál már azon, **hogyan menthetünk XLSB‑t**, miközben extra metaadatokat is csatolunk egy munkalaphoz? Nem vagy egyedül. Sok vállalati helyzetben szükség van egy bináris Excel fájlra, amely mégis tartalmazza a saját kulcs/érték párokat – gondolj egy szerződés‑azonosítóra, egy feldolgozási jelzőre vagy egy verziócímkére. + +A jó hír, hogy az Aspose.Cells ezt gyerekjátékra változtatja. Ebben az útmutatóban pontosan megmutatjuk, hogyan adhatunk hozzá egy egyedi tulajdonságot, hogyan menthetjük el, majd hogyan olvashatjuk vissza, miközben **a munkafüzetet XLSB‑ként mentjük**. Nincs homályos hivatkozás, csak egy teljes, futtatható példa, amelyet ma beilleszthetsz a projektedbe. + +## Mit fogsz megtanulni + +- Egy friss `.xlsb` fájl létrehozása a semmiből. +- **Egyedi tulajdonság hozzáadása** egy munkalaphoz. +- Kód, amely **bemutatja, hogyan olvassuk ki a tulajdonságot** a fájl újratöltése után. +- Tippek a lehetséges buktatókról, amikor **a munkafüzetet XLSB‑ként mented**. + +> **Előfeltételek:** .NET 6+ (vagy .NET Framework 4.6+), Visual Studio (vagy bármely C# IDE), valamint az Aspose.Cells for .NET könyvtár telepítve NuGet‑en keresztül. Egyéb semmi. + +--- + +## 1. lépés: A projekt beállítása és új munkafüzet létrehozása + +Először is szerezzünk egy tiszta munkafüzet objektumot. + +```csharp +using Aspose.Cells; +using System; + +// Initialize a new workbook; this will be an in‑memory Excel file. +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0) – it’s created automatically. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Miért fontos:* A `Workbook` az Aspose.Cells minden műveletének belépési pontja. Egy vadonatúj példánnyal elkerülöd az esetleges rejtett állapotot, amely később korrumpálhatja az egyedi metaadataidat. + +--- + +## 2. lépés: **Egyedi tulajdonság hozzáadása** a munkalaphoz + +Most egy kulcs/érték párt csatolunk, amely csak ezen a lapon él. + +```csharp +// Add a user‑defined property called "MyProperty" with the value "CustomValue". +worksheet.CustomProperties.Add("MyProperty", "CustomValue"); +``` + +> **Pro tipp:** A tulajdonságnevek kis‑ és nagybetű érzékenyek. Ha később `"myproperty"`‑t próbálsz lekérni, `KeyNotFoundException`-t kapsz. Alkalmazz egységes elnevezési konvenciót – camelCase vagy PascalCase – már az elején. + +--- + +## 3. lépés: **Munkafüzet mentése XLSB‑ként** – a tulajdonság megőrzése + +A varázslat akkor történik, amikor a munkafüzetet a bináris XLSB formátumba írjuk. + +```csharp +// Define the output path. Adjust the folder to something writable on your machine. +string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + +// Save the workbook; the custom property travels with the file. +workbook.Save(outputPath, SaveFormat.Xlsb); +``` + +*Mit csinálsz valójában:* A `SaveFormat.Xlsb` enum azt mondja az Aspose.Cells‑nek, hogy bináris Excel fájlt állítson elő (gyorsabb a megnyitás, kisebb a lemezméret). Az összes munkalap‑szintű egyedi tulajdonság automatikusan sorosítva van – nincs szükség extra lépésekre. + +--- + +## 4. lépés: A fájl újratöltése és **hogyan olvassuk ki a tulajdonságot** + +Bizonyítsuk be, hogy a tulajdonság túlélte a körutazást. + +```csharp +// Load the just‑saved XLSB file back into memory. +Workbook reloadedWorkbook = new Workbook(outputPath); + +// Access the same worksheet (index 0) and fetch the property value. +string customValue = reloadedWorkbook.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); +``` + +Ha minden rendben ment, a `customValue` most `"CustomValue"` értéket tartalmaz. + +--- + +## 5. lépés: Az eredmény ellenőrzése – gyors konzol‑kimenet + +Egy apró sanity‑check segít a fejlesztés során. + +```csharp +Console.WriteLine($"Custom property value: {customValue}"); +``` + +A program futtatása a következőt írja ki: + +``` +Custom property value: CustomValue +``` + +Ez a sor azt jelenti, hogy sikeresen elsajátítottad **hogyan menthetünk XLSB‑t**, **hogyan adhatunk egyedi tulajdonságot**, és **hogyan olvashatjuk ki a tulajdonságot** – mindezt egy tiszta folyamatban. + +--- + +## Teljes működő példa (másolás‑beillesztés kész) + +Az alábbi kódrészlet a teljes program. Illeszd be egy új Console App‑ba, nyomd meg az **F5**‑öt, és figyeld, ahogy a konzol megerősíti a tulajdonság értékét. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // 1️⃣ Create a new workbook and get its first sheet + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // 2️⃣ Add a custom property (key/value) to the sheet + // ------------------------------------------------- + worksheet.CustomProperties.Add("MyProperty", "CustomValue"); + + // ------------------------------------------------- + // 3️⃣ Save the workbook as XLSB – the property is kept + // ------------------------------------------------- + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(outputPath, SaveFormat.Xlsb); + + // ------------------------------------------------- + // 4️⃣ Reload the saved file to demonstrate persistence + // ------------------------------------------------- + Workbook reloaded = new Workbook(outputPath); + + // ------------------------------------------------- + // 5️⃣ Retrieve the custom property's value + // ------------------------------------------------- + string customValue = reloaded.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); + + // ------------------------------------------------- + // 6️⃣ Display the retrieved value (optional) + // ------------------------------------------------- + Console.WriteLine($"Custom property value: {customValue}"); + } +} +``` + +> **Ne feledd:** Módosítsd az `outputPath`‑t egy olyan mappára, amelybe írási jogosultságod van. Linux/macOS esetén használj például `"/tmp/WithCustomProp.xlsb"` útvonalat. + +--- + +## Gyakori kérdések és széljegyek + +### Mi van, ha a tulajdonság már létezik? +Az `Add` hívás meglévő kulccsal `ArgumentException`‑t dob. Használd a `ContainsKey`‑t, vagy csomagold a hívást `try/catch`‑be, ha nem vagy biztos benne. + +```csharp +if (!worksheet.CustomProperties.ContainsKey("MyProperty")) +{ + worksheet.CustomProperties.Add("MyProperty", "AnotherValue"); +} +``` + +### Tárolhatok nem‑string értékeket? +Természetesen. A `Value` tulajdonság bármilyen `object`‑et elfogad. Számok, dátumok vagy logikai értékek esetén csak add át a megfelelő típust – az Aspose.Cells a visszaolvasáskor elvégzi a konverziót. + +### Megmarad a tulajdonság, ha XLSX‑re konvertálok? +Igen. Az egyedi tulajdonságok a munkalap XML‑reprzentációjának részei, így megmaradnak az XLSX, XLS és XLSB formátumok között is. + +### **Hogyan adhatok hozzá tulajdonságot** több laphoz? +Iterálj a `Worksheets` gyűjteményen, és alkalmazd ugyanazt a `CustomProperties.Add` hívást minden szükséges lapra. + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + ws.CustomProperties.Add("ExportedBy", "MyApp"); +} +``` + +### Teljesítmény‑tipp, amikor **tömegesen mentünk munkafüzetet XLSB‑ként** +Ha több száz fájlt generálsz, újrahasználd ugyanazt a `Workbook` példányt, és minden mentés után hívd a `Clear`‑t a memória felszabadításához. Emellett állítsd be a `Workbook.Settings.CalculateFormulaOnOpen = false`‑t, ha nem szükséges a képletek betöltéskor történő kiértékelése. + +--- + +## Összegzés + +Most már tudod, **hogyan menthetünk XLSB‑t** C#‑ban, miközben egyedi tulajdonságot ágyazunk be és később visszaolvassuk az Aspose.Cells segítségével. A teljes megoldás – a munkafüzet létrehozása, tulajdonság hozzáadása, **a munkafüzet mentése XLSB‑ként**, újratöltése és az érték kiolvasása – kevesebb mint 50 sor kódban megvalósítható. + +Innen tovább felfedezheted: + +- Több egyedi tulajdonság hozzáadása laponként. +- Összetett objektumok tárolása JSON‑stringként. +- Az XLSB fájl titkosítása extra biztonságért. + +Próbáld ki ezeket az ötleteket, és hamarosan te leszel a csapatod Excel‑automatizálásának szakértője. Van kérdésed vagy egy bonyolult szituáció? Írj egy megjegyzést alul, és jó kódolást kívánunk! + +![How to save XLSB with custom property](/images/how-to-save-xlsb.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/hungarian/net/excel-copy-worksheet/_index.md b/cells/hungarian/net/excel-copy-worksheet/_index.md index 1c00447c6e..96797e4fd8 100644 --- a/cells/hungarian/net/excel-copy-worksheet/_index.md +++ b/cells/hungarian/net/excel-copy-worksheet/_index.md @@ -42,6 +42,7 @@ Az Aspose.Cells for .NET hatékony funkciókat kínál az Excel-fájlok kezelés | [Excel másolási munkalap](./excel-copy-worksheet/) | Tanulja meg, hogyan másolhat Excel-munkafüzetet az Aspose.Cells for .NET használatával ezzel a könnyen követhető, lépésről lépésre haladó útmutatóval. Ideális .NET-fejlesztők számára, akik automatizálni szeretnék az Excel-feladatokat. | | [Excel munkalapok másolása munkafüzetek között](./excel-copy-worksheets-between-workbooks/) | Ismerje meg, hogyan másolhat munkalapokat Excel munkafüzetek között az Aspose.Cells for .NET használatával. Lépésről lépésre útmutató kódpéldákkal a táblázatkezelés egyszerűsítéséhez. | | [Excel Áthelyezési Munkalap](./excel-move-worksheet/) | Tanuld meg, hogyan kell munkalapokat áthelyezni Excelben az Aspose.Cells for .NET használatával lépésről lépésre bemutató útmutatónkban. Sajátítsd el az Excel programozás művészetét. | +| [Hogyan másoljon munkalapot C#-ban az Aspose.Cells segítségével – Teljes útmutató](./how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/) | Tanulja meg, hogyan másolhat munkalapot C#-ban az Aspose.Cells használatával ebben a részletes útmutatóban. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hungarian/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md b/cells/hungarian/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md new file mode 100644 index 0000000000..57bedab934 --- /dev/null +++ b/cells/hungarian/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md @@ -0,0 +1,269 @@ +--- +category: general +date: 2026-03-30 +description: Miként másolhatunk munkalapot C#-ban az Aspose.Cells használatával – + lépésről‑lépésre útmutató, amely bemutatja a cellatartomány másolását, oszlopok + másolását munkalapok között, a munkalap pivot táblájának másolását és új munkalap + hozzáadásának kódját. +draft: false +keywords: +- how to copy worksheet +- copy cell range +- copy columns between sheets +- copy worksheet pivot table +- add new worksheet code +language: hu +og_description: Tudja meg, hogyan másolhat munkalapot C#-ban az Aspose.Cells segítségével. + Ez az útmutató bemutatja a cellatartomány másolását, a pivot táblák megőrzését, + az oszlopok másolását lapok között, valamint az új munkalap hozzáadásának kódját. +og_title: Munkalap másolása C#-ban – Teljes Aspose.Cells útmutató +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Hogyan másoljunk munkalapot C#-ban az Aspose.Cells segítségével – Teljes útmutató +url: /hu/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hogyan másoljuk a munkalapot C#-ban az Aspose.Cells segítségével – Teljes útmutató + +Gondolkodtál már azon, **hogyan másoljunk munkalapot** C#-ban anélkül, hogy egyetlen pivot tábla vagy képlet is elveszne? Nem vagy egyedül – sok fejlesztő akad el, amikor egy lapot kell megkettőzni, miközben minden funkciót meg akar tartani. Ebben az útmutatóban egy gyakorlati, vég‑től‑végig megoldást mutatunk be, amely nem csak az adatokat másolja, hanem megőrzi a **copy worksheet pivot table**-t, kezeli a **copy cell range**-t, és bemutatja a szükséges **add new worksheet code**-ot. + +Mindent lefedünk a forrás munkafüzet betöltésétől a célfájl mentéséig, így másolhatsz oszlopokat lapok között, megőrizheted az objektumokat, és tisztán tarthatod a kódod. Nincs homályos hivatkozás, csak egy teljes, futtatható példa, amelyet ma beilleszthetsz a projektedbe. + +## Amit ez az útmutató lefed + +- Létező Excel fájl betöltése az Aspose.Cells segítségével +- A **add new worksheet code** használata a céllap létrehozásához +- **copy cell range** definiálása, amely tartalmaz egy pivot táblát +- **CopyOptions** beállítása a diagramok, képletek és pivot táblák érintetlenül tartásához +- **copy columns between sheets** végrehajtása soronkénti pontossággal +- Az eredmény mentése és annak ellenőrzése, hogy a munkalap helyesen másolódott-e + +A útmutató végére magabiztosan tudod majd megválaszolni a “how to copy worksheet” kérdést, legyen szó jelentések automatizálásáról vagy táblázat‑alapú felhasználói felület építéséről. + +## Munkalap másolása – Áttekintés + +Mielőtt a kódba merülnénk, vázoljuk fel a magas szintű folyamatot. Tekintsd úgy, mint egy receptet: + +1. **Load** a forrás munkafüzet (`Source.xlsx`). +2. **Add** egy új munkalapot a másolat tárolásához (`add new worksheet code`). +3. **Define** a területet, amelyet meg szeretnél duplikálni (`copy cell range`). +4. **Configure** a másolási beállításokat, hogy a pivot tábla megmaradjon (`copy worksheet pivot table`). +5. **Copy** sorokat és oszlopokat (`copy columns between sheets`). +6. **Save** az új munkafüzetet (`Destination.xlsx`). + +Ennyi—hat lépés, semmi varázslat. Minden lépést alább részletezünk kódrészletekkel és a mögöttes indoklással. + +## 1. lépés – A forrás munkafüzet betöltése + +Először is: szükséged van egy `Workbook` példányra, amely a másolni kívánt fájlra mutat. Ez a lépés elengedhetetlen, mivel az Aspose.Cells közvetlenül a fájlrendszerrel dolgozik, nem az Office felhasználói felületével. + +```csharp +using Aspose.Cells; + +// Path to the original file +string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; +string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + +// Load the workbook – this is the starting point for how to copy worksheet +Workbook workbook = new Workbook(sourcePath); +``` + +*Miért fontos:* A fájl betöltése egy memóriában létező reprezentációt hoz létre minden munkalapról, celláról és objektumról. Enélkül nincs mit másolni, és bármely későbbi `add new worksheet code` próbálkozás sikertelen lesz, mivel a forrásadatok nem állnak rendelkezésre. + +## 2. lépés – Új munkalap hozzáadása (add new worksheet code) + +Most szükségünk van egy helyre, ahová beilleszthetjük a másolt adatokat. Itt jön képbe a **add new worksheet code**. A lapot bármire elnevezheted; itt `"Copy"`-nek hívjuk. + +```csharp +// Grab the first worksheet (the one we want to copy) +Worksheet sourceSheet = workbook.Worksheets[0]; + +// Add a fresh worksheet to receive the copy +Worksheet copySheet = workbook.Worksheets.Add("Copy"); +``` + +*Pro tipp:* Ha több lapot szeretnél másolni, hívd meg a `Worksheets.Add`-ot egy ciklusban, és adj minden lapnak egyedi nevet. Így elkerülöd a névütközéseket, és rendezett marad a munkafüzet. + +## 3. lépés – A másolási cellatartomány meghatározása + +A **copy cell range** pontosan megmondja az Aspose.Cells-nek, mely sorokat és oszlopokat kell duplikálni. Sok valós esetben a tartomány pivot táblát is tartalmaz, ezért precíznek kell lennünk. + +```csharp +// Define the area that contains the pivot table (A1:G20) +CellArea sourceRange = new CellArea +{ + StartRow = 0, // Row 1 (zero‑based) + StartColumn = 0, // Column A + EndRow = 19, // Row 20 + EndColumn = 6 // Column G +}; + +// Destination range – we start at the same top‑left corner +CellArea destinationRange = new CellArea +{ + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 +}; +``` + +*Miért szükséges:* A tartomány explicit megadásával elkerülöd a teljes lap másolását (ami pazarló lehet), és biztosítod, hogy a pivot tábla a másolt területen belül legyen. Ez a **how to copy worksheet** lényege, ha csak a lap egy részére van szükséged. + +## 4. lépés – Másolási beállítások megadása (preserve copy worksheet pivot table) + +Az Aspose.Cells egy `CopyOptions` objektumot biztosít, amely szabályozza, mi kerül beillesztésre. A pivot tábla, diagramok és képletek megőrzéséhez beállítjuk a `PasteType.All`-t és engedélyezzük a `PasteSpecial`-t. + +```csharp +CopyOptions copyOptions = new CopyOptions +{ + PasteType = PasteType.All, // Copy everything: values, formats, objects + PasteSpecial = true // Enable special paste to retain pivot tables +}; +``` + +*Magyarázat:* A `PasteType.All` a legátfogóbb opció, míg a `PasteSpecial` azt mondja a motornak, hogy megfelelően kezelje a komplex objektumokat – például a pivot táblákat. Ennek a lépésnek a kihagyása gyakori hibaforrás; a másolt lap elveszíti interaktív funkcióit. + +## 5. lépés – Sorok és oszlopok másolása (copy columns between sheets) + +Most jön a nehéz munka: az adatok tényleges áthelyezése. A `CopyRows` és `CopyColumns` metódusokat fogjuk használni a **copy columns between sheets** kezelésére. Mindkettő alkalmazása biztosítja, hogy az egyesített cellák és oszlopszélességek megmaradjanak. + +```csharp +// Copy rows from the source to the destination sheet +sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + +// Copy columns from the source to the destination sheet +sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); +``` + +*Mi történik:* A `CopyRows` soronként mozgatja az adatokat, míg a `CopyColumns` oszloponként. Mindkettő futtatása garantálja, hogy az egész téglalap alakú blokk duplikálva legyen, ami elengedhetetlen, ha **copy columns between sheets** kell, ahol a oszlopszélességek vagy rejtett oszlopok eltérnek. + +## 6. lépés – A munkafüzet mentése + +Végül írjuk vissza a változásokat a lemezre. Ez a lépés fejezi be a **how to copy worksheet** folyamatot. + +```csharp +// Save the workbook with the newly copied sheet +workbook.Save(destinationPath); +``` + +*Ellenőrzési tipp:* Nyisd meg a `Destination.xlsx`-t, és ellenőrizd, hogy a `"Copy"` lap azonosnak tűnik-e az eredetivel, a pivot táblák működnek-e, és az oszlopszélességek egyeznek-e. Ha valami nem stimmel, nézd át a `CopyOptions` beállításokat. + +## Szélsőséges esetek és gyakori variációk + +### Több munkalap másolása + +Ha több lapot kell duplikálnod, csomagold be a fenti logikát egy `foreach` ciklusba: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + Worksheet newWs = workbook.Worksheets.Add(ws.Name + "_Copy"); + // Re‑use sourceRange/destinationRange or calculate per sheet + // Then call CopyRows/CopyColumns as shown earlier +} +``` + +### Képletek megőrzése különböző munkafüzetek között + +Ha a forrás és a cél munkafüzetek különböző névvel ellátott tartományokkal rendelkeznek, állítsd be a `copyOptions`-t `PasteType.Formulas`-ra az `All` mellett: + +```csharp +copyOptions.PasteType = PasteType.All | PasteType.Formulas; +``` + +### Nagy tartományok és teljesítmény + +Nagy adathalmazok (több százezer sor) esetén fontold meg csak a `CopyRows` használatát, és hagyd ki a `CopyColumns`-t, ha az oszlopszélességek nem kritikusak. Ez néhány másodpercet takaríthat meg. + +## Teljes működő példa + +Az alábbiakban a teljes, azonnal futtatható program található, amely magában foglalja a megbeszélteket. Illeszd be egy konzolos alkalmazásba, állítsd be a fájlutakat, és nyomd meg az **F5**-öt. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // ---------- Step 1: Load the source workbook ---------- + string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; + string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + Workbook workbook = new Workbook(sourcePath); + + // ---------- Step 2: Add a new worksheet (add new worksheet code) ---------- + Worksheet sourceSheet = workbook.Worksheets[0]; + Worksheet copySheet = workbook.Worksheets.Add("Copy"); + + // ---------- Step 3: Define the copy cell range ---------- + CellArea sourceRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + CellArea destinationRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + + // ---------- Step 4: Set copy options (preserve copy worksheet pivot table) ---------- + CopyOptions copyOptions = new CopyOptions + { + PasteType = PasteType.All, + PasteSpecial = true + }; + + // ---------- Step 5: Copy rows and columns (copy columns between sheets) ---------- + sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + + sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); + + // ---------- Step 6: Save the workbook ---------- + workbook.Save(destinationPath); + } +} +``` + +**Várható eredmény:** A `Destination.xlsx` megnyitása egy **Copy** nevű lapot mutat, amely tükrözi a `Source.xlsx` első lapját – beleértve a pivot táblákat, a formázást és az oszlopszélességeket. Az eredeti fájl érintetlen marad. + +## Gyakran Ismételt Kérdések + +**Q: Működik ez a .xlsx fájlokkal, amelyeket az Excel 2019 hozott létre?** +A: Teljesen. Az Aspose.Cells támogatja az összes modern Excel formátumot, így ugyanaz a kód működik `.xlsx`, `.xlsm`, és még a régebbi `.xls` fájlok esetén is. + +{{< /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/hungarian/net/excel-custom-number-date-formatting/_index.md b/cells/hungarian/net/excel-custom-number-date-formatting/_index.md index 0f0c2d2ad8..211759525e 100644 --- a/cells/hungarian/net/excel-custom-number-date-formatting/_index.md +++ b/cells/hungarian/net/excel-custom-number-date-formatting/_index.md @@ -36,6 +36,10 @@ Ez az oktatóanyag felvértezi Önt az adathalmazok importálásának képesség Tanuld meg, hogyan ellenőrizheted az Excel cellaértékeket egyéni számformátumokkal szemben az Aspose.Cells for .NET használatával ebből a lépésről lépésre bemutató oktatóanyagból. ### [Képletmezők megadása adatok Excel-táblázatba importálásakor](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) Ebben a részletes oktatóanyagban megtudhatja, hogyan importálhat adatokat Excel-táblázatokba megadott képletmezők használatával az Aspose.Cells for .NET használatával. +### [Szám formázása elválasztóval C#-ban – Teljes Aspose.Cells útmutató](./format-number-with-separator-in-c-complete-aspose-cells-guid/) +Tanulja meg, hogyan formázhat számokat elválasztóval C#-ban az Aspose.Cells segítségével ebben a teljes útmutatóban. +### [Dátum ISO formátumba konvertálása Excelből – Teljes C# útmutató](./format-date-iso-from-excel-complete-c-guide/) +Tanulja meg, hogyan formázhat dátumot ISO formátumban Excelből C#-ban az Aspose.Cells segítségével ebben a teljes útmutatóban. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hungarian/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md b/cells/hungarian/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..dc381dcd11 --- /dev/null +++ b/cells/hungarian/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md @@ -0,0 +1,219 @@ +--- +category: general +date: 2026-03-30 +description: Tanulja meg, hogyan formázhatja az ISO dátumot, miközben Excel dátum- + és időértékeket olvas, és hogyan nyerheti ki a dátum- és időadatokat az Excelből + az Aspose.Cells segítségével C#-ban. +draft: false +keywords: +- format date iso +- read excel datetime +- extract datetime excel +- Aspose.Cells date parsing +- Japanese era dates +language: hu +og_description: ISO formátumú dátum formázása Excel adatokból az Aspose.Cells használatával. + Ez az útmutató bemutatja, hogyan olvassuk be az Excel dátum- és időértékeket, hogyan + nyerjük ki őket, és hogyan állítsuk elő az ISO dátumokat. +og_title: ISO dátum formázása Excelből – Lépésről lépésre C# oktató +tags: +- C# +- Excel +- DateTime +- Aspose.Cells +title: ISO dátum formázása Excelből – Teljes C# útmutató +url: /hu/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# ISO dátum formázása Excelből – Teljes C# útmutató + +Valaha is szükséged volt **ISO dátum formázására**, amikor dátumokat nyersz ki egy Excel táblázatból? Lehet, hogy japán era dátumokkal küzdesz, vagy egyszerűen csak egy tiszta `yyyy‑MM‑dd` karakterláncot szeretnél egy API payloadhez. Ebben az útmutatóban pontosan megmutatjuk, hogyan **olvasd be az Excel datetime** cellákat, **nyerd ki az Excel datetime** értékeket, és alakítsd őket ISO‑8601 formátumba – találgatás nélkül. + +Átvezetünk egy valós példán, amely az Aspose.Cells‑t használja, elmagyarázza, miért fontos minden sor, és megmutatja a végső kimenetet, amelyet egyszerűen beilleszthetsz a projektedbe. A végére képes leszel kezelni a „令和3年5月1日”‑hez hasonló szokatlan era karakterláncokat, és előállítani egy szabványos ISO dátumot, amely készen áll adatbázisokba, JSON‑ba vagy bárhová, ahová csak szükséged van. + +## Előfeltételek + +- .NET 6.0 vagy újabb (a kód .NET Framework‑kel is működik) +- Aspose.Cells for .NET (ingyenes próba vagy licencelt verzió) +- Alapvető ismeretek C#‑ról és az Excel koncepciókról +- Visual Studio vagy bármely kedvelt C# szerkesztő + +Nem szükséges további NuGet csomag az Aspose.Cells‑en kívül, így a beállítás meglehetősen egyszerű. + +--- + +## 1. lépés: Workbook létrehozása és az első munkalap kiválasztása + +Az első dolog, amit csinálsz, egy új `Workbook` objektum létrehozása. Ez egy memóriában lévő reprezentációt ad egy Excel fájlról, amelyet aztán manipulálhatsz vagy olvashatsz. + +```csharp +using Aspose.Cells; +using System.Globalization; + +// Step 1: Initialize a new workbook and grab the first worksheet +Workbook workbook = new Workbook(); // creates an empty .xlsx +Worksheet worksheet = workbook.Worksheets[0]; // the default sheet is "Sheet1" +``` + +*Miért fontos ez:* +A workbook programozott létrehozása lehetővé teszi, hogy a tesztelés során elkerüld a fizikai fájlokkal való foglalkozást. Emellett biztosítja, hogy a munkalap hivatkozás mindig érvényes legyen – nincs későbbi null‑referencia meglepetés, amikor **Excel datetime** értékeket próbálsz **olvasni**. + +--- + +## 2. lépés: Japán era dátum karakterlánc írása egy cellába + +Célunk, hogy bemutassuk egy nem‑görög dátum feldolgozását. Az era karakterláncot közvetlenül az **A1** cellába helyezzük. + +```csharp +// Step 2: Insert a Japanese era date string into cell A1 +worksheet.Cells["A1"].PutValue("令和3年5月1日"); +``` + +*Pro tipp:* Ha meglévő munkafüzetből húzod az adatokat, kihagyod a `PutValue` hívást, és egyszerűen hivatkozol arra a cellára, amely már tartalmazza a dátumot. A lényeg, hogy a cella egy **string**‑et tartalmaz, amely a japán luniszoláris naptárban lévő dátumot képviseli. + +--- + +## 3. lépés: Olyan kultúra beállítása, amely érti a japán luniszoláris naptárat + +A .NET `CultureInfo` osztálya lehetővé teszi, hogy meghatározd, hogyan értelmezze a dátumokat a rendszer. Az alapértelmezett gregorián naptár helyettesítésével a `JapaneseLunisolarCalendar`‑rel a parser megkapja a szükséges kontextust. + +```csharp +// Step 3: Set up a culture using the Japanese lunisolar calendar +CultureInfo japaneseCulture = new CultureInfo("ja-JP"); +japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); +``` + +*Miért csináljuk ezt:* +Ha a „令和3年5月1日” karakterláncot az alapértelmezett kultúrával próbálnád meg parse‑olni, a .NET `FormatException`‑t dobna. A luniszoláris naptár beállítása pontosan megmondja a futtatókörnyezetnek, hogyan kell a „令和3年” (a Reiwa korszak 3. éve) értéket a gregorián 2021‑es évre leképezni. + +--- + +## 4. lépés: A cella értékének parse‑olása `DateTime`‑ként a beállított kultúrával + +Most jön a művelet szíve – az era karakterlánc átalakítása egy megfelelő `DateTime` objektummá. Az Aspose.Cells egy kényelmes `GetDateTime` overload‑ot biztosít, amely elfogad egy `CultureInfo`‑t. + +```csharp +// Step 4: Retrieve the cell value as a DateTime, respecting the Japanese culture +DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); +``` + +*Mi történik a háttérben:* +A `GetDateTime` beolvassa a nyers karakterláncot, alkalmazza a megadott kultúra naptárszabályait, és egy `DateTime`‑ot ad vissza, amely ugyanazt a pillanatot reprezentálja a gregorián naptárban. Ez az a pont, amikor **Excel datetime** adatot **kinyered** olyan formában, amelyet a .NET‑ben felhasználhatsz. + +--- + +## 5. lépés: A parse‑olt dátum kiírása ISO 8601 formátumban + +Végül a `DateTime`‑ot ISO karakterláncként formázzuk – `yyyy‑MM‑dd` – amely univerzálisan elfogadott az API‑k, adatbázisok és front‑end keretrendszerek számára. + +```csharp +// Step 5: Print the date in ISO format (e.g., 2021-05-01) +Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // Output: 2021-05-01 +``` + +*Miért ISO?* +Az ISO 8601 kiküszöböli a kétértelműséget. A „05/01/2021” lehet május 1. vagy január 5. a helyi beállításoktól függően. A `2021-05-01` kristálytiszta, ezért szinte minden integrációs scenárióban **ISO dátum formázást** használunk. + +--- + +## Teljes működő példa + +Az alábbi kód a teljes, azonnal futtatható programot mutatja. Másold be egy konzolos alkalmazás projektbe, add hozzá az Aspose.Cells referenciát, és nyomd meg az **F5**‑öt. + +```csharp +using Aspose.Cells; +using System; +using System.Globalization; + +class Program +{ + static void Main() + { + // 1️⃣ Create workbook and select the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("令和3年5月1日"); + + // 3️⃣ Set up Japanese lunisolar culture + CultureInfo japaneseCulture = new CultureInfo("ja-JP"); + japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); + + // 4️⃣ Parse the cell value as DateTime using the culture + DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); + + // 5️⃣ Output the date in ISO format + Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // 2021-05-01 + } +} +``` + +**Várt kimenet** + +``` +2021-05-01 +``` + +Futtasd egyszer, és látni fogod az ISO‑formátumú dátumot a konzolon. Ez a teljes folyamat a **read Excel datetime**‑tól a **format date iso**‑ig. + +--- + +## Gyakori edge case‑ek kezelése + +### 1. Valódi Excel dátumszámot tartalmazó cellák + +Néha az Excel dátumokat sorozatszámként tárolja (pl. `44204`). Ebben az esetben nincs szükség kultúrára; egyszerűen hívd a `GetDateTime()`‑t paraméterek nélkül: + +```csharp +DateTime serialDate = worksheet.Cells["B2"].GetDateTime(); // B2 holds a numeric date +Console.WriteLine(serialDate.ToString("yyyy-MM-dd")); +``` + +### 2. Üres vagy érvénytelen cellák + +Ha egy cella üres vagy nem parse‑olható karakterláncot tartalmaz, a `GetDateTime` kivételt dob. Tedd a hívást egy `try/catch`‑be, vagy előbb ellenőrizd az `IsDateTime` értéket: + +```csharp +if (worksheet.Cells["C3"].Type == CellValueType.IsDateTime) +{ + DateTime safeDate = worksheet.Cells["C3"].GetDateTime(); + Console.WriteLine(safeDate.ToString("yyyy-MM-dd")); +} +else +{ + Console.WriteLine("Cell C3 does not contain a valid date."); +} +``` + +### 3. Különböző era formátumok + +Más japán era (Heisei, Showa) ugyanazzal a mintával rendelkezik. A `JapaneseLunisolarCalendar` automatikusan kezeli őket, így nincs szükség extra logikára – csak add meg a karakterláncot. + +--- + +## Pro tippek és buktatók + +- **Performance:** Nagy táblázatok feldolgozásakor egyetlen `CultureInfo` példányt használj újra és újra ahelyett, hogy egy cikluson belül újat hoznál létre. +- **Thread Safety:** A `CultureInfo` objektumok csak olvashatóak, miután beállítottad a naptárat, így biztonságosan megoszthatók szálak között. +- **Aspose.Cells Licensing:** Ha a ingyenes próbaverziót használod, ne feledd, hogy egyes funkciók korlátozottak lehetnek a próbaidőszak lejárta után. A bemutatott dátum‑parse‑olás mind a próbaverzióban, mind a licencelt módban működik. +- **Time Zones:** A kapott `DateTime` **unspecified** (nincs időzóna). Ha UTC‑re van szükséged, hívd a `DateTime.SpecifyKind(parsedDate, DateTimeKind.Utc)`‑t vagy konvertáld a `TimeZoneInfo`‑val. + +--- + +## Következtetés + +Mindent lefedtünk, ami ahhoz kell, hogy **ISO dátumot formázz** egy Excel munkafüzetből C#‑ban. Egy nyers japán era karakterlánctól kezdve **read Excel datetime**, beállítva a megfelelő kultúrát, **extract datetime excel** adatot nyerve, végül egy tiszta ISO‑8601 karakterláncot kapunk. A megközelítés bármilyen Excel‑ben előforduló dátumre működik, legyen az sorozatszám, helyi specifikus string vagy hagyományos era formátum. + +Következő lépés? Próbáld meg egy egész oszlop dátumait bejárni, írd vissza az ISO eredményeket egy új lapra, vagy küldd közvetlenül egy JSON payload‑ba egy webszolgáltatáshoz. Ha érdekelnek más naptár rendszerek (héber, iszlám), az Aspose.Cells és a .NET `CultureInfo` ugyanolyan könnyedén támogatja őket. + +Van kérdésed vagy egy makacs dátumformátum, amit nem tudsz feltörni? Írj egy megjegyzést alább, és jó kódolást! + +{{< /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/hungarian/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md b/cells/hungarian/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md new file mode 100644 index 0000000000..b6a4c0d72d --- /dev/null +++ b/cells/hungarian/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md @@ -0,0 +1,235 @@ +--- +category: general +date: 2026-03-30 +description: Tanulja meg, hogyan formázzon számot elválasztóval az Aspose.Cells használatával + C#-ban. Tartalmazza az egyéni számformátum beállítását, az ezres elválasztó hozzáadását, + a tizedesjegyek formázását és a cella formázását. +draft: false +keywords: +- format number with separator +- set custom number format +- add thousands separator +- format decimal places +- how to format cell +language: hu +og_description: Szám formázása elválasztóval C#-ban. Ez az útmutató bemutatja, hogyan + állítható be egyéni számformátum, hogyan adható hozzá ezres elválasztó, hogyan formázhatók + a tizedesjegyek, és hogyan formázható cella az Aspose.Cells használatával. +og_title: Szám formázása elválasztóval C#-ban – Aspose.Cells útmutató +tags: +- C# +- Aspose.Cells +- Number Formatting +title: Szám formázása elválasztóval C#-ban – Teljes Aspose.Cells útmutató +url: /hu/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Szám formázása elválasztóval C#-ban – Teljes Aspose.Cells útmutató + +Valaha szükséged volt **szám formázására elválasztóval** egy táblázatban, de nem tudtad, melyik API hívást kell használni? Nem vagy egyedül – a fejlesztők folyamatosan küzdenek az ezres elválasztókkal, tizedesjegyekkel és egyedi mintákkal az adatok exportálásakor. + +Jó hír: az Aspose.Cells-szel ez gyerekjáték. Ebben az útmutatóban egy valós példán keresztül mutatjuk be, hogyan **állítható be egy egyedi számformátum**, **adható hozzá ezres elválasztó**, **formázhatók a tizedesjegyek**, és hogyan **formázható a cella** kimenete karakterláncként. A végére egy kész, futtatható kódrészletet kapsz, amelyet bármely .NET projektbe beilleszthetsz. + +## Mit fed le ez az útmutató + +* A szükséges NuGet csomag pontos neve és a telepítési módja. +* Lépésről‑lépésre kód, amely létrehoz egy munkafüzetet, beír egy numerikus értéket, és alkalmaz egy egyedi formátumot. +* Miért a `ExportTableOptions.ExportAsString` a preferált mód a formázott érték lekérésére. +* Gyakori buktatók – például az `ExportAsString` engedélyezésének elhagyása vagy a helytelen formátummaszk használata. +* Hogyan módosítható a formátummaszk, ha más számú tizedesjegyre vagy más elválasztó stílusra van szükség. + +Hozzáférés külső dokumentációs linkekhez nem szükséges; minden, amire szükséged van, itt van. Merüljünk el. + +--- + +## Előfeltételek + +| Követelmény | Indoklás | +|-------------|----------| +| .NET 6.0 vagy újabb | Az Aspose.Cells 23.10+ a .NET Standard 2.0+ célja, így a .NET 6 biztonságos és aktuális. | +| Visual Studio 2022 (vagy bármely C# IDE) | Megkönnyíti a hibakeresést és a csomagkezelést. | +| Aspose.Cells for .NET NuGet csomag | Biztosítja a `Workbook`, `Worksheet` és `ExportTableOptions` osztályokat, amelyeket használni fogunk. | + +A csomagot a Package Manager Console segítségével telepítheted: + +```powershell +Install-Package Aspose.Cells +``` + +Ennyi—nincs extra DLL, nincs COM interop, csak egyetlen NuGet hivatkozás. + +## 1. lépés: Új munkafüzet inicializálása (Hogyan formázzuk a cellát) + +Az első dolog, amit teszünk, egy új `Workbook` példány létrehozása. Tekintsd úgy, mint egy üres Excel fájlt, amely készen áll az adatok fogadására. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Create a new workbook – this is where we’ll format the cell. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Miért fontos:** A `Workbook` az Aspose.Cells minden műveletének belépési pontja. Az első munkalap (`Worksheets[0]`) lekérésével tiszta vászonhoz jutunk anélkül, hogy nevet kellene adni a lapnak. + +## 2. lépés: Numerikus érték írása a célcellába + +Ezután egy nyers számot helyezünk a **A1** cellába. Az érték még nincs formázva – csak egy double. + +```csharp + // Step 2: Insert a raw numeric value. + worksheet.Cells["A1"].PutValue(12345.6789); +``` + +> **Pro tipp:** Használd a `PutValue`-t a `PutString` helyett, ha később numerikus formázást szeretnél alkalmazni. Ez megőrzi az alap adat típust, lehetővé téve az Excel‑kompatibilis számításokat. + +## 3. lépés: Egyedi számformátum beállítása (Ezres elválasztó hozzáadása és tizedesjegyek formázása) + +Most jön a tutorial szíve: egy formátummaszk definiálása, amely megmondja az Aspose.Cells-nek, hogyan jelenítse meg a számot. A `#,##0.00` maszk három dolgot csinál: + +1. **`#,##0`** – ezres elválasztót ad hozzá (alapértelmezettként vessző). +2. **`.00`** – pontosan két tizedesjegyet kényszerít. + +Ha más számú tizedesjegyre van szükséged, egyszerűen változtasd meg a `0`-k számát a tizedespont után. + +```csharp + // Step 3: Configure the custom number format. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, // Return the value as a formatted string. + NumberFormat = "#,##0.00" // Add thousands separator and fix to 2 decimals. + }; +``` + +> **Miért használjuk az `ExportAsString`-et**: Alapértelmezés szerint az `ExportString` a nyers értéket adja vissza. Az `ExportAsString = true` beállítás arra kényszeríti az API-t, hogy a `NumberFormat` maszkot alkalmazza a szöveggé konvertálás előtt. Ez elengedhetetlen, ha pontos karakterlánc ábrázolásra van szükség jelentésekhez, JSON payloadokhoz vagy UI megjelenítéshez. + +## 4. lépés: Formázott szöveg exportálása (Hogyan formázzuk a cellát) + +Az opciók készen állnak, ezért meghívjuk a `ExportString`-et ugyanazon a cellán. A metódus figyelembe veszi a most definiált maszkot, és egy szépen formázott karakterláncot ad vissza. + +```csharp + // Step 4: Export the formatted value. + string formattedCellText = worksheet.Cells["A1"].ExportString(exportOptions); + + // Step 5: Show the result. + Console.WriteLine(formattedCellText); // Expected output: 12,345.68 + } +} +``` + +A program futtatása **`12,345.68`** értéket ír ki a konzolra – pontosan a kért formátumban. + +> **Szélsőséges eset:** Ha a forrás számnak több mint két tizedesjegye van, a maszk kerekíti. Ha a kerekítés helyett csonkolásra van szükség, a `PutValue` hívása előtt a `Math.Truncate`‑tel kell előfeldolgozni az értéket. + +## 5. lépés: A formátum finomhangolása – Gyakori változatok + +### 5.1 Tizedes pontosság módosítása + +Három tizedesjegyre van szükséged? Csak cseréld le a maszkot: + +```csharp +NumberFormat = "#,##0.000" // → 12,345.679 +``` + +### 5.2 Más ezres elválasztó használata + +Néhány helyi beállítás a szóközt vagy a pontot részesíti előnyben. A karaktert közvetlenül beágyazhatod: + +```csharp +NumberFormat = "# ##0.00" // Uses a non‑breaking space as separator. +``` + +Vagy a munkafüzet kultúra beállításaira támaszkodhatsz: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("de-DE"); +NumberFormat = "#.##0,00"; // German style: 12.345,68 +``` + +### 5.3 Előtag vagy utótag (Pénznem, Százalék) + +Adj hozzá dollárjelet vagy százalékjelet közvetlenül a maszkba: + +```csharp +NumberFormat = "$#,##0.00"; // → $12,345.68 +NumberFormat = "0.00%"; // → 1,234,568.00% +``` + +> **Megjegyzés:** A maszk kis- és nagybetű érzékeny. A `$` és `%` literális szimbólumok; nem befolyásolják az alap numerikus értéket. + +## 6. lépés: Teljes működő példa (másolás‑beillesztés kész) + +Az alábbiakban a teljes program látható, amelyet beilleszthetsz egy új konzolos alkalmazásba. Tartalmazza az összes lépést, megjegyzést és a végső kimenet ellenőrzését. + +```csharp +using System; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write raw numeric value to A1. + worksheet.Cells["A1"].PutValue(12345.6789); + + // 3️⃣ Define custom format: thousands separator + two decimals. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + NumberFormat = "#,##0.00" + }; + + // 4️⃣ Export the formatted string. + string result = worksheet.Cells["A1"].ExportString(exportOptions); + + // 5️⃣ Display the outcome. + Console.WriteLine(result); // Output: 12,345.68 + + // Optional: keep console open. + Console.WriteLine("Press any key to exit..."); + Console.ReadKey(); + } +} +``` + +Futtasd a programot (`dotnet run` a terminálból vagy nyomd meg az F5-öt a Visual Studio-ban), és láthatod, hogy a formázott szám pontosan úgy jelenik meg, ahogy látható. + +## Gyakran Ismételt Kérdések (GYIK) + +**K: Működik ez a régebbi Excel verziókkal?** +V: Igen. A formátummaszk az Excel natív számformátum szintaxisát követi, így bármely verzió, amely érti a `#,##0.00`-t, ugyanazt a karakterláncot jeleníti meg. + +**K: Mi a teendő, ha egy cellatartományt kell formázni?** +V: Iterálj a kívánt tartományon, és alkalmazd ugyanazt az `ExportTableOptions`-t minden cellára, vagy állítsd be a `Style.Custom` tulajdonságot a tartományra, majd hívd meg az `ExportString`-et egyetlen cellán. + +**K: Exportálhatok közvetlenül CSV-be ezekkel a formátumokkal?** +V: Természetesen. Használd a `Workbook.Save("output.csv", SaveFormat.CSV);`-t a formátum minden cellára való beállítása után. Az Aspose.Cells figyelembe veszi a cella `Style`-ját CSV generálásakor. + +## Következtetés + +Most bemutattuk, hogyan **formázható szám elválasztóval** C#-ban az Aspose.Cells segítségével, lefedve mindent a **egyedi számformátum beállításától** a **ezres elválasztó hozzáadásáig**, a **tizedesjegyek formázásáig**, és az alapvető **hogyan formázzuk a cellát** karakterlánc exporthoz. A kód teljesen önálló, .NET 6+ környezetben működik, és bármely helyi beállításhoz vagy pontossági igényhez testre szabható. + +Következő lépésként érdemes lehet felfedezni: + +* Ugyanazon technika alkalmazása dátumokra és időkre (`NumberFormat = "dd‑MMM‑yyyy"`). +* Tömeges exportok automatizálása, ahol minden oszlopnak más maszkra van szüksége. +* A formázott karakterláncok integrálása PDF jelentésekbe az Aspose.Words segítségével. + +Próbáld ki őket, és hamarosan te leszel a csapatod első számú szakértője a táblázat formázásában. Boldog kódolást! (Image: ![Screenshot showing formatted number with separator in Aspose.Cells](image-placeholder.png){alt="Formázott szám elválasztóval megjelenítve az Aspose.Cells kimenetében"} ) + +{{< /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/hungarian/net/excel-data-import-export/_index.md b/cells/hungarian/net/excel-data-import-export/_index.md index a6ab162fc5..4399009837 100644 --- a/cells/hungarian/net/excel-data-import-export/_index.md +++ b/cells/hungarian/net/excel-data-import-export/_index.md @@ -32,6 +32,10 @@ Következő lépésként egy másik gyakori kihívás következik: hogyan szúrj Ebben a könnyen követhető oktatóanyagban megtudhatja, hogyan importálhat adatokat Excelbe egyéni DB Num formázással az Aspose.Cells for .NET használatával. ### [Az első sor eltolása lefelé az adattábla sorainak beszúrásakor Excelben](./shift-first-row-down-when-inserting-cells-datatable-rows-in-excel/) Tanuld meg, hogyan szúrhatsz be DataTable sorokat Excelben anélkül, hogy az első sort lejjebb tolnád az Aspose.Cells for .NET segítségével. Lépésről lépésre útmutató a könnyed automatizáláshoz. +### [Excel munkafüzet létrehozása C# – JSON beszúrása és mentése XLSX formátumban](./create-excel-workbook-c-insert-json-and-save-as-xlsx/) +Ismerje meg, hogyan hozhat létre Excel munkafüzetet C#-ban, szúrhat be JSON adatot, és mentheti XLSX fájlként az Aspose.Cells for .NET segítségével. +### [Excel munkafüzet létrehozása C# – Pénznem formátum alkalmazása és DataTable importálása](./create-excel-workbook-c-apply-currency-format-and-import-dat/) +Ismerje meg, hogyan alkalmazhat pénznemformátumot egy Excel munkafüzetben C#-ban, és hogyan importálhat DataTable adatokat az Aspose.Cells for .NET segítségével. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hungarian/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md b/cells/hungarian/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md new file mode 100644 index 0000000000..e19fabfa3d --- /dev/null +++ b/cells/hungarian/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md @@ -0,0 +1,286 @@ +--- +category: general +date: 2026-03-30 +description: Excel munkafüzet létrehozása C#‑ban pénznem formázással. Tanulja meg, + hogyan importáljon egy DataTable‑t, adjon számformátumot az Excelhez, és pár perc + alatt alkalmazzon pénznem formátumú oszlopot. +draft: false +keywords: +- create excel workbook c# +- format cells currency +- import datatable to excel +- add number format excel +- apply currency format column +language: hu +og_description: Excel munkafüzet létrehozása C#‑ban és a cellák azonnali pénznem formázása. + Ez a lépésről‑lépésre útmutató bemutatja, hogyan importáljunk egy DataTable‑t Excelbe, + és hogyan adjunk számformátumot egy oszlopnak Excelben. +og_title: Excel munkafüzet létrehozása C#-ban – Pénznem formázási útmutató +tags: +- Aspose.Cells +- C# +- Excel automation +title: Excel munkafüzet létrehozása C#‑ban – Pénznem formátum alkalmazása és DataTable + importálása +url: /hu/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel munkafüzet létrehozása C#‑ban – Pénznem formátum alkalmazása és DataTable importálása + +Volt már szükséged **create Excel workbook C#**-ra, ami már úgy néz ki, mint egy kifinomult jelentés? Lehet, hogy egy adatbázisból húzod a sales számokat, és azt szeretnéd, hogy az ár oszlop dollárban jelenjen meg anélkül, hogy manuálisan bajkálnál az Excelben. Ismerős? Nem vagy egyedül – a legtöbb fejlesztő erre a problémára fut bele, amikor először automatizálja az Excel exportokat. + +Ebben az útmutatóban végigvezetünk egy teljes, azonnal futtatható megoldáson, amely **creates an Excel workbook C#**, importál egy `DataTable`‑t, és **formats the Price column as currency**. A végén lesz egy `StyledTable.xlsx` nevű fájlod, amelyet megnyithatsz, és szép formázott számokat láthatsz. Nem szükséges extra utófeldolgozás. + +> **Mit fogsz megtanulni** +> - Hogyan állítsd be az Aspose.Cells‑t egy .NET projektben +> - Hogyan **import datatable to excel** egy stílus tömbbel +> - Hogyan **add number format excel** egy adott oszlophoz +> - Tippek több oszlop vagy különböző helyi beállítások kezeléséhez + +> **Előfeltételek** +> - .NET 6+ (vagy .NET Framework 4.6+) telepítve +> - Aspose.Cells for .NET NuGet csomag (`Install-Package Aspose.Cells`) +> - Alapvető ismeretek C#‑ban és DataTables‑ban + +--- + +## Step 1: Prepare the DataTable (import datatable to excel) + +Először is szükségünk van néhány mintára. Egy valós alkalmazásban valószínűleg egy DB lekérdezésből töltenéd fel ezt a táblát, de egy hard‑coded példa egyszerűen tartja a dolgokat. + +```csharp +using System.Data; + +// Create a DataTable with two columns: Product (string) and Price (double) +DataTable dataTable = new DataTable(); +dataTable.Columns.Add("Product", typeof(string)); +dataTable.Columns.Add("Price", typeof(double)); + +// Add a few rows – you can add as many as you like +dataTable.Rows.Add("Apple", 1.23); +dataTable.Rows.Add("Banana", 0.78); +dataTable.Rows.Add("Cherry", 2.50); +``` + +*Miért fontos*: A `DataTable` a híd a vállalati adataid és az Excel fájl között. Az Aspose.Cells közvetlenül importálja, megőrizve az oszlopneveket és az adattípusokat. + +--- + +## Step 2: Spin Up a New Workbook (create excel workbook c#) + +Most létrehozzuk a tényleges Excel fájl objektumot. Gondolj rá úgy, mint egy üres vászonra, amelyre festeni fogsz. + +```csharp +using Aspose.Cells; + +// Instantiate a fresh workbook – this is the core of create excel workbook c# +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0). You could also add more sheets later. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Pro tipp:** Ha több munkalapra van szükséged, hívd a `workbook.Worksheets.Add()`‑t, és adj mindegyiknek egy értelmes nevet. + +--- + +## Step 3: Define a Currency Style (format cells currency) + +Az Aspose.Cells lehetővé teszi, hogy egy `Style` objektumot készíts, amely leírja, hogyan kell kinézzenek a cellák. Pénznemhez a beépített számformátum ID 164‑et (`"$#,##0.00"`) használjuk. + +```csharp +// Create a new style object for the price column +Style priceStyle = workbook.CreateStyle(); +priceStyle.Number = 164; // Built‑in currency format "$#,##0.00" +``` + +*Miért ne csak a formátum karakterláncot állítanád be?* A beépített ID használata biztosítja a kompatibilitást az Excel verziók között, és elkerüli a helyi beállításokra specifikus furcsaságokat. + +--- + +## Step 4: Build the Style Array (apply currency format column) + +DataTable importálásakor átadhatsz egy `Style` objektumok tömbjét – egyet oszloponként. A `null` azt jelenti, hogy „használd az alapértelmezett stílust”. Itt csak a második oszlopra alkalmazzuk a `priceStyle`‑t. + +```csharp +// Column 0 (Product) gets the default style, Column 1 (Price) gets the currency style +Style[] columnStyles = { null, priceStyle }; +``` + +Ha később több oszlopot adsz hozzá, egyszerűen bővítsd a tömböt ennek megfelelően. A `columnStyles` hossza meg kell, hogy egyezzen az importált oszlopok számával, különben az Aspose kivételt dob. + +--- + +## Step 5: Import the DataTable with Styles (import datatable to excel) + +Most megtörténik a varázslat – a `DataTable` a munkalapra kerül, és az ár oszlop azonnal pénznemként jelenik meg. + +```csharp +// Parameters: +// - dataTable: source data +// - true: include column headers +// - startRow: 0 (top of sheet) +// - startColumn: 0 (first column) +// - columnStyles: style array defined above +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +*Mi van, ha több mint két oszlopod van?* Egyszerűen bővítsd a `columnStyles`‑t, hogy minden oszlop a megfelelő stílust kapja (vagy `null` az alapértelmezetthez). Ez a legrendezettebb módja a **add number format excel** szelektív alkalmazásának. + +--- + +## Step 6: Save the Workbook (create excel workbook c#) + +Végül a fájlt leírjuk a lemezre. Válassz egy mappát, amelyhez írási jogosultságod van. + +```csharp +// Save the workbook as an XLSX file +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +Nyisd meg a `StyledTable.xlsx`‑t Excelben, és a következőt kell látnod: + +| Product | Price | +|---------|-------| +| Apple | $1.23 | +| Banana | $0.78 | +| Cherry | $2.50 | + +A **Price** oszlop már pénznemként van formázva – nincs szükség további lépésekre. + +--- + +## Edge Cases & Variations + +### More Columns, Different Formats + +Ha több oszlopra (pl. Cost, Tax, Total) kell **format cells currency** alkalmazni, hozz létre egy külön `Style`‑t minden egyeshez, és töltsd fel a `columnStyles`‑t ennek megfelelően: + +```csharp +Style costStyle = workbook.CreateStyle(); +costStyle.Number = 164; // currency + +Style taxStyle = workbook.CreateStyle(); +taxStyle.Number = 164; + +// Assuming columns: Product, Cost, Tax, Total +Style[] styles = { null, costStyle, taxStyle, priceStyle }; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, styles); +``` + +### Locale‑Specific Currency + +Euro vagy brit font esetén használj különböző beépített ID‑kat (pl. 165 a `€#,##0.00`‑hez). Alternatívaként állíts be egy egyedi formátum karakterláncot: + +```csharp +priceStyle.Custom = "€#,##0.00"; +``` + +### Large Data Sets + +Az Aspose.Cells képes millió sor kezelésére, de a memóriahasználat a stílusobjektumokkal nő. Használd újra ugyanazt a `Style` példányt minden pénznem oszlophoz, hogy alacsonyan tartsd a memóriaigényt. + +### Missing Styles + +Ha a `columnStyles` rövidebb, mint az oszlopok száma, az Aspose az alapértelmezett stílust alkalmazza a maradék oszlopokra. Ez hasznos, ha csak néhány oszlop érdekel. + +--- + +## Full Working Example (All Steps Combined) + +Az alábbiakban a teljes program található, amelyet beilleszthetsz egy konzolos alkalmazásba. Tartalmazza az összes korábban tárgyalt részt, valamint néhány hasznos megjegyzést. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // Step 1: Build sample DataTable (import datatable to excel) + // ------------------------------------------------- + DataTable dataTable = new DataTable(); + dataTable.Columns.Add("Product", typeof(string)); + dataTable.Columns.Add("Price", typeof(double)); + dataTable.Rows.Add("Apple", 1.23); + dataTable.Rows.Add("Banana", 0.78); + dataTable.Rows.Add("Cherry", 2.50); + // You can add as many rows as you like here. + + // ------------------------------------------------- + // Step 2: Create a new workbook (create excel workbook c#) + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // Step 3: Define a currency style (format cells currency) + // ------------------------------------------------- + Style priceStyle = workbook.CreateStyle(); + priceStyle.Number = 164; // "$#,##0.00" – built‑in currency format + + // ------------------------------------------------- + // Step 4: Build the style array (apply currency format column) + // ------------------------------------------------- + // First column gets default style (null), second column uses priceStyle. + Style[] columnStyles = { null, priceStyle }; + + // ------------------------------------------------- + // Step 5: Import the DataTable with the style array + // ------------------------------------------------- + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // ------------------------------------------------- + // Step 6: Save the workbook to disk + // ------------------------------------------------- + string outputPath = @"YOUR_DIRECTORY\StyledTable.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } +} +``` + +**Várt eredmény:** A `StyledTable.xlsx` megnyitása a `Price` oszlopot dollárjellel és két tizedesjeggyel mutatja, pontosan úgy, ahogy a `format cells currency` utasítás megkövetelte. + +--- + +## Frequently Asked Questions + +**K: Működik ez .NET Core‑dal?** +V: Teljesen. Az Aspose.Cells .NET‑standard kompatibilis, így célozhatsz .NET 5, .NET 6 vagy későbbi verziót változtatás nélkül. + +**K: Mi van, ha a DataTable‑m 10 oszlopot tartalmaz, de csak az 5‑ödik oszlopot szeretném formázni?** +V: Hozz létre egy `Style[]` tömböt 10 hosszúságúval, töltsd fel a 0‑4 és 6‑9 pozíciókat `null`‑lal, és helyezd a saját stílusodat a 4‑es indexre (nullától számítva). Az Aspose minden bejegyzést figyelembe vesz. + +**K: El tudom rejteni a fejléc sort?** +V: Importálás után állítsd be a `worksheet.Cells.Rows[0].Hidden = true;` értéket, vagy egyszerűen add meg `false`‑t az `includeColumnNames` paraméternek az `ImportDataTable`‑nél. + +--- + +## Conclusion + +Most **created an Excel workbook C#**‑t hoztunk létre, importáltunk egy `DataTable`‑t, és **applied a currency format column**‑t használtuk az Aspose.Cells‑szel. Az elsődleges lépések – az adatok előkészítése, egy stílus definiálása, a stílus tömb felépítése, importálás `ImportDataTable`‑vel, és a mentés – lefedik a legtöbb Excel‑automatizálási feladat alapját. + +From here you might explore: + +- **add number format excel** dátumok vagy százalékok esetén +- Több munkalap exportálása egyetlen fájlba +- **format cells currency** használata helyi specifikus szimbólumokkal +- Diagramok automatikus létrehozása ugyanazon adatok alapján + +Próbáld ki őket, és hamarosan te leszel a csapatod Excel jelentéskészítője. Van egy saját trükköd, amit meg szeretnél osztani? Írj egy megjegyzést alább – jó kódolást! + +![create excel workbook c# screenshot](image.png "create excel workbook c#") + +{{< /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/hungarian/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md b/cells/hungarian/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md new file mode 100644 index 0000000000..db32485865 --- /dev/null +++ b/cells/hungarian/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-03-30 +description: Készíts gyorsan Excel munkafüzetet C#-ban JSON adatok beillesztésével, + és mentsd a munkafüzetet XLSX formátumban. Tanuld meg, hogyan generálj Excel-t JSON-ból, + hogyan írj JSON-t Excel-be, és hogyan illessz be JSON-t Excel-be. +draft: false +keywords: +- create excel workbook c# +- save workbook as xlsx +- generate excel from json +- write json to excel +- insert json into excel +language: hu +og_description: Készíts gyorsan Excel munkafüzetet C#‑ban JSON adatok beillesztésével, + és mentsd el XLSX formátumban. Kövesd ezt a lépésről‑lépésre útmutatót, hogy JSON‑ból + Excel‑t generálj. +og_title: Excel munkafüzet létrehozása C#‑ban – JSON beillesztése és mentése XLSX + formátumban +tags: +- Aspose.Cells +- C# +- Excel automation +title: Excel munkafüzet létrehozása C#‑ban – JSON beszúrása és mentése XLSX formátumban +url: /hu/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel munkafüzet létrehozása C# – JSON beszúrása és mentés XLSX‑ként + +Valaha is szükséged volt **Excel munkafüzet létrehozására C#‑ban**, és egy JSON‑t közvetlenül egy cellába helyezni? Nem vagy egyedül – a fejlesztők gyakran szembesülnek ezzel a problémával, amikor API‑payloadokkal vagy konfigurációs fájlokkal kell egy táblázatba kerülniük jelentés vagy megosztás céljából. + +A jó hír, hogy az Aspose.Cells segítségével néhány sorban megoldható, **mentse a munkafüzetet XLSX‑ként**, és a teljes folyamat típus‑biztonságos marad. Ebben az útmutatóban **Excel-t generálunk JSON‑ból**, **JSON‑t írunk Excel‑be**, és megmutatjuk a pontos lépéseket a **JSON Excel‑be való beszúrásához** anélkül, hogy bonyolult karakterlánc‑összefűzésekkel kellene bajlódni. + +## Mit fed le ez az útmutató + +1. Új munkafüzet létrehozása. +2. Smart Marker hozzáadása, amely JSON‑t vár. +3. JSON tömb átadása a markernek. +4. A `SmartMarkerOptions` finomhangolása, hogy a JSON egy cellában maradjon. +5. A fájl mentése XLSX munkafüzetként. + +A végére egy használatra kész `JsonSingleCell.xlsx` fájlod lesz, valamint egy jól bevált mintát, amelyet bármely JSON‑Excel átalakítási helyzetben újra felhasználhatsz. Nincs szükség külső szolgáltatásokra, csak tiszta C# és az Aspose.Cells könyvtár. + +**Előfeltételek** + +- .NET 6+ (vagy .NET Framework 4.6+). +- Visual Studio 2022 vagy bármely C#‑kompatibilis IDE. +- NuGet csomag `Aspose.Cells` (ingyenes próba vagy licencelt verzió). + +Ha ezek megvannak, vágjunk bele – nincs szükség további beállításra. + +--- + +## 1. lépés: Új munkafüzet létrehozása C#‑ban + +Az első dolog, amire szükséged van, egy üres munkafüzet objektum. Tekintsd úgy, mint egy friss Excel‑fájlt, amely adatot vár. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is your empty Excel file +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; +``` + +**Miért fontos:** +`Workbook` az összes Excel‑művelet belépési pontja. Ha először létrehozod, biztosítod, hogy a későbbi **save workbook as xlsx** hívásnak legyen konkrét objektuma a sorosításhoz. + +> **Pro tipp:** Ha több munkalappal tervezel dolgozni, most hozzáadhatod őket a `workbook.Worksheets.Add()` segítségével. + +--- + +## 2. lépés: Smart Marker elhelyezése, amely JSON‑t vár + +A Smart Markerek olyan helyőrzők, amelyeket az Aspose.Cells futásidőben helyettesít. Itt azt mondjuk neki, hogy keresse a `data` nevű JSON‑karakterláncot. + +```csharp +// Put a Smart Marker in cell A1 – {{data:json}} tells Aspose to expect JSON +worksheet.Cells["A1"].PutValue("{{data:json}}"); +``` + +**Miért fontos:** +A `:json` utótag azt jelzi a motor számára, hogy a bejövő érték JSON, nem egyszerű szöveg. Ez a kulcs a **write json to excel** művelethez manuális feldolgozás nélkül. + +--- + +## 3. lépés: JSON tömb definiálása + +Most elkészítjük a beszúrni kívánt JSON‑t. Bemutatásként egy egyszerű személylistát használunk. + +```csharp +// Sample JSON array – could come from an API, file, or DB +string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; +``` + +**Különleges eset:** +Ha a JSON dupla idézőjeleket tartalmaz, győződj meg róla, hogy azok escape‑elve vannak (ahogy a példában), vagy használj verbatim stringet (`@"..."`), hogy elkerüld a fordítási hibákat. + +--- + +## 4. lépés: Smart Marker beállítások konfigurálása – a tömb egésze egy cellában + +Alapértelmezés szerint az Aspose megpróbálja a tömböt sorokra bontani. Mi azt szeretnénk, hogy a teljes JSON‑karakterlánc egyetlen cellában maradjon, ami tökéletes a **insert json into excel** helyzetekben, ahol a fogyasztó később parse‑olja a JSON‑t. + +```csharp +SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions +{ + // Treat the whole array as a single cell value + ArrayAsSingle = true +}; +``` + +**Miért fontos:** +`ArrayAsSingle = true` megakadályozza a sorbővítést, így egy tiszta, egycellás JSON‑blobot kapsz. Ez elengedhetetlen, ha a táblázat szállítási formátum, nem jelentés. + +--- + +## 5. lépés: Smart Marker feldolgozása a JSON adatokkal + +Most a JSON‑t a markerhez kötjük, és hagyjuk, hogy az Aspose elvégezze a nehéz munkát. + +```csharp +// Process the marker – the anonymous object maps "data" to our JSON string +worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); +``` + +**Mi történik a háttérben:** +Az Aspose kiértékeli a `{{data:json}}` helyőrzőt, sorosítja a `jsonData` karakterláncot, és az általunk beállított opcióknak megfelelően az A1 cellába írja. + +--- + +## 6. lépés: Munkafüzet mentése XLSX fájlként + +Végül a munkafüzetet leírjuk a lemezre. Itt jön képbe a **save workbook as xlsx**. + +```csharp +// Save the workbook – the extension determines the format (XLSX here) +workbook.Save("JsonSingleCell.xlsx"); +``` + +**Eredmény:** +Nyisd meg a `JsonSingleCell.xlsx` fájlt Excelben, és láthatod a JSON tömböt pontosan úgy, ahogy definiáltuk, szép módon az A1 cellában. + +--- + +## Teljes, futtatható példa + +Az alábbiakban a teljes program látható, amelyet beilleszthetsz egy konzolos alkalmazásba. Tartalmazza a fenti összes lépést, és azonnal fut (feltéve, hogy az Aspose.Cells NuGet csomag telepítve van). + +```csharp +using System; +using Aspose.Cells; + +namespace JsonToExcelDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add a Smart Marker that expects JSON + worksheet.Cells["A1"].PutValue("{{data:json}}"); + + // 3️⃣ Define the JSON array + string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; + + // 4️⃣ Configure options – keep array as a single cell value + SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions + { + ArrayAsSingle = true + }; + + // 5️⃣ Process the marker with the JSON payload + worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); + + // 6️⃣ Save the workbook as XLSX + workbook.Save("JsonSingleCell.xlsx"); + + Console.WriteLine("Excel file created successfully! Check JsonSingleCell.xlsx."); + } + } +} +``` + +**Várható kimenet Excelben** + +| A | +|---| +| `[{"Name":"John","Age":30},{"Name":"Jane","Age":28}]` | + +Ez az egyetlen cella most egy tökéletesen érvényes JSON tömböt tartalmaz, amely készen áll a további feldolgozásra. + +--- + +## Gyakori kérdések és különleges esetek + +### Mi van, ha a JSON‑t sorokra kell szétosztani? + +Állítsd be `ArrayAsSingle = false`‑t (az alapértelmezett). Az Aspose minden tömbelemhez egy sort hoz létre, és az objektum tulajdonságait oszlopokhoz rendeli. Ez akkor hasznos, ha táblázatos nézetet szeretnél a nyers JSON‑szöveg helyett. + +### Használhatok JSON fájlt a hard‑coded string helyett? + +Természetesen. Olvasd be a fájlt egy karakterláncba: + +```csharp +string jsonData = File.ReadAllText("people.json"); +``` + +Ezután add át a `jsonData`‑t ugyanarra a `Process` hívásra. A csővezeték többi része változatlan marad. + +### Működik ez nagy JSON payloadokkal is? + +Igen, de figyelj a memóriahasználatra. Nagy tömbök esetén érdemes streaming‑et használni vagy közvetlenül sorokba írni (`ArrayAsSingle = false`), hogy elkerüld azt az egy hatalmas cellát, amelyet az Excel nehezen kezel. + +### Kompatibilis a generált XLSX a régebbi Excel verziókkal? + +A `.xlsx` formátum az Office Open XML‑en alapul, és az Excel 2007‑től működik. Ha a régi `.xls` formátumra van szükséged, módosítsd a mentési hívást: + +```csharp +workbook.Save("JsonSingleCell.xls", SaveFormat.Excel97To2003); +``` + +--- + +## Pro tippek JSON és Excel használatához + +- **Először validáld a JSON‑t** – használd a `System.Text.Json.JsonDocument.Parse(jsonData)`‑t, hogy korán elkapd a hibás bemenetet. +- **Escape‑eld a speciális karaktereket** – ha a JSON sorvégeket tartalmaz, azok literál `\n`‑ként jelennek meg a cellában; a feldolgozás előtt helyettesítheted őket `Environment.NewLine`‑nal. +- **Használd újra a Smart Markereket** – több marker is elhelyezhető ugyanabban a munkalapon, mindegyik másik JSON tulajdonságra mutat. +- **Kombináld képletekkel** – miután a JSON egy cellában van, használhatod az Excel `FILTERXML` függvényét (újabb verziókban) a helyben történő parse‑oláshoz. + +--- + +## Összegzés + +Most már tudod, hogyan **hozz létre excel munkafüzetet c#‑ban**, ágyazz be egy JSON payload‑ot, és **mentsd a munkafüzetet xlsx‑ként** az Aspose.Cells segítségével. Ez a minta lehetővé teszi, hogy **excel-t generálj json‑ból**, **json‑t írj excel‑be**, és **json‑t szúrj be excel‑be** néhány kódsorral, megkönnyítve az adatok cseréjét a szolgáltatások és az elemzők között. + +Készen állsz a következő lépésre? Próbáld meg a JSON tömböt egy megfelelő táblává konvertálni (`ArrayAsSingle = false` beállítással), vagy kísérletezz a lap formázásával a beszúrás után. Ugyanez a megközelítés működik CSV, XML vagy akár egyedi objektumok esetén – csak a Smart Marker típusát kell módosítanod. + +Boldog kódolást, és nyugodtan kísérletezz! Ha elakadsz, írj egy megjegyzést alább, vagy nézd meg az Aspose hivatalos dokumentációját a Smart Markerekről szóló részletesebb anyagokért. + +{{< /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/hungarian/net/excel-workbook/_index.md b/cells/hungarian/net/excel-workbook/_index.md index 05ae7396f5..1692f08ad4 100644 --- a/cells/hungarian/net/excel-workbook/_index.md +++ b/cells/hungarian/net/excel-workbook/_index.md @@ -69,7 +69,7 @@ Miért ne ragadnád meg ezt a lehetőséget, hogy fejleszd Excel-készségeidet? ## Oktatóanyagok | Cím | Leírás | | --- | --- | -| [Hozzáférés webbővítmény-információkhoz](./access-web-extension-information/) | Tanulja meg, hogyan férhet hozzá a webbővítmények adataihoz Excel-fájlokban az Aspose.Cells for .NET használatával lépésről lépésre bemutató útmutatónkkal. | +| [Hozzáférés webbővítmény-információkhoz](./access-web-extension-information/) | Tanulja meg, hogyan férhet hozzá a webbővítmények adataihoz Excel-fájlokban az Aspose.Cells for .NET használatával lépésről lépésre bemutató útmutánkkal. | | [Digitális aláírás hozzáadása egy már aláírt Excel-fájlhoz](./add-digital-signature-to-an-already-signed-excel-file/) | Tanulja meg, hogyan adhat hozzá digitális aláírást egy már aláírt Excel-fájlhoz az Aspose.Cells for .NET használatával ebből a részletes, lépésről lépésre szóló útmutatóból. | | [Webbővítmény hozzáadása](./add-web-extension/) | Tanulja meg, hogyan adhat hozzá webbővítményeket Excel-fájlokhoz az Aspose.Cells for .NET használatával ezzel a teljes körű, lépésről lépésre szóló oktatóanyaggal, amely kibővíti a táblázatkezelő funkcióit. | | [Tömörítési szint beállítása](./adjust-compression-level/) Ismerje meg, hogyan állíthatja be az Excel-fájlok tömörítési szintjeit az Aspose.Cells for .NET segítségével. Optimalizálja hatékonyan a fájlméreteket ezzel a lépésről lépésre szóló útmutatóval. | @@ -86,6 +86,7 @@ Miért ne ragadnád meg ezt a lehetőséget, hogy fejleszd Excel-készségeidet? | [Munkafüzet nyomtatási előnézete](./workbook-print-preview/) | Tanuld meg, hogyan hozhatsz létre nyomtatási előnézeteket Excel fájlokhoz az Aspose.Cells for .NET használatával. Tanuld meg a kódolási lépéseket egy részletes, könnyen követhető oktatóanyagban. | [Tartalomtípus-tulajdonságok használata](./working-with-content-type-properties/) | Ismerje meg, hogyan használható az Aspose.Cells for .NET a tartalomtípus-tulajdonságokkal való munkához az Excel metaadatainak hatékonyabb kezeléséhez. Kövesse ezt az egyszerű, lépésről lépésre szóló útmutatót. | | [Xades Signature támogatás](./xades-signature-support/) | Tanulja meg, hogyan adhat hozzá Xades aláírásokat Excel fájlokhoz az Aspose.Cells for .NET használatával ezzel a lépésről lépésre szóló útmutatóval. Biztosítsa dokumentumait. | +| [Mesterlap létrehozása C#-ban – Teljes Aspose.Cells útmutató](./create-master-sheet-in-c-complete-aspose-cells-guide/) | Ismerje meg, hogyan hozhat létre mesterlapot C#-ban az Aspose.Cells segítségével, részletes kódpéldákkal. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hungarian/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md b/cells/hungarian/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md new file mode 100644 index 0000000000..0c7f7c85ac --- /dev/null +++ b/cells/hungarian/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-03-30 +description: Készíts mesterlapot az Aspose.Cells segítségével C#-ban. Tanuld meg, + hogyan hozhatsz létre Excel munkafüzetet C#-ban, engedélyezheted a duplikált munkalapneveket, + és néhány lépésben mentheted a munkafüzetet XLSX formátumban. +draft: false +keywords: +- create master sheet +- create excel workbook c# +- save workbook as xlsx +- allow duplicate sheet names +language: hu +og_description: Mesterlap létrehozása az Aspose.Cells segítségével C#-ban. Ez az útmutató + bemutatja, hogyan hozhatunk létre Excel munkafüzetet C#-ban, engedélyezhetjük a + duplikált munkalap neveket, és menthetjük a munkafüzetet XLSX formátumban. +og_title: Mesterlap létrehozása C#-ban – Teljes Aspose.Cells útmutató +tags: +- Aspose.Cells +- C# +- Excel automation +title: Mesterlap létrehozása C#‑ban – Teljes Aspose.Cells útmutató +url: /hu/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Master lap létrehozása C#‑ban – Teljes Aspose.Cells útmutató + +Valaha is szükséged volt **master lap** létrehozására egy Excel‑fájlban, de nem tudtad, hogyan kezeld a több részletlapot, amelyek ugyanazzal az alapszínvonallal rendelkeznek? Nem vagy egyedül. Sok jelentéskészítési helyzetben tucatnyi részletfüllel találkozunk, és a legtöbb könyvtár alapértelmezett viselkedése kivételt dob, ha két lap ugyanazzal a névvel jönne létre. + +Szerencsére az Aspose.Cells lehetővé teszi, hogy **master lapot** egyszerűen hozz létre, beállítsd a motorot **duplikált lapnevek engedélyezésére**, majd **XLSX‑ként mentsd el a munkafüzetet** – mindezt tiszta C# kódból. Ebben a tutorialban egy teljesen futtatható példán keresztül vezetünk végig, elmagyarázzuk, miért fontos minden sor, és adunk néhány tippet, amelyet közvetlenül beilleszthetsz a saját projektjeidbe. + +> **Mit fogsz megtanulni** +> * Hogyan **hozz létre Excel munkafüzetet C#‑stílusban** az Aspose.Cells segítségével. +> * Hogyan ágyazz be egy smart‑marker‑t, amely minden adat sorhoz egy részletlapot hoz létre. +> * Hogyan állítsd be a `DetailSheetNewName = DuplicateAllowed` értéket, hogy a könyvtár automatikusan egy numerikus utótagot adjon hozzá. +> * Hogyan **mentsd el a munkafüzetet XLSX‑ként** a lemezen extra lépések nélkül. + +Külső dokumentációra nincs szükség – minden, amire szükséged van, itt van. + +--- + +## Előkövetelmények + +Mielőtt belevágnánk, győződj meg róla, hogy a következők rendelkezésedre állnak: + +| Követelmény | Miért fontos | +|-------------|----------------| +| .NET 6.0 vagy újabb (vagy .NET Framework 4.7+) | Az Aspose.Cells 23.x+ ezekre a futtatókörnyezetekre céloz. | +| Visual Studio 2022 (vagy bármely C# IDE) | A projekt létrehozásához és a hibakereséshez. | +| Aspose.Cells for .NET NuGet csomag (`Install-Package Aspose.Cells`) | Az a könyvtár, amely a smart‑marker varázslatot biztosítja. | +| Alapvető C# ismeretek | A szintaxis megértéséhez, anélkül, hogy crash‑kurzust kellene tartanod. | + +Ha valamelyik hiányzik, telepítsd most – nincs értelme egy félkész környezettel folytatni. + +--- + +## 1. lépés: Master lap létrehozása Aspose.Cells‑szel + +Az első dolog, amit teszünk, **Excel munkafüzet létrehozása C#‑stílusban** egy `Workbook` objektum példányosításával. Ez az objektum már tartalmaz egy alapértelmezett munkalapot, amelyet átnevezünk „Master” névre, és sablonként használunk az összes részletoldalhoz. + +```csharp +using Aspose.Cells; + +// Step 1: Initialise a new workbook – this automatically gives us one sheet +Workbook workbook = new Workbook(); + +// Grab the first (and only) worksheet that comes with a fresh workbook +Worksheet masterSheet = workbook.Worksheets[0]; + +// Give it a meaningful name – this will be our master sheet +masterSheet.Name = "Master"; +``` + +*Miért nevezed át a lapot?* +Az olyan alapértelmezett név, mint a „Sheet1”, nem közvetíti a szándékot, és később, amikor a fájlt átnézed, azonnal felismerhető master fület szeretnél. Az átnevezés megakadályozza a véletlen ütközéseket is, amikor később további lapokat adsz hozzá. + +--- + +## 2. lépés: A smart‑marker előkészítése, amely részletlapokat hoz létre + +A smart‑marker‑ek helyőrzők, amelyeket az Aspose.Cells futásidőben adatokal helyettesít. Ha a **A1** cellába `{{#detail:DataSheetName}}`‑t teszünk, azt mondjuk a motornak: „Minden rekordhoz a forrásban hozz létre egy új lapot, amelynek neve a `DataSheetName` mezőből származik.” + +```csharp +// Step 2: Insert a smart‑marker into cell A1. +// The marker #detail tells Aspose.Cells to generate a new sheet per data row. +masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); +``` + +Gondolj a markerre, mint egy apró utasításlapra, amely a munkalapon van rögzítve. Amikor a processzor fut, elolvassa a lapot, lekéri a megfelelő értéket az adatforrásból, majd a master lapot klónozza egy új fülre. + +--- + +## 3. lépés: Az adatforrás felépítése – szándékosan duplikált lapnevekkel + +A valóságban ezt adatbázisból húzhatnád, de a demóhoz egy memóriában lévő anonim objektum‑tömböt használunk. Figyeld meg, hogy mindkét elem ugyanazzal az alapszínvonallal rendelkezik: `"Detail"`; ez az a helyzet, ahol a **duplikált lapnevek engedélyezése** kulcsfontosságúvá válik. + +```csharp +// Step 3: Create a data source with two items that share the same base sheet name. +var dataSource = new[] +{ + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } +}; +``` + +Ha ezt speciális beállítások nélkül próbálnád, az Aspose.Cells kivételt dob a második iterációnál, mert már létezik egy „Detail” nevű lap. Ezért fontos a következő lépés. + +--- + +## 4. lépés: Duplikált lapnevek engedélyezése + +Az Aspose.Cells a `SmartMarkerOptions.DetailSheetNewName`‑et teszi elérhetővé. Ha ezt `DetailSheetNewName.DuplicateAllowed`‑ra állítod, a motor automatikusan egy numerikus utótagot (pl. „Detail_1”) ad a névütközés esetén. + +```csharp +// Step 4: Configure SmartMarker options to permit duplicate sheet names. +var smartMarkerOptions = new SmartMarkerOptions +{ + // This makes the library rename clashes to "Detail_1", "Detail_2", etc. + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed +}; +``` + +*Miért nem adsz minden sorhoz egyedi nevet kézzel?* +Mert a forrásadat gyakran nem garantálja az egyediséget, különösen, ha a felhasználók szabad szöveget adnak meg. Ha a könyvtár kezeli a suffixet, egy egész hibakategóriát elkerülhetsz. + +--- + +## 5. lépés: A smart‑marker‑ek feldolgozása és a részletlapok generálása + +Most meghívjuk a `SmartMarkers.Process`‑t, átadva az adatforrást és a most beállított opciókat. A metódus minden elemen végigmegy, klónozza a master lapot, és a `DataSheetName` mező (plusz suffix, ha szükséges) alapján átnevezi a klónt. + +```csharp +// Step 5: Run the smart‑marker processor – this creates the detail sheets. +masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); +``` + +Ez a sor lefutása után a munkafüzet három fület tartalmaz majd: + +1. **Master** – az eredeti sablon. +2. **Detail** – az első generált lap (suffix nélkül). +3. **Detail_1** – a második generált lap (suffix automatikusan hozzáadva). + +Ellenőrizheted ezt az Excel‑ben megnyitva a fájlt; a két részletlap egymás mellett látható lesz. + +--- + +## 6. lépés: Munkafüzet mentése XLSX fájlként + +Végül a fájlt a lemezre írjuk. A `Save` metódus automatikusan XLSX formátumot választ, ha a kiterjesztés `.xlsx`. + +```csharp +// Step 6: Persist the workbook – this is the moment we finally “save workbook as XLSX”. +string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; +workbook.Save(outputPath); +``` + +**Pro tipp:** Ha közvetlenül egy webválaszba (pl. ASP.NET Core) szeretnéd stream‑elni a fájlt, használd a `workbook.Save(stream, SaveFormat.Xlsx)`‑t a fájlútvonal helyett. + +--- + +## Teljes működő példa + +Az alábbi kódrészlet a komplett, futtatható program. Másold be egy konzol‑alkalmazásba, nyomd le az F5‑öt, és nyisd meg a generált fájlt a végeredmény megtekintéséhez. + +```csharp +using System; +using Aspose.Cells; + +namespace MasterSheetDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook and rename the default sheet to "Master" + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert a smart‑marker that will generate a detail sheet per data row + masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); + + // 3️⃣ Prepare a data source where two rows share the same sheet name + var dataSource = new[] + { + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } + }; + + // 4️⃣ Allow duplicate sheet names – the library will add "_1", "_2", … + var smartMarkerOptions = new SmartMarkerOptions + { + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed + }; + + // 5️⃣ Process the smart‑markers; this creates the detail sheets + masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); + + // 6️⃣ Save the workbook as an XLSX file + string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Várható eredmény:** Nyisd meg a `DuplicateDetailSheets.xlsx`‑t, és három munkalapot látsz – `Master`, `Detail` és `Detail_1`. Minden részletlap pontos másolata a masternek, később sor‑specifikus adatokkal tölthető fel. + +--- + +## Gyakori kérdések és széljegyek + +### Mi a teendő, ha több mint két duplikált lapra van szükség? + +Semmi gond. A `DuplicateAllowed` beállítás ugyanúgy folytatja a numerikus számok (`Detail_2`, `Detail_3`, …) hozzáadását, amíg minden sor saját fület kap. + +### Testreszabhatom a suffix formátumát? + +Alapértelmezés szerint az Aspose.Cells egy aláhúzást és egy numerikus indexet használ. Ha más mintát (pl. „Detail‑A”, „Detail‑B”) szeretnél, a `Process` futása után kell a munkafüzetet post‑processzálni, végigiterálva a `workbook.Worksheets`‑en, és a kívánt módon átnevezve. + +### Működik ez nagy adatállományokkal (száz sorral)? + +Igen, de figyelj a memóriahasználatra. Minden generált lap a master teljes másolata, így sok sor esetén a fájlméret gyorsan nő. Ha csak néhány sort szeretnél egy lapon, fontold meg a `SmartMarkerOptions.RemoveEmptyRows = true` használatát a felesleges cellák levágásához. + +### Valóban XLSX fájlról van szó? + +Teljesen. A `Save` metódus az Open XML csomagot írja, amelyet az Excel elvár. A fájlt akár LibreOffice‑szal vagy Google Sheets‑szel is megnyithatod konverzió nélkül. + +--- + +## Tippek a production‑kész kódhoz + +| Tipp | Miért fontos | +|------|----------------| +| **Dispose `Workbook** | | + +{{< /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/hungarian/net/formulas-functions/_index.md b/cells/hungarian/net/formulas-functions/_index.md index 7503b639e4..a3b527fa50 100644 --- a/cells/hungarian/net/formulas-functions/_index.md +++ b/cells/hungarian/net/formulas-functions/_index.md @@ -102,64 +102,10 @@ Ismerje meg, hogyan adhatja meg Excel-fájljai nyelvét az Aspose.Cells .NET has ### [Excel Power Query képletek frissítése az Aspose.Cells .NET segítségével](./update-power-query-formulas-aspose-cells-net) Ismerje meg, hogyan frissítheti programozottan a Power Query-képleteket az Excel-munkafüzetekben az Aspose.Cells for .NET használatával. Fő adatforrás-kezelés dinamikus jelentéskészítéshez. -## Az Excel képlettípusok megértése +### [Hogyan használjuk a WRAPCOLS-t C#-ban – Excel munkafüzet létrehozása wrap függvényekkel](./how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/) -Az Excel-képletek különféle formákban léteznek, mindegyik egyedi jellemzőkkel rendelkezik, amelyeket az Aspose.Cells képes kezelni: - -### Standard cellaképletek - -Ezek a leggyakoribb képletek, amelyek egyetlen cellán működnek: - -- **Számtani képletek**Alapvető számítások, mint például `=A1+B1` -- **Függvényalapú képletek**Beépített függvények használata, mint például `=SUM(A1:A10)` -- **Logikai képletek**Feltételes logika olyan függvényekkel, mint a `=IF(A1>10,"High","Low")` -- **Szöveges képletek**Szövegmanipuláció olyan függvényekkel, mint a `=CONCATENATE(A1," ",B1)` - -### Tartományalapú képletek - -Ezek a képletek cellatartományokkal működnek: - -- **Összesítési képletek**: Funkciók, mint például `=AVERAGE(A1:A100)` amelyek több sejtet dolgoznak fel -- **Keresési képletek**: Hivatkozási függvények, mint például `=VLOOKUP(E1,A1:B20,2,FALSE)` adatkereséshez -- **Adatbázis-képletek**Speciális funkciók, mint például `=DSUM(A1:F100,"Amount",G1:H2)` szűréshez és számításhoz - -### Tömbképletek - -A tömbképletek egyszerre több értékkel végeznek számításokat: - -- **Egycellás tömbképlet**: Egy eredményt ad vissza, de a tömböket belsőleg dolgozza fel -- **Többcellás tömbképlet**: Több cellát tölt fel kapcsolódó eredményekkel -- **Dinamikus tömbök**Modern Excel-képletek, amelyek automatikusan kiosztják az eredményeket a szomszédos cellákba - -### Elnevezett képletek - -Ezek a képletek elnevezett tartományokat vagy definiált neveket használnak: - -- **Elnevezett tartományhivatkozások**Definiált nevek használata, mint például `=SUM(SalesData)` -- **Strukturált hivatkozások**Táblázathivatkozások, mint például `=SUM(Table1[Amount])` -- **Dinamikus elnevezett tartományok**: Az adatmérettel automatikusan igazodó képletek - -## A képletkezelés legjobb gyakorlatai - -### Teljesítményoptimalizálás - -A hatékony készítmény-kezelés biztosítása érdekében: - -1. **Kötegképlet beállítása**Képletek alkalmazása tartományokra cellánkénti helyett -2. **Szelektív számítás**: Lehetőség szerint célzott számítást használjon a teljes újraszámítás helyett -3. **Illékony függvények minimalizálása**: Korlátozza az olyan függvények használatát, mint a NOW() vagy a RAND(), amelyek újraszámítást indítanak el. -4. **Megosztott képletek használata**: Használja ki a megosztott képletek képességeit a memóriahatékonyság érdekében - -### Képlet megbízhatósága - -képlet robusztus megvalósításához: - -1. **Hibakezelés**: Képlethiba-kezelés implementálása HAHIBA vagy hasonló függvényekkel -2. **Sejtfüggőségi elemzés**: A képletek függőségeinek megértése a körkörös hivatkozások elkerülése érdekében -3. **Képletellenőrzés**: Képletlogika ellenőrzése a telepítés előtt -4. **Dokumentáció**: Az összetett képletszerkezetek egyértelmű dokumentációjának fenntartása - -Az Aspose.Cells for .NET ezen képletképességeinek elsajátításával kifinomult számítási motorokat hozhat létre táblázataiban, amelyek pontos, dinamikus eredményeket biztosítanak az Excel telepítése nélkül. +### [Excel munkafüzet létrehozása C# – Lambda, SEQUENCE és EXPAND útmutató](./create-excel-workbook-c-lambda-sequence-expand-guide/) +Tanulja meg, hogyan hozhat létre Excel munkafüzetet C#-ban Lambda, SEQUENCE és EXPAND függvények használatával. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/hungarian/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md b/cells/hungarian/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md new file mode 100644 index 0000000000..9d6d94a9e9 --- /dev/null +++ b/cells/hungarian/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-30 +description: Excel munkafüzet létrehozása C#-ban az Aspose.Cells használatával. Tanulja + meg alkalmazni a lambda függvényt Excelben, a sequence függvényt Excelben, a tömb + kibontását Excelben, és mentse a munkafüzetet xlsx formátumban. +draft: false +keywords: +- create excel workbook c# +- lambda function excel +- save workbook as xlsx +- sequence function excel +- expand array excel +language: hu +og_description: Gyorsan hozzon létre Excel munkafüzetet C#-ban. Ez az útmutató bemutatja, + hogyan használja a lambda függvényt Excelben, a sorozat függvényt Excelben, a tömb + kibontását Excelben, és hogyan mentse a munkafüzetet xlsx formátumban. +og_title: Excel munkafüzet létrehozása C#-ban – Lambda, SEQUENCE és EXPAND útmutató +tags: +- Aspose.Cells +- C# +- Excel automation +title: Excel munkafüzet létrehozása C#-ban – Lambda, SEQUENCE és EXPAND útmutató +url: /hu/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel munkafüzet létrehozása C#‑ban – Lambda, SEQUENCE és EXPAND útmutató + +Valaha is szükséged volt **Excel munkafüzet C#‑ban** egy automatizált jelentéshez, de nem tudtad, melyik API‑hívásokat használd? Nem vagy egyedül – sok fejlesztő ugyanazzal a problémával szembesül, amikor először programozottan generál Excel‑t. Ebben az útmutatóban egy teljes, futtatható példát láthatsz, amely lefedi az új **SEQUENCE függvény Excel**-t, a hatékony **LAMBDA függvény Excel**-t, és még azt is, hogyan **expand array Excel** eredményeket. + +Megmutatjuk a pontos lépéseket is, hogyan **save workbook as xlsx**, hogy a fájlt átadhasd bárkinek, aki Excel‑t használ. A tutorial végére egy stabil, termelés‑kész kódrészletet kapsz, amelyet bármely .NET projektbe beilleszthetsz. Nincs homályos „lásd a dokumentációt” hivatkozás – csak olyan kód, ami ma működik. + +## Amire szükséged lesz + +- **.NET 6.0 vagy újabb** – a példa .NET 6‑ra céloz, de bármely friss verzió működik. +- **Aspose.Cells for .NET** – telepítsd a NuGet‑en keresztül (`Install-Package Aspose.Cells`). +- Alapvető C# szintaxis ismeret (változók, objektumok és lambda kifejezések). +- Egy kedvedre való IDE (Visual Studio, Rider vagy VS Code). + +Ennyi. Nincs extra COM interop, nincs Office telepítve a szerveren – az Aspose.Cells mindent memóriában kezel. + +## Excel munkafüzet létrehozása C#‑ban – Lépésről‑lépésre megvalósítás + +Az alábbiakban a folyamatot kisebb, könnyen követhető lépésekre bontjuk. Minden lépésnek van egyértelmű címe, egy rövid kódrészlete, és magyarázata **miért** csináljuk így. Nyugodtan másold ki a teljes blokkot a végén, és futtasd konzolalkalmazásként. + +### 1. lépés – Új munkafüzet inicializálása + +Először is szükségünk van egy üres munkafüzet objektumra, amely a memóriában lévő Excel‑fájlt képviseli. + +```csharp +using Aspose.Cells; + +// Step 1: Create a new workbook and get the first worksheet +Workbook workbook = new Workbook(); // empty workbook +Worksheet sheet = workbook.Worksheets[0]; // default first sheet +``` + +*Miért fontos:* A `Workbook` az összes Aspose.Cells művelet belépési pontja. Az első `Worksheet` lekérésével kapunk egy vásznat, ahová képleteket, értékeket vagy formázást írhatunk. + +> **Pro tipp:** Ha több lapra van szükséged, egyszerűen hívd a `workbook.Worksheets.Add()`‑t, és tartsd meg a hivatkozást minden lapra. + +### 2. lépés – SEQUENCE függvény Excel használata adatok generálásához + +A **sequence function excel** dinamikus számtömböt hoz létre VBA nélkül. Az `A1` cellába helyezzük, és hagyjuk, hogy az Excel automatikusan kibővítse. + +```csharp +// Step 2: Generate a 5‑row, 1‑column array from a SEQUENCE +sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; // 1..3 padded with blanks +``` + +*Miért fontos:* A `SEQUENCE(3)` `[1,2,3]` tömböt ad. Az `EXPAND`‑el kényszerítjük, hogy az eredmény egy 5 soros tartományba kerüljön, a felesleges sorok pedig üresek maradnak. Ez egyszerre mutatja be a **sequence function excel**‑t és a **expand array excel**‑t. + +### 3. lépés – Számok aggregálása LAMBDA függvény Excel segítségével + +Most mutassuk be a **lambda function excel** képességét. Az `REDUCE` függvényt használjuk, amely belsőleg egy lambda‑ra támaszkodik, hogy összegezzük az 1‑5 számokat. + +```csharp +// Step 3: Aggregate a sequence (sum 1..5) using REDUCE/LAMBDA +sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; // result = 15 +``` + +*Miért fontos:* A `REDUCE` végigiterál a `SEQUENCE(5)` által előállított tömbön, minden elemet (`b`) a lambda‑ba adva a felhalmozóval (`a`). A `a+b` lambda összeadja őket, így a `B1` cellában `15` lesz. Ez egy tiszta, csak képleteket használó módja a redukcióknak, anélkül, hogy C#‑ban ciklusokat írnánk. + +### 4. lépés – Trigonometrikus függvények közvetlen alkalmazása cellákban + +Az Excel beépített matematikai függvényei gyors számításokra alkalmasak. Egy kotangenset és egy hiperbolikus kotangenset helyezünk el szomszédos cellákban. + +```csharp +// Step 4: Trigonometric functions directly in Excel cells +sheet["C1"].Formula = "COT(PI()/4)"; // evaluates to 1 +sheet["D1"].Formula = "COTH(1)"; // hyperbolic cotangent of 1 +``` + +*Miért fontos:* Bemutatja, hogy a klasszikus matematikai függvényeket keverheted az új dinamikus‑tömb képletekkel. Nincs szükség ezeknek az értékeknek a C#‑ban való kiszámítására, hacsak nem áll fenn speciális teljesítményigény. + +### 5. lépés – Minden képlet kiszámítása + +Az Aspose.Cells nem számolja ki automatikusan a képleteket, amikor beállítod őket. Kérned kell, hogy elvégezze a számítást. + +```csharp +// Step 5: Force calculation so that cells store the results +workbook.CalculateFormula(); +``` + +*Miért fontos:* Ez a hívás után minden cella `Value` tulajdonsága a kiértékelt eredményt tartalmazza, készen áll a mentésre vagy a visszaolvasásra. + +### 6. lépés – Munkafüzet mentése Xlsx‑ként + +Végül a **save workbook as xlsx** mintát használva mentjük a munkafüzetet a lemezre. + +```csharp +// Step 6: Save the workbook to an Excel file (XLSX format) +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + +workbook.Save(outputPath); +Console.WriteLine($"Workbook saved to: {outputPath}"); +``` + +*Miért fontos:* A `Save` metódus automatikusan felismeri a fájlkiterjesztést. A „.xlsx” használatával biztosítjuk, hogy a fájl kompatibilis legyen a modern Excel verziókkal. Az útvonal az asztalra mutat, hogy könnyen elérhető legyen a tesztelés során. + +### Teljes működő példa + +Az alábbi teljes programot beillesztheted egy új konzolprojektbe. Tartalmazza a fenti lépéseket, valamint egy kis ellenőrző blokkot, amely kiírja a számított értékeket a konzolra. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialize workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + + // SEQUENCE + EXPAND + sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; + + // REDUCE with LAMBDA + sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; + + // Trig functions + sheet["C1"].Formula = "COT(PI()/4)"; + sheet["D1"].Formula = "COTH(1)"; + + // Calculate formulas + workbook.CalculateFormula(); + + // Verify results (optional) + Console.WriteLine("A1‑A5 (expanded SEQUENCE):"); + for (int i = 0; i < 5; i++) + { + Console.WriteLine($" Row {i + 1}: {sheet.Cells[i, 0].Value ?? "blank"}"); + } + Console.WriteLine($"B1 (sum 1‑5): {sheet["B1"].Value}"); + Console.WriteLine($"C1 (cot(π/4)): {sheet["C1"].Value}"); + Console.WriteLine($"D1 (coth(1)): {sheet["D1"].Value}"); + + // Save workbook + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + workbook.Save(outputPath); + Console.WriteLine($"Workbook saved to: {outputPath}"); + } +} +``` + +**Várható kimenet a konzolon** + +``` +A1‑A5 (expanded SEQUENCE): + Row 1: 1 + Row 2: 2 + Row 3: 3 + Row 4: blank + Row 5: blank +B1 (sum 1‑5): 15 +C1 (cot(π/4)): 1 +D1 (coth(1)): 1.31303528549933 +Workbook saved to: C:\Users\YourName\Desktop\NewFunctions.xlsx +``` + +És amikor megnyitod a *NewFunctions.xlsx* fájlt, ugyanazokat a számokat láthatod az első négy oszlopban. + +![create excel workbook c# screenshot of the resulting spreadsheet](/images/create-excel-workbook-csharp.png) + +## Széljegyek, tippek és gyakori kérdések + +- **Mi van, ha több lapra van szükségem?** + Egyszerűen hívd a `workbook.Worksheets.Add()`‑t, és ismételd meg a képlet‑hozzárendeléseket minden új `Worksheet` objektumon. + +- **Használhatók-e régebbi Excel verziók?** + A dinamikus‑tömb függvények (`SEQUENCE`, `EXPAND`, `REDUCE`) Excel 365‑öt vagy Excel 2021‑et igényelnek. Régebbi verziók esetén maradj a klasszikus képleteknél, vagy számold ki az értékeket C#‑ban, mielőtt beírnád őket. + +- **Teljesítménybeli aggályok?** + Több ezer sor esetén a képletek egy tartományra való beállítása, majd a `CalculateFormula` meghívása általában gyorsabb, mint egyesével értékeket hozzárendelni. + +- **Mentés stream‑be fájl helyett?** + `work + +{{< /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/hungarian/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md b/cells/hungarian/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md new file mode 100644 index 0000000000..2481abcf00 --- /dev/null +++ b/cells/hungarian/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md @@ -0,0 +1,212 @@ +--- +category: general +date: 2026-03-30 +description: Tanulja meg, hogyan használja a WRAPCOLS-t C#-ban egy Excel munkafüzet + létrehozásához, adatok hozzáadásához az Excelhez, és a képlet számításának kényszerítéséhez, + miközben a WRAPROWS-t is használja. +draft: false +keywords: +- how to use wrapcols +- create excel workbook c# +- add data to excel +- force formula calculation +- how to use wraprows +language: hu +og_description: Fedezze fel, hogyan használhatja a WRAPCOLS-t C#-ban egy Excel munkafüzet + építéséhez, adatok hozzáadásához, a képlet számításának kényszerítéséhez, és a WRAPROWS-t + tömbképletekhez. +og_title: Hogyan használjuk a WRAPCOLS-t C#-ban – Teljes útmutató +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Hogyan használjuk a WRAPCOLS-t C#-ban – Excel munkafüzet létrehozása wrap függvényekkel +url: /hu/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hogyan használjuk a WRAPCOLS-t C#-ban – Excel munkafüzet létrehozása wrap függvényekkel + +Gondoltad már valaha, **hogyan kell használni a WRAPCOLS-t**, amikor C#-al automatizálod az Excelt? Nem vagy egyedül – sok fejlesztő akad el, amikor egy vízszintes tartományt kell függőleges tömbbé alakítani anélkül, hogy rengeteg kódot írna. A jó hír, hogy az Aspose.Cells ezt gyerekjátékra könnyíti. + +Ebben az útmutatóban végigvezetünk egy teljes, futtatható példán, amely bemutatja, **hogyan kell használni a WRAPCOLS-t**, hogyan **hozzunk létre Excel munkafüzetet C#‑stílusban**, hogyan **adjunk adatot az Excelhez**, és még azt is, **hogyan kényszerítsük a képlet számítását**, hogy az eredmények azonnal megjelenjenek. Emellett megemlítjük a **WRAPROWS használatát** a fordított átalakításhoz is. A végére egy azonnal futtatható programot és egy világos megértést kapsz arról, miért fontos minden lépés. + +--- + +![How to use WRAPCOLS in C# example](alt="Screenshot showing Excel workbook after using WRAPCOLS in C#") + +## Mit fed le ez az útmutató + +* Friss munkafüzet beállítása az Aspose.Cells segítségével. +* Cellák feltöltése programozottan (**add data to Excel**). +* `WRAPCOLS` függvény alkalmazása a sor oszlopba alakításához. +* `WRAPROWS` használata a oszlop sorba visszafordításához (**how to use wraprows**). +* A motor kényszerítése a képletek azonnali kiértékelésére (**force formula calculation**). +* A fájl mentése és a kimenet ellenőrzése. + +Nem szükséges külső dokumentáció – minden, amire szükséged van, itt található. + +--- + +## Hogyan használjuk a WRAPCOLS-t C#‑ban – Lépésről‑lépésre megvalósítás + +Az alábbiakban a teljes forrásfájl látható. Nyugodtan másold be egy új konzolos projektbe, add hozzá az Aspose.Cells NuGet csomagot, és nyomd meg a **F5**‑öt. + +```csharp +// ------------------------------------------------------------ +// How to Use WRAPCOLS in C# – Complete Example +// ------------------------------------------------------------ +using System; +using Aspose.Cells; + +namespace WrapFunctionsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a fresh workbook (this is how we **create excel workbook c#** style) + Workbook workbook = new Workbook(); + + // 2️⃣ Grab the first worksheet – it's created by default + Worksheet sheet = workbook.Worksheets[0]; + + // 3️⃣ **Add data to Excel**: place two numbers side‑by‑side + sheet.Cells["A1"].PutValue(1); // first value + sheet.Cells["B1"].PutValue(2); // second value + + // 4️⃣ **How to use WRAPCOLS** – turn the horizontal range A1:B1 into a vertical array + // The second argument (1) tells WRAPCOLS to create 1 column per element. + sheet["C1"].Formula = "WRAPCOLS(A1:B1, 1)"; + + // 5️⃣ **How to use WRAPROWS** – the opposite; turn the same range into a horizontal array + // Here we ask for 2 rows per element, which produces a single row with both values. + sheet["C2"].Formula = "WRAPROWS(A1:B1, 2)"; + + // 6️⃣ **Force formula calculation** so the workbook reflects the results immediately + workbook.CalculateFormula(); + + // 7️⃣ Save the workbook to disk – change the path to a folder you own + string outputPath = @"WrapFunctions.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + Console.WriteLine("Check cells C1 and C2 for the WRAPCOLS / WRAPROWS results."); + } + } +} +``` + +### Miért fontos minden sor + +| Lépés | Magyarázat | +|------|-------------| +| **1️⃣ Friss munkafüzet létrehozása** | Ez az alap. Az Aspose.Cells egy `Workbook` objektumot tekint az egész Excel fájlnak, így gyakorlatilag **Excel munkafüzetet hozol létre C#‑stílusban**. | +| **2️⃣ Az első munkalap lekérése** | Egy új munkafüzet mindig legalább egy munkalapot tartalmaz (`Worksheets[0]`). A korai hozzáférés elkerüli a null‑referencia meglepetéseket. | +| **3️⃣ Adatok hozzáadása az Excelhez** | A `PutValue` használatával **add data to Excel** anélkül, hogy a cellaformázásra gondolnánk. A `1` és `2` számok a tesztadataink a wrap függvényekhez. | +| **4️⃣ Hogyan használjuk a WRAPCOLS-t** | `WRAPCOLS(A1:B1, 1)` azt mondja az Excelnek, hogy vegye a `A1:B1` tartományt és függőlegesen, soronként egy értékkel öntse ki. Az eredmény a `C1`-be kerül, és lefelé folytatódik (`C1`, `C2`, …). | +| **5️⃣ Hogyan használjuk a WRAPROWS-t** | `WRAPROWS(A1:B1, 2)` a fordítót csinálja: egy vízszintes kiöntést hoz létre, a két értéket egyetlen sorba helyezve, kezdve a `C2`-től. | +| **6️⃣ Képlet számítás kényszerítése** | Alapértelmezés szerint az Aspose.Cells elhalaszthatja a számítást, amíg a fájlt nem nyitják meg Excelben. A `CalculateFormula()` hívás **force formula calculation**-t hajt végre, így a mentés után azonnal elolvashatod az eredményeket. | +| **7️⃣ Munkafüzet mentése** | Az utolsó lépés mindent a lemezre ír. Nyisd meg a keletkezett `WrapFunctions.xlsx` fájlt az eredmény megtekintéséhez. | + +--- + +## Excel munkafüzet létrehozása C#‑ban – A környezet beállítása + +Mielőtt futtatnád a kódot, győződj meg róla, hogy a megfelelő eszközök rendelkezésedre állnak: + +1. **.NET 6.0+** – A legújabb LTS verzió a legjobb. +2. **Visual Studio 2022** (vagy VS Code a C# kiegészítővel). +3. **Aspose.Cells for .NET** – Telepítés NuGet-en keresztül: + ```bash + dotnet add package Aspose.Cells + ``` +4. Írási jogosultsággal rendelkező mappa a kimeneti fájl számára. + +Ezek a követelmények minimálisak; nincs szükség COM interopra vagy Office telepítésre, ezért az Aspose.Cells népszerű választás a szerver‑oldali Excel generáláshoz. + +--- + +## Adatok hozzáadása az Excelhez – Legjobb gyakorlatok + +Amikor programozottan **add data to Excel**, vedd figyelembe ezeket a tippeket: + +* **Use `PutValue`** nyers számokhoz vagy karakterláncokhoz; automatikusan felismeri az adat típust. +* **Avoid hard‑coding cell addresses** nagy projektekben – használj ciklusokat vagy névvel ellátott tartományokat a skálázhatóság érdekében. +* **Set cell styles sparingly**; minden stílusváltoztatás többletterhet jelent. Ha formázásra van szükség, hozz létre egyetlen stílusobjektumot, és alkalmazd több cellára. + +A mi apró példánkban csak két számot illesztünk be, de ugyanaz a minta több ezer sorra is skálázható. + +--- + +## Hogyan használjuk a WRAPROWS-t – Vízszintes tömb példa + +Ha a `WRAPCOLS` ellenkezőjére van szükséged, a `WRAPROWS` a megfelelő választás. A szintaxis a következő: + +``` +WRAPROWS(source_range, [rows_per_item]) +``` + +* `source_range` – a tartomány, amelyet át szeretnél alakítani. +* `rows_per_item` – opcionális; megmondja az Excelnek, hány sor foglal el egy elem. A demónkban `2`‑t használtunk, hogy mindkét érték egy sorba kerüljön. + +Kísérletezhetsz a második argumentum módosításával: + +```csharp +// Example: split each value into its own column, three rows per item +sheet["D1"].Formula = "WRAPROWS(A1:B1, 3)"; +``` + +Nyisd meg a munkafüzetet, és láthatod, hogy az értékek három oszlopban terülnek el, minden oszlop az eredeti számokat tartalmazza, ahogy szükséges. + +--- + +## Képlet számítás kényszerítése – Mikor és miért + +Gondolkozhatsz, „Valóban szükséges hívni a `CalculateFormula()`‑t?” A válasz **igen**, ha: + +* Azt tervezed, hogy a mentés után **programmatically** olvasod a kiszámított értékeket. +* Azt szeretnéd biztosítani, hogy a fájl Excelben megnyitáskor már a helyes eredményeket mutassa. +* Egy **headless environment**‑ben (pl. web API) futsz, ahol senki sem indítja el manuálisan a újraszámítást. + +Ennek a lépésnek a kihagyása nem rontja el a munkafüzetet, de a cellák a képlet szövegét (`=WRAPCOLS(...)`) fogják mutatni a kiszámított értékek helyett, amíg az Excel újraszámít. + +--- + +## Várható kimenet – Mit kell keresni + +A program futtatása és a `WrapFunctions.xlsx` megnyitása után: + +| Cella | Képlet | Megjelenített érték | +|------|---------|-----------------| +| **C1** | `=WRAPCOLS(A1:B1, 1)` | `1` (C1‑ben) és `2` (C2‑ben) – egy függőleges lista | +| **C2** | `=WRAPROWS(A1:B1, 2)` | `1` C2‑ben és `2` D2‑ben – egy vízszintes lista | + +Így egy **C1**‑től kezdődő értékkolumnát és egy **C2**‑től kezdődő értékes sort látsz. Ez megerősíti, hogy mindkét wrap függvény a várt módon működött. + +--- + +## Szélsőséges esetek és változatok + +| Forgatókönyv | Mi változik? | Javasolt módosítás | +|----------|---------------|-----------------| +| **Nagy tartomány (A1:Z1)** | Több érték függőlegesen kiöntésre | `WRAPCOLS` második argumentumának növelése, ha több oszlopot szeretnél csoportonként. | +| **Nem numerikus adat** | A karakterláncok ugyanúgy kezelődnek | Nincs kódváltoztatás; a `PutValue` bármilyen objektumot elfogad. | +| **Dinamikus tartomány** | Nem ismered a méretet fordítási időben | `sheet.Cells.MaxDataColumn` és `MaxDataRow` használata a cím string felépítéséhez. | +| **Több munkalap** | Wrap függvények alkalmazása különböző lapokon | A megfelelő munkalap hivatkozása (`workbook.Worksheets["Sheet2"]`). | + +--- + +## Profi tippek a gyakorlatból + +* **Pro tip:** A munkafüzet létrehozását `using` blokkba tedd, ha .NET Core 3.1+ célplatformot használsz, hogy minden erőforrás gyorsan felszabaduljon. +* **Watch out for:** Ugyanazon képlet beállítása nagy tartományban a `CalculateFormula()` hívása nélkül teljesítménybeli szűk keresztmetszetet okozhat. Amikor csak lehetséges, csoportosítsd a képletek feldolgozását. +* **Tip:** Ha a kódban vissza kell olvasnod a kiszámított értékeket, hívd meg a ` + +{{< /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/hungarian/net/tables-and-lists/_index.md b/cells/hungarian/net/tables-and-lists/_index.md index 462a112c06..6b1d01a67d 100644 --- a/cells/hungarian/net/tables-and-lists/_index.md +++ b/cells/hungarian/net/tables-and-lists/_index.md @@ -45,6 +45,8 @@ Tanuld meg, hogyan formázhatsz listaobjektumokat Excelben az Aspose.Cells for . Tanuld meg, hogyan konvertálhatsz Excel-táblázatokat ODS-sé az Aspose.Cells for .NET segítségével egyszerű, lépésről lépésre bemutató oktatóanyagunkkal. ### [Táblázat konvertálása tartományba Excelben](./converting-table-to-range/) Az Aspose.Cells for .NET segítségével könnyedén konvertálhatsz Excel-táblázatokat tartományokká. Kövesd lépésről lépésre szóló útmutatónkat, hogy az adatkezelés gyerekjáték legyen. +### [Táblázat létrehozása tartományból C#-ban – Teljes Aspose.Cells oktatóanyag](./create-table-from-range-in-c-complete-aspose-cells-tutorial/) +Tanuld meg, hogyan hozhatsz létre táblázatot egy tartományból C#-ban az Aspose.Cells segítségével. ### [Táblázat konvertálása tartomnyá opciókkal](./converting-table-to-range-with-options/) Az Aspose.Cells for .NET segítségével lépésről lépésre haladva táblázatokat alakíthatsz át tartományokká Excelben. Fejleszd adatkezelési készségeidet Excelben. ### [Tábla olvasása és írása lekérdezési adatforrással](./reading-and-writing-table-with-query-data-source/) diff --git a/cells/hungarian/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md b/cells/hungarian/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md new file mode 100644 index 0000000000..e1394d00c7 --- /dev/null +++ b/cells/hungarian/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md @@ -0,0 +1,231 @@ +--- +category: general +date: 2026-03-30 +description: Táblázat létrehozása tartományból C#-ban az Aspose.Cells használatával + – adatok hozzáadása a cellákhoz, a tartomány ListObject-re konvertálása és az Excel + mentése szűrő nélkül. +draft: false +keywords: +- create table from range +- create excel workbook c# +- add data to cells +- convert range to listobject +- save excel without filter +language: hu +og_description: Hozzon létre táblázatot tartományból C#‑ban az Aspose.Cells segítségével. + Tanulja meg, hogyan adjon adatokat a cellákhoz, hogyan konvertáljon egy tartományt + ListObject‑re, és hogyan mentse az Excelt szűrés nélkül. +og_title: Táblázat létrehozása tartományból C#-ban – Teljes Aspose.Cells útmutató +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Táblázat létrehozása tartományból C#‑ban – Teljes Aspose.Cells útmutató +url: /hu/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Táblázat létrehozása tartományból C#‑ban – Teljes Aspose.Cells útmutató + +Valaha szükséged volt már **create table from range** C#‑ban, de nem tudtad, hogyan alakíts egy egyszerű adatblokkot egy teljes funkcionalitású Excel‑táblává? Nem vagy egyedül. Akár jelentéseket automatizálsz, pontszámlákat generálsz, vagy csak megtisztítod az adatokat a további elemzéshez, ennek a kis trükknek a elsajátítása rengeteg kézi munkát takaríthat meg. + +Ebben az útmutatóban végigvezetünk a teljes folyamaton: **create excel workbook c#**, **add data to cells**, **convert range to ListObject**, és végül **save excel without filter**. A végére egy azonnal futtatható kódrészletet kapsz, amelyet bármely, az Aspose.Cells‑re hivatkozó .NET projektbe beilleszthetsz. + +--- + +## Előfeltételek + +- .NET 6+ (vagy .NET Framework 4.7.2+) telepítve +- Aspose.Cells for .NET (NuGet csomag `Aspose.Cells`) – a jelen írás időpontjában legújabb verzió (23.10) tökéletesen működik. +- Alapvető C# szintaxis ismeret – mély Excel interop tudás nem szükséges. + +Ha ezek megvannak, kezdjünk bele. + +--- + +## 1. lépés: Excel munkafüzet létrehozása C#‑ban + +Először is szükségünk van egy új munkafüzet objektumra. Tekintsd ezt egy üres Excel‑fájlnak, amely később a táblázatunkat fogja tartalmazni. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is equivalent to opening a blank .xlsx file. +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (default) worksheet. +``` + +> **Pro tipp:** A `Workbook()` argumentumok nélkül egy munkafüzetet hoz létre egy alapértelmezett munkalappal, ami tökéletes gyors demókhoz. Ha több lapra van szükséged, később hozzáadhatod őket a `workbook.Worksheets.Add()` segítségével. + +--- + +## 2. lépés: Adatok hozzáadása cellákhoz + +Most feltöltjük a munkalapot egy kis adathalmazzal – két oszlop (Name, Score) és három sor értékkel. Ez egy tiszta, olvasható módon mutatja be a **add data to cells** műveletet. + +```csharp +// Header row +worksheet.Cells["A1"].PutValue("Name"); +worksheet.Cells["B1"].PutValue("Score"); + +// Data rows +worksheet.Cells["A2"].PutValue("Alice"); +worksheet.Cells["B2"].PutValue(85); +worksheet.Cells["A3"].PutValue("Bob"); +worksheet.Cells["B3"].PutValue(92); +``` + +Miért használjuk a `PutValue`‑t? Automatikusan felismeri az adat típusát (szöveg vagy szám) és ennek megfelelően formázza a cellát, így elkerülheted a `Style` objektumokkal való bajlódást egyszerű esetekben. + +> **Várható kimenet:** A lépés után, ha megnyitod a munkafüzetet Excelben, egy kétoszlopos rácsot látsz a „Name” és „Score” fejlécekkel, majd két adat sort. + +--- + +## 3. lépés: Tartomány átalakítása ListObject‑té (táblázat) + +Itt történik a varázslat: a sima tartományt Excel‑táblává alakítjuk (az Aspose.Cells API‑ban **ListObject**‑nak hívják). Ez nemcsak vizuális stílust ad, hanem beépített funkciókat is aktivál, mint a rendezés, szűrés és a strukturált hivatkozások. + +```csharp +// Define the range boundaries. +// startRow and startColumn are zero‑based indexes. +// rowCount includes the header row. +int startRow = 0; // Row 1 in Excel +int startColumn = 0; // Column A +int rowCount = 3; // Header + 2 data rows +int columnCount = 2; // Two columns: Name & Score + +// Add a ListObject to the worksheet and retrieve the object. +int listIndex = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); +ListObject table = worksheet.ListObjects[listIndex]; + +// Turn on the UI filter dropdowns so users can interact with the table. +table.ShowAutoFilter = true; +``` + +> **Miért használjunk ListObject‑et?** +> - **Strukturált hivatkozások**: A képletek oszlopokra hivatkozhatnak név szerint. +> - **Auto‑filter UI**: A felhasználók legördülő nyilakat kapnak a gyors szűréshez. +> - **Stílus**: Később egyetlen sorral alkalmazhatsz beépített táblastílusokat. + +--- + +## 4. lépés: Az AutoFilter UI eltávolítása (Excel mentése szűrő nélkül) + +Néha szükség van egy tiszta munkalapra szűrőnyilak nélkül – például amikor a munkafüzet egy végleges jelentés. Az Aspose.Cells 23.10 egy egyszerű módot vezetett be a szűrő UI teljes eltávolítására. + +```csharp +// Remove the filter UI completely. +table.AutoFilter = null; // Clears the underlying filter object. +table.ShowAutoFilter = false; // Hides the dropdown arrows. +``` + +Vedd észre, hogy nem töröljük az adatokat; csak kikapcsoljuk a vizuális szűrővezérlőket. Ez megfelel a **save excel without filter** követelménynek. + +--- + +## 5. lépés: Munkafüzet mentése + +Végül írjuk a munkafüzetet a lemezre. A fájl tartalmazni fogja a táblázatot, de szűrő UI nélkül. + +```csharp +// Choose a folder you have write access to. +string outputPath = @"C:\Temp\NoAutoFilter.xlsx"; +workbook.Save(outputPath); +``` + +Nyisd meg a `NoAutoFilter.xlsx` fájlt Excelben – láthatod a táblázatot alapértelmezett formázással, de szűrőnyilak nélkül. Az adatok érintetlenek, a fájl készen áll a terjesztésre. + +--- + +![Képernyőkép, amely bemutatja a táblázat létrehozását tartományból Excelben az Aspose.Cells használatával](image.png "Táblázat létrehozása tartományból képernyőkép") + +*Kép alternatív szövege:* **Képernyőkép, amely bemutatja a táblázat létrehozását tartományból Excelben az Aspose.Cells használatával** – vizuális bizonyíték arra, hogy a táblázat létezik szűrő legördülő menük nélkül. + +--- + +## Teljes, futtatható példa + +Az alábbiakban a teljes program található, amelyet beilleszthetsz egy konzolalkalmazásba. Tartalmazza a fenti összes lépést, valamint néhány extra megjegyzést a tisztaság kedvéért. + +```csharp +using System; +using Aspose.Cells; + +namespace AsposeTableDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add data to cells – this is the “add data to cells” part. + worksheet.Cells["A1"].PutValue("Name"); + worksheet.Cells["B1"].PutValue("Score"); + worksheet.Cells["A2"].PutValue("Alice"); + worksheet.Cells["B2"].PutValue(85); + worksheet.Cells["A3"].PutValue("Bob"); + worksheet.Cells["B3"].PutValue(92); + + // 3️⃣ Convert the range into a ListObject (i.e., create table from range). + int startRow = 0, startColumn = 0, rowCount = 3, columnCount = 2; + int listIdx = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); + ListObject table = worksheet.ListObjects[listIdx]; + table.ShowAutoFilter = true; // optional UI filter + + // 4️⃣ Remove the AutoFilter UI – “save excel without filter”. + table.AutoFilter = null; + table.ShowAutoFilter = false; + + // 5️⃣ Save the workbook. + string filePath = @"C:\Temp\NoAutoFilter.xlsx"; + workbook.Save(filePath); + + Console.WriteLine($"Workbook saved to {filePath}"); + } + } +} +``` + +Futtasd a programot, majd nyisd meg a `C:\Temp\NoAutoFilter.xlsx` fájlt. Egy szépen formázott táblázatot látsz, szűrőnyilak nélkül, és a beírt adatokat. Ez a teljes **create excel workbook c#** munkafolyamat kevesebb mint 60 soros kódban. + +--- + +## Gyakran Ismételt Kérdések és Különleges Esetek + +**K: Mi van, ha az adat tartományom nem folytonos?** +V: Az Aspose.Cells egy téglalap alakú tartományt igényel a `ListObjects.Add`‑hez. Ha nem folytonos adatod van, először építs egy ideiglenes tartományt (pl. másold a darabokat egy új munkalapra), majd konvertáld azt a tartományt. + +**K: Alkalmazhatok egy egyedi táblastílust?** +V: Természetesen. A `ListObject` létrehozása után állítsd be a `table.TableStyleType = TableStyleType.TableStyleMedium9;`‑t (vagy bármelyik a 65 beépített stílus közül). Ez egy jó módja annak, hogy a táblázat illeszkedjen a vállalati arculathoz. + +**K: Hogyan tarthatom meg a szűrőt, de elrejthetem a nyilakat?** +V: A szűrés logikája a `table.AutoFilter`‑ben van. A `ShowAutoFilter = false` beállítás csak a UI‑t rejti el; a háttérben lévő szűrő megmarad. Így később programozottan továbbra is szűrheted a sorokat. + +**K: Mi a helyzet a nagy adathalmazokkal (10 000+ sor)?** +V: Ugyanaz az API működik, de a teljesítmény érdekében fontold meg az automatikus számítások kikapcsolását (`workbook.CalcEngine = false`) a tömeges beszúrások előtt, majd a művelet után kapcsold vissza. + +--- + +## Összegzés + +Most bemutattuk, hogyan **create table from range** C#‑ban az Aspose.Cells segítségével, lépésről lépésre – a **create excel workbook c#**‑tól, a **add data to cells**‑en át a **convert range to ListObject**‑ig, és végül a **save excel without filter**‑ig. A kód teljes, futtatható, és készen áll a termelésre. + +Ezután érdemes lehet felfedezni: +- Feltételes formázás hozzáadása a legmagasabb pontszámok kiemeléséhez. +- `workbook.Save("Report.pdf", SaveFormat.Pdf);` használatával a munkafüzet PDF‑be exportálása. +- `table.Columns["Score"].DataBodyRange.Sort` használata a táblázat programozott rendezéséhez. + +Nyugodtan kísérletezz különböző adatkészletekkel, táblastílusokkal vagy akár több munkalappal. Az API elég rugalmas ahhoz, hogy bármilyen feladatot kezeljen, legyen az egy apró pontszámláló vagy egy hatalmas pénzügyi főkönyv. + +Van kérdésed vagy elakadtál? Hagyj egy megjegyzést alább, vagy írj nekem a GitHubon. Boldog kódolást, és élvezd a nyers tartományok kifinomult Excel‑táblákká alakítását! + +{{< /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/indonesian/net/conversion-to-pdf/_index.md b/cells/indonesian/net/conversion-to-pdf/_index.md index aec4513f6b..c2a66039f0 100644 --- a/cells/indonesian/net/conversion-to-pdf/_index.md +++ b/cells/indonesian/net/conversion-to-pdf/_index.md @@ -34,6 +34,8 @@ Tapi tunggu, masih ada lagi! Bagaimana jika Anda ingin mengonversi grafik dari l Ubah lembar kerja Excel ke PDF dengan mudah menggunakan Aspose.Cells untuk .NET! Ikuti panduan langkah demi langkah kami untuk pengalaman yang lancar. ### [Konversi Bagan ke PDF dalam .NET](./convert-chart-to-pdf/) Pelajari cara mengonversi grafik Excel ke PDF dalam format .NET menggunakan Aspose.Cells dengan panduan langkah demi langkah ini! Sempurna untuk programmer dari semua tingkatan. +### [Simpan buku kerja sebagai PDF dengan Aspose.Cells – Panduan Lengkap Langkah demi Langkah](./save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/) +Pelajari cara menyimpan workbook Excel menjadi PDF menggunakan Aspose.Cells dengan panduan lengkap langkah demi langkah untuk semua level. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/indonesian/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md b/cells/indonesian/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md new file mode 100644 index 0000000000..a9be224fd8 --- /dev/null +++ b/cells/indonesian/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md @@ -0,0 +1,247 @@ +--- +category: general +date: 2026-03-30 +description: Pelajari cara menyimpan workbook sebagai PDF menggunakan Aspose.Cells. + Tutorial ini juga mencakup cara mengekspor worksheet ke PDF, cara mengekspor Excel + ke PDF, dan membuat PDF dari worksheet. +draft: false +keywords: +- save workbook as pdf +- export worksheet to pdf +- how to export excel to pdf +- save excel as pdf +- create pdf from worksheet +language: id +og_description: Simpan buku kerja sebagai PDF dengan mudah. Panduan ini menunjukkan + cara mengekspor lembar kerja ke PDF, cara mengekspor Excel ke PDF, dan membuat PDF + dari lembar kerja menggunakan C#. +og_title: Simpan buku kerja sebagai PDF dengan Aspose.Cells – Panduan Lengkap +tags: +- Aspose.Cells +- C# +- PDF generation +title: Simpan buku kerja sebagai PDF dengan Aspose.Cells – Panduan Lengkap Langkah + demi Langkah +url: /id/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Simpan workbook sebagai pdf – Panduan Langkah‑per‑Langkah Lengkap + +Pernah perlu **save workbook as pdf** tetapi tidak yakin perpustakaan mana yang akan menjaga angka Anda tetap akurat? Anda tidak sendirian. Dalam banyak proyek kami harus mengubah data Excel menjadi PDF yang rapi, dan melakukannya dengan cara yang tepat menghemat berjam‑jam debugging. + +Dalam tutorial ini kami akan membimbing Anda melalui kode tepat yang Anda perlukan untuk **save workbook as pdf** dengan Aspose.Cells, dan sepanjang jalan kami juga akan menunjukkan cara **export worksheet to pdf**, menjawab pertanyaan *how to export excel to pdf*, serta mendemonstrasikan cara bersih untuk **create pdf from worksheet** dengan pengaturan presisi khusus. + +Pada akhir panduan, Anda akan memiliki aplikasi konsol C# yang siap dijalankan dan menghasilkan PDF yang hanya berisi digit signifikan yang Anda butuhkan. Tanpa tambahan yang tidak perlu, hanya solusi solid yang siap produksi. + +--- + +## Apa yang Akan Anda Pelajari + +- Cara menyiapkan `Workbook` baru dan menargetkan worksheet pertamanya. +- Metode tepat untuk **save workbook as pdf** sambil mempertahankan presisi numerik. +- Mengapa properti `SignificantDigits` penting saat Anda **export worksheet to pdf**. +- Jebakan umum ketika Anda mencoba **how to export excel to pdf** dan cara menghindarinya. +- Cara cepat untuk **save excel as pdf** dengan opsi halaman yang berbeda, serta cara **create pdf from worksheet** secara programatis. + +### Prasyarat + +- .NET 6.0 atau lebih baru (kode ini juga bekerja dengan .NET Framework 4.5+). +- Lisensi Aspose.Cells yang valid (atau lisensi sementara gratis untuk pengujian). +- Visual Studio 2022 atau IDE kompatibel C# apa pun. + +Jika Anda sudah menyiapkan hal‑hal dasar tersebut, mari kita mulai. + +--- + +## Langkah 1 – Instal Aspose.Cells dan Inisialisasi Workbook + +Pertama‑tama: Anda memerlukan paket NuGet Aspose.Cells. Buka terminal di folder proyek Anda dan jalankan: + +```bash +dotnet add package Aspose.Cells +``` + +Setelah paket terpasang, buat objek `Workbook` baru. Inilah objek yang nantinya akan Anda **save workbook as pdf**. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialise a fresh workbook – think of it as a blank Excel file. + Workbook workbook = new Workbook(); + + // Grab the first worksheet (index 0). This is where we’ll put our data. + Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Mengapa langkah ini?* +Membuat workbook memberi Anda kanvas bersih, dan memilih worksheet pertama memastikan Anda bekerja pada lokasi yang diketahui. Melewatkan langkah ini dapat menyebabkan error *null reference* ketika Anda kemudian mencoba **export worksheet to pdf**. + +--- + +## Langkah 2 – Sisipkan Data Presisi Tinggi + +Sekarang kami akan menambahkan angka yang memiliki lebih banyak tempat desimal daripada yang ingin kami tampilkan di PDF. Ini menunjukkan bagaimana pengaturan `SignificantDigits` memotong output. + +```csharp + // Place a high‑precision number in cell A1. + worksheet.Cells["A1"].PutValue(1234.56789); +``` + +Jika Anda menjalankan program sekarang dan cukup memanggil `workbook.Save("output.pdf")`, PDF akan menampilkan `1234.56789` secara lengkap. Itu oke untuk beberapa kasus, tetapi sering Anda perlu membulatkan ke jumlah digit signifikan tertentu—terutama untuk laporan keuangan. + +--- + +## Langkah 3 – Konfigurasikan Opsi Penyimpanan PDF + +Aspose.Cells memberi Anda kontrol detail melalui `PdfSaveOptions`. Properti yang kami perhatikan adalah `SignificantDigits`. Menyetelnya ke `4` memberi tahu engine untuk menyimpan hanya empat angka signifikan ketika ia **save workbook as pdf**. + +```csharp + // Configure PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 // This trims the number to 1235 in the PDF. + }; +``` + +*Mengapa menggunakan `SignificantDigits`?* +Saat Anda **create pdf from worksheet**, Anda sering harus mematuhi aturan pembulatan regulasi. Opsi ini melakukan pembulatan untuk Anda, sehingga Anda tidak perlu memformat setiap sel secara manual. + +--- + +## Langkah 4 – Ekspor Worksheet ke PDF dengan Opsi + +Inilah momen kebenaran: kami benar‑benar **save workbook as pdf** menggunakan opsi yang baru saja kami definisikan. + +```csharp + // Save the workbook as a PDF using the configured options. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + } +} +``` + +Menjalankan program akan menghasilkan file bernama `SignificantDigits.pdf` di folder output proyek Anda. Buka file tersebut dan Anda akan melihat `1235` di sel A1 – angka tersebut telah dibulatkan menjadi empat digit signifikan. + +*Poin penting:* Metode `Save` menerima baik jalur file maupun `PdfSaveOptions`. Jika Anda mengabaikan opsi, Anda akan kembali ke perilaku default, yang mungkin tidak memenuhi kebutuhan presisi Anda. + +--- + +## Langkah 5 – Verifikasi Output dan Atasi Masalah Umum + +### Hasil yang Diharapkan + +- PDF satu halaman bernama `SignificantDigits.pdf`. +- Sel A1 menampilkan `1235` (empat digit signifikan). +- Tidak ada worksheet tambahan atau konten tersembunyi yang muncul. + +### Pertanyaan yang Sering Diajukan + +| Question | Answer | +|----------|--------| +| **Bagaimana jika saya membutuhkan lebih dari satu worksheet?** | Lakukan iterasi pada `workbook.Worksheets` dan terapkan `PdfSaveOptions` yang sama saat Anda menyimpan setiap sheet secara terpisah, atau atur `OnePagePerSheet = true` dalam opsi. | +| **Apakah saya dapat mempertahankan format angka asli?** | Ya – atur `PdfSaveOptions.AllColumnsInOnePage = true` dan biarkan aturan pemformatan Excel yang mengelolanya, namun ingat bahwa `SignificantDigits` tetap akan menggantikan presisi numerik. | +| **Apakah ini bekerja dengan file .xlsx yang sudah ada?** | Tentu saja. Ganti `new Workbook()` dengan `new Workbook("input.xlsx")` dan sisanya tetap sama. | +| **Bagaimana jika PDF kosong?** | Pastikan workbook memang berisi data dan Anda menyimpan ke direktori yang dapat ditulisi. Juga, pastikan lisensi Aspose.Cells telah diterapkan dengan benar; versi percobaan tanpa lisensi dapat membatasi output. | + +### Tips Pro + +Jika Anda perlu **save excel as pdf** dengan orientasi halaman tertentu, atur `pdfSaveOptions.PageSetup.Orientation = PageOrientation.Landscape;` sebelum memanggil `Save`. Penyesuaian kecil ini sering menghindarkan Anda dari harus mengatur PDF secara manual nanti. + +--- + +## Variasi: Mengekspor Beberapa Sheet atau Pengaturan Halaman Kustom + +### Ekspor Semua Sheet dalam Satu Panggilan + +```csharp +PdfSaveOptions allSheetsOptions = new PdfSaveOptions +{ + SignificantDigits = 4, + OnePagePerSheet = true // Each worksheet gets its own page. +}; + +workbook.Save("AllSheets.pdf", allSheetsOptions); +``` + +### Ekspor Satu Sheet sebagai PDF + +Jika Anda hanya ingin **export worksheet to pdf** untuk sheet tertentu, gunakan metode `ToPdf` pada objek `Worksheet`: + +```csharp +Worksheet sheet = workbook.Worksheets["Sheet2"]; +sheet.ToPdf("Sheet2.pdf", pdfSaveOptions); +``` + +### Sesuaikan Margin Halaman + +```csharp +pdfSaveOptions.PageSetup.TopMargin = 20; +pdfSaveOptions.PageSetup.BottomMargin = 20; +``` + +Penyesuaian ini memungkinkan Anda menyetel dokumen akhir secara detail tanpa proses pasca‑pemrosesan. + +--- + +## Contoh Lengkap yang Berfungsi + +Berikut adalah program lengkap yang siap disalin‑tempel yang menggabungkan semua yang telah kami bahas. Simpan sebagai `Program.cs` dan jalankan `dotnet run`. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and select the first worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Insert a high‑precision number. + worksheet.Cells["A1"].PutValue(1234.56789); + + // 3️⃣ Set PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 + }; + + // 4️⃣ Save the workbook as PDF. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + + // Optional: Export another sheet with custom settings. + // Worksheet sheet2 = workbook.Worksheets.Add("Report"); + // sheet2.Cells["B2"].PutValue(9876.54321); + // sheet2.ToPdf("Report.pdf", pdfSaveOptions); + } +} +``` + +**Hasil:** Buka `SignificantDigits.pdf` – Anda akan melihat nilai yang dibulatkan `1235`. Ukuran filenya kecil, dan tata letaknya cocok dengan sheet Excel asli. + +--- + +## Kesimpulan + +Kami baru saja menunjukkan cara **save workbook as pdf** menggunakan Aspose.Cells, mencakup segala hal mulai dari pengaturan dasar hingga opsi lanjutan seperti **export worksheet to pdf**, **how to export excel to pdf**, dan **create pdf from worksheet** dengan kontrol numerik yang presisi. + +Pendekatannya sederhana, hanya memerlukan beberapa baris C#, dan bekerja di semua versi .NET. Selanjutnya, Anda dapat mengeksplorasi penambahan header/footer, menyisipkan gambar, atau menghasilkan PDF dari templat—semua itu dibangun di atas fondasi yang kini Anda miliki. + +Ada variasi yang ingin Anda coba? Mungkin Anda perlu melindungi PDF dengan kata sandi atau menggabungkan beberapa PDF menjadi satu. Itu adalah ekstensi alami, dan API Aspose.Cells siap membantu. Selami, bereksperimen, dan biarkan perpustakaan melakukan pekerjaan berat. + +*Selamat coding! Jika Anda mengalami kendala, tinggalkan komentar di bawah dan kami akan membantu memecahkan masalah bersama.* + +![tangkapan layar save workbook as pdf](/images/save-workbook-as-pdf.png){alt="contoh save workbook as pdf yang menunjukkan file PDF yang dihasilkan"} + +{{< /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/indonesian/net/converting-excel-files-to-other-formats/_index.md b/cells/indonesian/net/converting-excel-files-to-other-formats/_index.md index 353f7c2101..529a5cddf6 100644 --- a/cells/indonesian/net/converting-excel-files-to-other-formats/_index.md +++ b/cells/indonesian/net/converting-excel-files-to-other-formats/_index.md @@ -56,6 +56,8 @@ Pelajari cara mengonversi file Excel ke PDF/A-1a untuk keperluan pengarsipan men Pelajari cara mengonversi JSON ke CSV secara terprogram di .NET menggunakan Aspose.Cells. Ikuti panduan langkah demi langkah kami untuk memastikan transformasi data yang lancar. ### [Mengonversi File Excel ke PPTX Secara Terprogram di .NET](./converting-excel-file-to-pptx/) Pelajari cara mengonversi file Excel ke presentasi PowerPoint (PPTX) secara terprogram menggunakan Aspose.Cells for .NET dengan panduan langkah demi langkah ini. +### [Buat PowerPoint dari Excel – Panduan Langkah demi Langkah C#](./create-powerpoint-from-excel-step-by-step-c-guide/) +Pelajari cara membuat presentasi PowerPoint dari file Excel secara terprogram menggunakan Aspose.Cells for .NET dengan contoh kode C# langkah demi langkah. ### [Menentukan HTML CrossType dalam Output HTML Secara Terprogram di .NET](./specifying-html-crosstype-in-output-html/) Pelajari cara menentukan HTML CrossType di Aspose.Cells untuk .NET. Ikuti tutorial langkah demi langkah kami untuk mengonversi file Excel ke HTML dengan tepat. ### [Membaca Lembar Kerja Angka Secara Terprogram di .NET](./reading-numbers-spreadsheet/) diff --git a/cells/indonesian/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md b/cells/indonesian/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md new file mode 100644 index 0000000000..fe84978360 --- /dev/null +++ b/cells/indonesian/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md @@ -0,0 +1,254 @@ +--- +category: general +date: 2026-03-30 +description: Buat PowerPoint dari Excel dengan cepat menggunakan Aspose.Cells dan + Aspose.Slides. Pelajari cara mengekspor lembar kerja sebagai gambar dan menyimpan + presentasi sebagai PPTX dalam C#. +draft: false +keywords: +- create powerpoint from excel +- convert excel to powerpoint +- export worksheet as image +- save presentation as pptx +- export excel chart as picture +language: id +og_description: Buat PowerPoint dari Excel di C# dengan Aspose. Ekspor lembar kerja + sebagai gambar, pertahankan bentuk tetap dapat diedit, dan simpan hasilnya sebagai + PPTX. +og_title: Buat PowerPoint dari Excel – Tutorial C# Lengkap +tags: +- Aspose +- C# +- Office Automation +title: Buat PowerPoint dari Excel – Panduan C# Langkah demi Langkah +url: /id/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Buat PowerPoint dari Excel – Tutorial C# Lengkap + +Pernah membutuhkan untuk **create PowerPoint from Excel** tetapi tidak yakin perpustakaan mana yang dapat menjaga grafik Anda tetap dapat diedit? Anda tidak sendirian. Dalam banyak skenario pelaporan Anda ingin mengubah spreadsheet menjadi deck slide tanpa kehilangan kemampuan mengubah kotak teks nanti. Panduan ini menunjukkan secara tepat cara **convert Excel to PowerPoint** menggunakan Aspose.Cells dan Aspose.Slides, sekaligus membahas cara **export worksheet as image** dan akhirnya **save presentation as PPTX**. + +Kami akan menelusuri setiap baris kode, menjelaskan *mengapa* setiap pengaturan penting, dan bahkan membahas apa yang harus dilakukan jika workbook Anda berisi grafik kompleks yang lebih baik diekspor sebagai gambar. Pada akhir tutorial Anda akan memiliki aplikasi konsol C# siap‑jalan yang mengambil `ShapesDemo.xlsx` dan menghasilkan `Result.pptx` – semuanya dengan kotak teks yang dapat diedit dan gambar yang tajam. + +## Apa yang Anda Butuhkan + +- .NET 6.0 atau lebih baru (API juga bekerja dengan .NET Framework, tetapi .NET 6 adalah pilihan terbaik). +- Paket NuGet **Aspose.Cells** dan **Aspose.Slides** (lisensi percobaan gratis dapat digunakan untuk pengujian). +- Familiaritas dasar dengan sintaks C# – jika Anda dapat menulis `Console.WriteLine`, Anda siap melanjutkan. + +Tidak ada interop COM tambahan, tidak ada Office yang diinstal di server, dan tidak ada penyalinan‑tempel manual gambar. Semua ditangani secara programatis. + +--- + +## Buat PowerPoint dari Excel – Muat Workbook dan Atur Opsi Ekspor + +Hal pertama yang kami lakukan adalah membuka file Excel dan memberi tahu Aspose.Cells bagaimana kami ingin lembar tersebut dirender. Objek `ImageOrPrintOptions` adalah tempat keajaiban terjadi: kami mengaktifkan `ExportShapes` dan `ExportEditableTextBoxes` sehingga semua bentuk (termasuk grafik) menjadi bagian dari slide **dan** tetap dapat diedit setelah konversi. + +```csharp +using Aspose.Cells; +using Aspose.Slides; + +// 1️⃣ Load the Excel workbook +string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; +Workbook workbook = new Workbook(excelPath); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first sheet + +// 2️⃣ Configure image export – keep shapes editable +ImageOrPrintOptions imageOptions = new ImageOrPrintOptions +{ + OnePagePerSheet = true, // Export the whole sheet as one slide + ExportShapes = true, // Include shapes (charts, drawings) + ExportEditableTextBoxes = true // Make text boxes editable in PPTX +}; +``` + +**Mengapa flag ini?** +- `OnePagePerSheet` mencegah lembar dibagi menjadi beberapa slide – Anda mendapatkan satu gambar berukuran penuh. +- `ExportShapes` memberi tahu Aspose.Cells untuk meraster grafik *dan* bentuk vektor, mempertahankan tampilannya. +- `ExportEditableTextBoxes` adalah rahasia yang memungkinkan Anda mengklik ganda sebuah textbox di PowerPoint dan mengedit teks tanpa membuka Excel lagi. + +> **Tip pro:** Jika Anda hanya membutuhkan gambar statis dari sebuah grafik, set `ExportShapes = false` dan gunakan metode `ExportExcelChartAsPicture` nanti (lihat bagian akhir). + +--- + +## Konversi Excel ke PowerPoint – Hasilkan Gambar dari Worksheet + +Dengan opsi siap, kami kini mengubah worksheet menjadi `System.Drawing.Image`. `WorksheetToImageConverter` melakukan pekerjaan berat, menerapkan pengaturan yang baru saja kami definisikan. + +```csharp +// 3️⃣ Convert the worksheet to an image using the options above +WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); +System.Drawing.Image sheetImage = converter.ConvertToImage(0, imageOptions); +``` + +Argumen `0` menunjukkan halaman pertama (kami hanya memiliki satu karena `OnePagePerSheet`). `sheetImage` yang dihasilkan mempertahankan DPI asli, sehingga slide Anda tidak akan terlihat pixelated bahkan pada tampilan resolusi tinggi. + +--- + +## Simpan Presentasi sebagai PPTX – Sisipkan Gambar ke Slide + +Sekarang kami membuat file PowerPoint baru, menambahkan slide, dan menempatkan bitmap di atasnya. Aspose.Slides memperlakukan gambar sebagai bentuk *picture frame*, yang kemudian dapat Anda ubah ukuran atau pindahkan seperti objek PowerPoint asli. + +```csharp +// 4️⃣ Create a new PowerPoint presentation +Presentation presentation = new Presentation(); +ISlide slide = presentation.Slides[0]; // The default blank slide + +// Add the Excel‑derived image as a picture frame +slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, // Simple rectangle container + 0, 0, // Top‑left corner (0,0) + sheetImage.Width, // Width of the picture + sheetImage.Height, // Height of the picture + sheetImage); // The bitmap we generated +``` + +> **Bagaimana jika gambar lebih besar dari ukuran slide?** +> PowerPoint secara otomatis akan memotong apa pun yang melebihi dimensi slide. Solusi cepat adalah menskalakan gambar sebelum menyisipkannya: + +```csharp +float scale = Math.Min(presentation.SlideSize.Size.Width / (float)sheetImage.Width, + presentation.SlideSize.Size.Height / (float)sheetImage.Height); +int newWidth = (int)(sheetImage.Width * scale); +int newHeight = (int)(sheetImage.Height * scale); +``` + +Anda kemudian dapat memberikan `newWidth` dan `newHeight` ke `AddPictureFrame`. + +--- + +## Ekspor Worksheet sebagai Gambar – Simpan File PPTX + +Akhirnya kami menyimpan presentasi ke disk. Flag `SaveFormat.Pptx` menjamin format OpenXML modern, yang bekerja di semua versi PowerPoint terbaru. + +```csharp +// 5️⃣ Save the presentation as a PPTX file +string pptxPath = "YOUR_DIRECTORY/Result.pptx"; +presentation.Save(pptxPath, SaveFormat.Pptx); +``` + +Saat Anda membuka `Result.pptx` Anda akan melihat satu slide yang persis seperti lembar Excel Anda, tetapi Anda masih dapat mengklik kotak teks mana pun dan mengedit isinya langsung di PowerPoint. + +--- + +## Ekspor Grafik Excel sebagai Gambar – Ketika Gambar Raster Lebih Diutamakan + +Terkadang Anda tidak memerlukan bentuk yang dapat diedit; PNG berkualitas tinggi dari sebuah grafik sudah cukup. Aspose.Cells dapat mengekspor grafik tertentu ke gambar tanpa mengonversi seluruh lembar: + +```csharp +// Example: Export the first chart on the sheet as a PNG +int chartIndex = 0; // Adjust if you have multiple charts +Chart chart = worksheet.Charts[chartIndex]; +ImageOrPrintOptions chartOptions = new ImageOrPrintOptions +{ + ImageFormat = ImageFormat.Png, + OnePagePerSheet = false +}; +chart.ToImage("chart.png", chartOptions); +``` + +Anda kemudian dapat menyematkan `chart.png` ke slide dengan cara yang sama seperti kami menambahkan `sheetImage`. Pendekatan ini mengurangi ukuran file PPTX dan berguna ketika data di sekitarnya tidak diperlukan pada slide. + +--- + +## Kesalahan Umum & Cara Menghindarinya + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **Teks terlihat buram** | Diekspor dengan DPI rendah (default 96). | Set `imageOptions.Dpi = 300;` sebelum konversi. | +| **Bentuk menghilang** | `ExportShapes` dibiarkan `false`. | Pastikan `ExportShapes = true` ketika Anda memerlukan grafik yang dapat diedit. | +| **Ukuran slide tidak cocok** | Gambar lebih besar dari dimensi slide. | Skala gambar (lihat potongan kode) atau ubah ukuran slide via `presentation.SlideSize`. | +| **Pengecualian lisensi** | Menggunakan versi percobaan tanpa aktivasi yang tepat. | Panggil `License license = new License(); license.SetLicense("Aspose.Total.lic");` di awal `Main`. | + +--- + +## Contoh Lengkap yang Berfungsi (Siap Salin‑Tempel) + +Berikut adalah seluruh program, siap ditempatkan ke dalam proyek konsol baru. Ganti `YOUR_DIRECTORY` dengan folder yang berisi file Excel Anda. + +```csharp +using System; +using Aspose.Cells; +using Aspose.Slides; +using System.Drawing; + +namespace ExcelToPowerPointDemo +{ + class Program + { + static void Main(string[] args) + { + // ----------------------------------------------------------------- + // 1️⃣ Load the Excel workbook + // ----------------------------------------------------------------- + string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; + Workbook workbook = new Workbook(excelPath); + Worksheet worksheet = workbook.Worksheets[0]; + + // ----------------------------------------------------------------- + // 2️⃣ Set up export options – keep shapes editable + // ----------------------------------------------------------------- + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + OnePagePerSheet = true, + ExportShapes = true, + ExportEditableTextBoxes = true, + Dpi = 300 // High‑resolution output + }; + + // ----------------------------------------------------------------- + // 3️⃣ Convert worksheet to an image + // ----------------------------------------------------------------- + WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); + Image sheetImage = converter.ConvertToImage(0, imageOptions); + + // ----------------------------------------------------------------- + // 4️⃣ Create PowerPoint and add the image as a slide + // ----------------------------------------------------------------- + Presentation presentation = new Presentation(); + ISlide slide = presentation.Slides[0]; + slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, + 0, 0, + sheetImage.Width, + sheetImage.Height, + sheetImage); + + // ----------------------------------------------------------------- + // 5️⃣ Save the PPTX file + // ----------------------------------------------------------------- + string pptxPath = "YOUR_DIRECTORY/Result.pptx"; + presentation.Save(pptxPath, SaveFormat.Pptx); + + Console.WriteLine("✅ PowerPoint created successfully at: " + pptxPath); + } + } +} +``` + +**Output yang diharapkan:** +Menjalankan program mencetak `✅ PowerPoint created successfully at: YOUR_DIRECTORY/Result.pptx`. Membuka PPTX menampilkan satu slide yang mencerminkan lembar Excel asli, dengan kotak teks yang dapat diedit. + +--- + +## Ringkasan & Langkah Selanjutnya + +Anda sekarang tahu cara **create PowerPoint from Excel** menggunakan API kuat Aspose, cara **export worksheet as image**, dan cara **save presentation as PPTX** sambil mempertahankan kemampuan mengedit. Pola yang sama berlaku untuk workbook multi‑sheet—cukup loop melalui `workbook.Worksheets` dan tambahkan slide baru untuk masing‑masing. + +**Apa yang dapat dijelajahi selanjutnya?** + +- **Konversi batch:** Loop melalui folder berisi file Excel dan hasilkan deck slide per file. +- **Tata letak dinamis:** Gunakan `slide.LayoutSlide` untuk menerapkan templat PowerPoint yang telah dirancang sebelumnya. +- **Ekspor hanya grafik:** Gabungkan potongan kode “Export Excel chart as picture” dengan placeholder slide untuk deck yang lebih ringan. +- **Styling lanjutan:** Terapkan latar belakang slide khusus, transisi, atau animasi melalui Aspose.Slides. + +Silakan bereksperimen—ubah DPI, ganti `ShapeType.Ellipse` dengan picture frame melingkar, atau bahkan sematkan beberapa gambar per slide. Langit adalah batasnya ketika Anda memiliki kontrol programatik atas + +{{< /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/indonesian/net/document-properties/_index.md b/cells/indonesian/net/document-properties/_index.md index a61e91e5ad..9c4bc52e8f 100644 --- a/cells/indonesian/net/document-properties/_index.md +++ b/cells/indonesian/net/document-properties/_index.md @@ -35,6 +35,8 @@ Pelajari cara mengakses properti dokumen di Excel menggunakan Aspose.Cells for . Pelajari cara mengakses properti dokumen di Excel menggunakan Aspose.Cells for .NET dengan panduan langkah demi langkah kami. Kelola lembar kerja Anda secara efisien. ### [Menambahkan Properti Dokumen di .NET](./adding-document-properties/) Pelajari cara menambahkan properti dokumen di Excel menggunakan Aspose.Cells untuk .NET dengan panduan langkah demi langkah terperinci ini. +### [Cara Menyimpan XLSB dengan Properti Kustom di C# – Panduan Langkah‑demi‑Langkah](./how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/) +Pelajari cara menyimpan file XLSB dengan properti khusus menggunakan Aspose.Cells for .NET dalam panduan langkah demi langkah. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/indonesian/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md b/cells/indonesian/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md new file mode 100644 index 0000000000..61d670995e --- /dev/null +++ b/cells/indonesian/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md @@ -0,0 +1,233 @@ +--- +category: general +date: 2026-03-30 +description: Pelajari cara menyimpan XLSB di C# sambil menambahkan properti khusus, + membacanya kembali, dan menguasai penyimpanan workbook sebagai XLSB menggunakan + Aspose.Cells. Kode lengkap disertakan. +draft: false +keywords: +- how to save xlsb +- add custom property +- how to add property +- how to read property +- save workbook as xlsb +language: id +og_description: Bagaimana cara menyimpan XLSB di C#? Tutorial ini menunjukkan cara + menambahkan properti khusus, membacanya kembali, dan menyimpan buku kerja sebagai + XLSB dengan Aspose.Cells. +og_title: Cara Menyimpan XLSB dengan Properti Kustom di C# – Panduan Lengkap +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Cara Menyimpan XLSB dengan Properti Kustom di C# – Panduan Langkah demi Langkah +url: /id/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cara Menyimpan XLSB dengan Properti Kustom di C# – Panduan Langkah‑ demi‑ Langkah + +Pernah bertanya-tanya **bagaimana cara menyimpan XLSB** sambil mempertahankan metadata tambahan yang terlampir pada lembar kerja? Anda tidak sendirian. Dalam banyak skenario perusahaan Anda memerlukan file Excel biner yang tetap membawa pasangan kunci/nilai Anda sendiri—misalnya ID kontrak, flag pemrosesan, atau tag versi. + +Kabar baiknya, Aspose.Cells membuat ini sangat mudah. Dalam panduan ini Anda akan melihat secara tepat cara menambahkan properti kustom, menyimpannya, dan kemudian membacanya kembali, semuanya sambil **menyimpan workbook sebagai XLSB**. Tidak ada referensi yang samar, hanya contoh lengkap yang dapat dijalankan yang dapat Anda masukkan ke dalam proyek Anda hari ini. + +## Apa yang Akan Anda Dapatkan + +- File `.xlsb` baru yang dibuat dari awal. +- Kemampuan untuk **menambahkan properti kustom** ke sebuah lembar kerja. +- Kode yang menunjukkan **cara membaca properti** setelah file dimuat ulang. +- Tips tentang jebakan yang mungkin Anda temui saat **menyimpan workbook sebagai XLSB**. + +> **Prasyarat:** .NET 6+ (atau .NET Framework 4.6+), Visual Studio (atau IDE C# apa saja), dan pustaka Aspose.Cells untuk .NET yang diinstal melalui NuGet. Tidak ada yang lain. + +--- + +## Langkah 1: Siapkan Proyek dan Buat Workbook Baru + +Hal pertama yang harus dilakukan—mari kita dapatkan objek workbook yang bersih. + +```csharp +using Aspose.Cells; +using System; + +// Initialize a new workbook; this will be an in‑memory Excel file. +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0) – it’s created automatically. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Mengapa ini penting:* `Workbook` adalah titik masuk untuk setiap operasi di Aspose.Cells. Dengan memulai dari instance yang benar‑baru Anda menghindari keadaan tersembunyi yang dapat merusak metadata kustom Anda nanti. + +--- + +## Langkah 2: **Tambahkan Properti Kustom** ke Lembar Kerja + +Sekarang kita akan melampirkan pasangan kunci/nilai yang hanya ada di lembar ini. + +```csharp +// Add a user‑defined property called "MyProperty" with the value "CustomValue". +worksheet.CustomProperties.Add("MyProperty", "CustomValue"); +``` + +> **Tips pro:** Nama properti bersifat case‑sensitive. Jika Anda nanti mencoba mengambil `"myproperty"` Anda akan mendapatkan `KeyNotFoundException`. Gunakan konvensi penamaan—camelCase atau PascalCase—sejak awal. + +--- + +## Langkah 3: **Simpan Workbook sebagai XLSB** – Menyimpan Properti + +Keajaiban terjadi ketika Anda menulis workbook ke format XLSB biner. + +```csharp +// Define the output path. Adjust the folder to something writable on your machine. +string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + +// Save the workbook; the custom property travels with the file. +workbook.Save(outputPath, SaveFormat.Xlsb); +``` + +*Apa yang sebenarnya Anda lakukan:* Enum `SaveFormat.Xlsb` memberi tahu Aspose.Cells untuk menghasilkan file Excel biner (lebih cepat dibuka, lebih kecil di disk). Semua properti kustom tingkat lembar kerja diserialisasi secara otomatis—tidak ada langkah tambahan yang diperlukan. + +--- + +## Langkah 4: Muat Ulang File dan **Cara Membaca Properti** + +Mari buktikan properti tersebut bertahan setelah perjalanan bolak‑balik. + +```csharp +// Load the just‑saved XLSB file back into memory. +Workbook reloadedWorkbook = new Workbook(outputPath); + +// Access the same worksheet (index 0) and fetch the property value. +string customValue = reloadedWorkbook.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); +``` + +Jika semuanya berjalan lancar, `customValue` kini berisi `"CustomValue"`. + +--- + +## Langkah 5: Verifikasi Hasil – Output Konsol Cepat + +Pemeriksaan sederhana yang kecil membantu selama pengembangan. + +```csharp +Console.WriteLine($"Custom property value: {customValue}"); +``` + +Menjalankan program harus mencetak: + +``` +Custom property value: CustomValue +``` + +Melihat baris itu berarti Anda telah berhasil menguasai **cara menyimpan XLSB**, **menambahkan properti kustom**, dan **cara membaca properti**—semua dalam satu alur yang rapi. + +--- + +## Contoh Kerja Penuh (Siap Salin‑Tempel) + +Berikut adalah seluruh program. Tempelkan ke dalam Console App baru, tekan **F5**, dan lihat konsol mengonfirmasi nilai properti. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // 1️⃣ Create a new workbook and get its first sheet + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // 2️⃣ Add a custom property (key/value) to the sheet + // ------------------------------------------------- + worksheet.CustomProperties.Add("MyProperty", "CustomValue"); + + // ------------------------------------------------- + // 3️⃣ Save the workbook as XLSB – the property is kept + // ------------------------------------------------- + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(outputPath, SaveFormat.Xlsb); + + // ------------------------------------------------- + // 4️⃣ Reload the saved file to demonstrate persistence + // ------------------------------------------------- + Workbook reloaded = new Workbook(outputPath); + + // ------------------------------------------------- + // 5️⃣ Retrieve the custom property's value + // ------------------------------------------------- + string customValue = reloaded.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); + + // ------------------------------------------------- + // 6️⃣ Display the retrieved value (optional) + // ------------------------------------------------- + Console.WriteLine($"Custom property value: {customValue}"); + } +} +``` + +> **Ingat:** Ubah `outputPath` ke folder yang Anda miliki hak menulisnya. Jika Anda berada di Linux/macOS, gunakan path seperti `"/tmp/WithCustomProp.xlsb"`. + +--- + +## Pertanyaan Umum & Kasus Tepi + +### Bagaimana jika properti sudah ada? +Memanggil `Add` dengan kunci yang sudah ada akan melempar `ArgumentException`. Gunakan `ContainsKey` atau bungkus panggilan dalam `try/catch` jika Anda tidak yakin. + +```csharp +if (!worksheet.CustomProperties.ContainsKey("MyProperty")) +{ + worksheet.CustomProperties.Add("MyProperty", "AnotherValue"); +} +``` + +### Bisakah saya menyimpan nilai non‑string? +Tentu saja. Properti `Value` menerima segala `object`. Untuk angka, tanggal, atau boolean cukup berikan tipe yang sesuai—Aspose.Cells akan menangani konversi saat Anda membacanya kembali. + +### Apakah properti tetap ada saat saya mengonversi ke XLSX? +Ya. Properti kustom merupakan bagian dari representasi XML lembar kerja, sehingga mereka tetap ada di format XLSX, XLS, dan XLSB. + +### Cara **menambahkan properti** ke beberapa lembar? +Lakukan loop melalui koleksi `Worksheets` dan terapkan panggilan `CustomProperties.Add` yang sama ke setiap lembar yang Anda perlukan. + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + ws.CustomProperties.Add("ExportedBy", "MyApp"); +} +``` + +### Tips performa saat **menyimpan workbook sebagai XLSB** secara massal +Jika Anda menghasilkan ratusan file, gunakan kembali instance `Workbook` yang sama dan panggil `Clear` setelah setiap penyimpanan untuk membebaskan memori. Juga, setel `Workbook.Settings.CalculateFormulaOnOpen = false` jika Anda tidak memerlukan formula dievaluasi saat dibuka. + +--- + +## Kesimpulan + +Anda sekarang tahu **cara menyimpan XLSB** di C# sambil menyematkan dan kemudian mengambil kembali properti kustom menggunakan Aspose.Cells. Solusi lengkap—membuat workbook, menambahkan properti, menyimpannya dengan **menyimpan workbook sebagai XLSB**, memuat ulang, dan membaca nilai—hanya memerlukan kurang dari 50 baris kode. + +Dari sini Anda mungkin ingin mengeksplor: + +- Menambahkan beberapa properti kustom per lembar. +- Menyimpan objek kompleks melalui string JSON. +- Mengenkripsi file XLSB untuk keamanan tambahan. + +Cobalah ide‑ide tersebut, dan Anda akan segera menjadi orang yang diandalkan untuk otomasi Excel di tim Anda. Ada pertanyaan atau skenario rumit? Tinggalkan komentar di bawah, dan selamat coding! + +![Cara menyimpan XLSB dengan properti kustom](/images/how-to-save-xlsb.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/indonesian/net/excel-copy-worksheet/_index.md b/cells/indonesian/net/excel-copy-worksheet/_index.md index fc1ba32054..fdfa935ca4 100644 --- a/cells/indonesian/net/excel-copy-worksheet/_index.md +++ b/cells/indonesian/net/excel-copy-worksheet/_index.md @@ -42,6 +42,7 @@ Aspose.Cells untuk .NET menawarkan fungsionalitas yang hebat untuk memanipulasi | [Lembar Kerja Salinan Excel](./excel-copy-worksheet/) | Pelajari cara menyalin lembar kerja Excel menggunakan Aspose.Cells untuk .NET dengan panduan langkah demi langkah yang mudah diikuti ini. Ideal untuk pengembang .NET yang ingin mengotomatiskan tugas Excel. | | [Salin Lembar Kerja Excel Antar Buku Kerja](./excel-copy-worksheets-between-workbooks/) | Pelajari cara menyalin lembar kerja antar buku kerja Excel menggunakan Aspose.Cells untuk .NET. Panduan langkah demi langkah dengan contoh kode untuk menyederhanakan pengelolaan lembar kerja Anda. | | [Lembar Kerja Pemindahan Excel](./excel-move-worksheet/) | Pelajari cara memindahkan lembar kerja di Excel menggunakan Aspose.Cells for .NET dalam panduan langkah demi langkah kami. Kuasai seni pemrograman Excel. | +| [Cara Menyalin Lembar Kerja di C# dengan Aspose.Cells – Panduan Lengkap](./how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/) | Panduan lengkap untuk menyalin lembar kerja di C# menggunakan Aspose.Cells, mencakup contoh kode dan langkah-langkah detail. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/indonesian/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md b/cells/indonesian/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md new file mode 100644 index 0000000000..3e6dd9154a --- /dev/null +++ b/cells/indonesian/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md @@ -0,0 +1,268 @@ +--- +category: general +date: 2026-03-30 +description: Bagaimana menyalin lembar kerja di C# menggunakan Aspose.Cells – panduan + langkah demi langkah yang mencakup menyalin rentang sel, menyalin kolom antar lembar, + menyalin tabel pivot lembar kerja, dan menambahkan kode lembar kerja baru. +draft: false +keywords: +- how to copy worksheet +- copy cell range +- copy columns between sheets +- copy worksheet pivot table +- add new worksheet code +language: id +og_description: Pelajari cara menyalin lembar kerja di C# dengan Aspose.Cells. Panduan + ini menunjukkan cara menyalin rentang sel, mempertahankan tabel pivot, menyalin + kolom antar lembar, dan menambahkan kode lembar kerja baru. +og_title: Cara Menyalin Lembar Kerja di C# – Tutorial Lengkap Aspose.Cells +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Cara Menyalin Worksheet di C# dengan Aspose.Cells – Panduan Lengkap +url: /id/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cara Menyalin Worksheet di C# dengan Aspose.Cells – Panduan Lengkap + +Pernah bertanya-tanya **how to copy worksheet** di C# tanpa kehilangan satu pun pivot table atau formula? Anda tidak sendirian—banyak pengembang mengalami kebuntuan ketika harus menduplikasi sebuah sheet sambil menjaga semua elemen tetap utuh. Dalam tutorial ini kami akan membahas solusi praktis, end‑to‑end yang tidak hanya menyalin data tetapi juga mempertahankan **copy worksheet pivot table**, menangani **copy cell range**, dan menunjukkan **add new worksheet code** yang Anda perlukan. + +Kami akan membahas semuanya mulai dari memuat workbook sumber hingga menyimpan file tujuan, sehingga Anda dapat copy columns between sheets, preserve objects, dan menjaga kode tetap bersih. Tanpa referensi yang samar, hanya contoh lengkap yang dapat dijalankan yang dapat Anda masukkan ke dalam proyek Anda hari ini. + +## Apa yang Dibahas dalam Tutorial Ini + +- Memuat file Excel yang ada dengan Aspose.Cells +- Menggunakan **add new worksheet code** untuk membuat sheet target +- Mendefinisikan **copy cell range** yang mencakup pivot table +- Menyiapkan **CopyOptions** untuk menjaga chart, formula, dan pivot table tetap utuh +- Menjalankan **copy columns between sheets** dengan presisi per baris +- Menyimpan hasil dan memverifikasi bahwa worksheet telah disalin dengan benar + +Di akhir panduan ini Anda akan dapat menjawab pertanyaan “how to copy worksheet” dengan percaya diri, baik Anda mengotomatisasi laporan maupun membangun UI berbasis spreadsheet. + +## Cara Menyalin Worksheet – Ikhtisar + +Sebelum kita masuk ke kode, mari kita rangkum alur tingkat tinggi. Anggap saja seperti resep: + +1. **Load** workbook sumber (`Source.xlsx`). +2. **Add** worksheet baru untuk menampung salinan (`add new worksheet code`). +3. **Define** area yang ingin Anda duplikasikan (`copy cell range`). +4. **Configure** opsi penyalinan agar pivot table tetap ada (`copy worksheet pivot table`). +5. **Copy** baris dan kolom (`copy columns between sheets`). +6. **Save** workbook baru (`Destination.xlsx`). + +Itu saja—enam langkah, tanpa sulap. Setiap langkah dijelaskan di bawah dengan potongan kode dan alasan di baliknya. + +## Langkah 1 – Memuat Workbook Sumber + +Hal pertama yang perlu dilakukan: Anda memerlukan instance `Workbook` yang menunjuk ke file yang ingin Anda duplikasikan. Langkah ini penting karena Aspose.Cells bekerja langsung dengan sistem file, bukan dengan UI Office. + +```csharp +using Aspose.Cells; + +// Path to the original file +string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; +string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + +// Load the workbook – this is the starting point for how to copy worksheet +Workbook workbook = new Workbook(sourcePath); +``` + +*Why this matters:* Memuat file membuat representasi dalam memori dari setiap sheet, sel, dan objek. Tanpa ini, tidak ada yang dapat disalin, dan setiap upaya `add new worksheet code` nanti akan gagal karena data sumber tidak ada. + +## Langkah 2 – Menambahkan Worksheet Baru (add new worksheet code) + +Sekarang kita membutuhkan tempat untuk menempelkan data yang disalin. Di sinilah **add new worksheet code** berperan. Anda dapat memberi nama sheet sesuka hati; di sini kami menamakannya `"Copy"`. + +```csharp +// Grab the first worksheet (the one we want to copy) +Worksheet sourceSheet = workbook.Worksheets[0]; + +// Add a fresh worksheet to receive the copy +Worksheet copySheet = workbook.Worksheets.Add("Copy"); +``` + +*Pro tip:* Jika Anda berencana menyalin beberapa sheet, panggil `Worksheets.Add` di dalam loop dan beri setiap sheet nama unik. Dengan begitu Anda menghindari bentrok nama dan menjaga workbook tetap rapi. + +## Langkah 3 – Mendefinisikan Copy Cell Range + +Sebuah **copy cell range** memberi tahu Aspose.Cells secara tepat baris dan kolom mana yang akan diduplikasi. Dalam banyak skenario dunia nyata, rentang tersebut mencakup pivot table, jadi kita harus tepat. + +```csharp +// Define the area that contains the pivot table (A1:G20) +CellArea sourceRange = new CellArea +{ + StartRow = 0, // Row 1 (zero‑based) + StartColumn = 0, // Column A + EndRow = 19, // Row 20 + EndColumn = 6 // Column G +}; + +// Destination range – we start at the same top‑left corner +CellArea destinationRange = new CellArea +{ + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 +}; +``` + +*Why we need this:* Dengan secara eksplisit menyatakan rentang, Anda menghindari menyalin seluruh sheet (yang dapat membuang-buang) dan memastikan pivot table berada di dalam area yang disalin. Ini adalah inti dari **how to copy worksheet** ketika Anda hanya membutuhkan sebagian sheet. + +## Langkah 4 – Mengatur Copy Options (preserve copy worksheet pivot table) + +Aspose.Cells menyediakan objek `CopyOptions` yang mengontrol apa yang ditempelkan. Untuk mempertahankan pivot table, chart, dan formula, kami mengatur `PasteType.All` dan mengaktifkan `PasteSpecial`. + +```csharp +CopyOptions copyOptions = new CopyOptions +{ + PasteType = PasteType.All, // Copy everything: values, formats, objects + PasteSpecial = true // Enable special paste to retain pivot tables +}; +``` + +*Explanation:* `PasteType.All` adalah opsi paling inklusif, sementara `PasteSpecial` memberi tahu engine untuk memperlakukan objek kompleks—seperti pivot tables—dengan tepat. Melewatkan langkah ini adalah jebakan umum; sheet yang disalin akan kehilangan fitur interaktifnya. + +## Langkah 5 – Menyalin Baris dan Kolom (copy columns between sheets) + +Sekarang saatnya kerja berat: memindahkan data sebenarnya. Kami akan menggunakan `CopyRows` dan `CopyColumns` untuk menangani **copy columns between sheets**. Melakukan keduanya memastikan sel yang digabung dan lebar kolom tetap terjaga. + +```csharp +// Copy rows from the source to the destination sheet +sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + +// Copy columns from the source to the destination sheet +sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); +``` + +*What’s happening:* `CopyRows` memindahkan data baris per baris, sementara `CopyColumns` melakukan hal yang sama kolom per kolom. Menjalankan keduanya menjamin seluruh blok persegi panjang diduplikasi, yang penting ketika Anda perlu **copy columns between sheets** yang memiliki lebar kolom berbeda atau kolom tersembunyi. + +## Langkah 6 – Menyimpan Workbook + +Akhirnya, tulis perubahan kembali ke disk. Langkah ini menyelesaikan proses **how to copy worksheet**. + +```csharp +// Save the workbook with the newly copied sheet +workbook.Save(destinationPath); +``` + +*Verification tip:* Buka `Destination.xlsx` dan periksa bahwa sheet `"Copy"` tampak identik dengan yang asli, pivot table berfungsi, dan lebar kolom cocok. Jika ada yang tidak beres, tinjau kembali pengaturan `CopyOptions`. + +## Kasus Pojok & Variasi Umum + +### Menyalin Beberapa Worksheet + +Jika Anda perlu menduplikasi beberapa sheet, bungkus logika di atas dalam loop `foreach`: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + Worksheet newWs = workbook.Worksheets.Add(ws.Name + "_Copy"); + // Re‑use sourceRange/destinationRange or calculate per sheet + // Then call CopyRows/CopyColumns as shown earlier +} +``` + +### Mempertahankan Formula di Berbagai Workbook + +Ketika workbook sumber dan tujuan memiliki named range yang berbeda, atur `copyOptions` ke `PasteType.Formulas` selain `All`: + +```csharp +copyOptions.PasteType = PasteType.All | PasteType.Formulas; +``` + +### Rentang Besar dan Kinerja + +Untuk dataset besar (ratusan ribu baris), pertimbangkan menggunakan hanya `CopyRows` dan melewatkan `CopyColumns` jika lebar kolom tidak kritis. Ini dapat menghemat beberapa detik. + +## Contoh Lengkap yang Berjalan + +Berikut adalah program lengkap yang siap dijalankan yang mencakup semua yang telah kami bahas. Tempelkan ke aplikasi console, sesuaikan jalur file, dan tekan **F5**. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // ---------- Step 1: Load the source workbook ---------- + string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; + string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + Workbook workbook = new Workbook(sourcePath); + + // ---------- Step 2: Add a new worksheet (add new worksheet code) ---------- + Worksheet sourceSheet = workbook.Worksheets[0]; + Worksheet copySheet = workbook.Worksheets.Add("Copy"); + + // ---------- Step 3: Define the copy cell range ---------- + CellArea sourceRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + CellArea destinationRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + + // ---------- Step 4: Set copy options (preserve copy worksheet pivot table) ---------- + CopyOptions copyOptions = new CopyOptions + { + PasteType = PasteType.All, + PasteSpecial = true + }; + + // ---------- Step 5: Copy rows and columns (copy columns between sheets) ---------- + sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + + sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); + + // ---------- Step 6: Save the workbook ---------- + workbook.Save(destinationPath); + } +} +``` + +**Expected result:** Membuka `Destination.xlsx` menampilkan sheet bernama **Copy** yang mencerminkan sheet pertama dari `Source.xlsx`—termasuk semua pivot table, format, dan lebar kolom. File asli tetap tidak tersentuh. + +## Pertanyaan yang Sering Diajukan + +**Q: Apakah ini bekerja dengan file .xlsx yang dibuat oleh Excel 2019?** +A: Tentu saja. Aspose.Cells mendukung semua format Excel modern, jadi kode yang sama bekerja untuk file `.xlsx`, `.xlsm`, dan bahkan file `.xls` yang lebih lama + +{{< /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/indonesian/net/excel-custom-number-date-formatting/_index.md b/cells/indonesian/net/excel-custom-number-date-formatting/_index.md index ebc49f37d9..cb074a3896 100644 --- a/cells/indonesian/net/excel-custom-number-date-formatting/_index.md +++ b/cells/indonesian/net/excel-custom-number-date-formatting/_index.md @@ -36,6 +36,10 @@ Tutorial ini akan membekali Anda dengan keterampilan untuk mengimpor kumpulan da Pelajari cara memeriksa nilai sel Excel terhadap format angka kustom menggunakan Aspose.Cells untuk .NET dengan tutorial langkah demi langkah ini. ### [Tentukan Bidang Rumus Saat Mengimpor Data ke Lembar Excel](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) Pelajari cara mengimpor data ke dalam lembar Excel dengan bidang rumus tertentu menggunakan Aspose.Cells untuk .NET dalam tutorial terperinci ini. +### [Format Angka dengan Pemisah di C# – Panduan Lengkap Aspose.Cells](./format-number-with-separator-in-c-complete-aspose-cells-guid/) +Pelajari cara memformat angka dengan pemisah ribuan di C# menggunakan Aspose.Cells dalam panduan lengkap ini. +### [Format Tanggal ISO dari Excel – Panduan Lengkap C#](./format-date-iso-from-excel-complete-c-guide/) +Pelajari cara mengonversi tanggal Excel ke format ISO menggunakan Aspose.Cells untuk .NET dalam panduan lengkap C# ini. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/indonesian/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md b/cells/indonesian/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..3a987d3b8f --- /dev/null +++ b/cells/indonesian/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md @@ -0,0 +1,218 @@ +--- +category: general +date: 2026-03-30 +description: Pelajari cara memformat tanggal ISO saat Anda membaca nilai tanggal‑waktu + Excel dan mengekstrak data tanggal‑waktu Excel menggunakan Aspose.Cells di C#. +draft: false +keywords: +- format date iso +- read excel datetime +- extract datetime excel +- Aspose.Cells date parsing +- Japanese era dates +language: id +og_description: Format tanggal ISO dari data Excel menggunakan Aspose.Cells. Panduan + ini menunjukkan cara membaca datetime Excel, mengekstrak nilai datetime Excel, dan + menghasilkan tanggal ISO. +og_title: Format Tanggal ISO dari Excel – Tutorial C# Langkah-demi-Langkah +tags: +- C# +- Excel +- DateTime +- Aspose.Cells +title: Format Tanggal ISO dari Excel – Panduan C# Lengkap +url: /id/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# format date iso dari Excel – Panduan Lengkap C# + +Pernahkah Anda perlu **format date iso** saat mengambil tanggal dari lembar Excel? Mungkin Anda sedang menangani tanggal era Jepang, atau Anda hanya menginginkan string `yyyy‑MM‑dd` yang bersih untuk payload API. Dalam tutorial ini Anda akan melihat secara tepat cara **read Excel datetime** sel, **extract datetime Excel** nilai, dan mengubahnya menjadi format ISO‑8601—tanpa tebakan. + +Kami akan menelusuri contoh dunia nyata yang menggunakan Aspose.Cells, menjelaskan mengapa setiap baris penting, dan menunjukkan output akhir yang dapat Anda salin‑tempel ke proyek Anda. Pada akhir tutorial, Anda akan dapat menangani string era aneh seperti “令和3年5月1日” dan menghasilkan tanggal ISO standar, siap untuk basis data, JSON, atau ke mana pun Anda membutuhkannya. + +## Prasyarat + +- .NET 6.0 atau lebih baru (kode ini juga bekerja dengan .NET Framework) +- Aspose.Cells untuk .NET (versi percobaan gratis atau berlisensi) +- Familiaritas dasar dengan C# dan konsep Excel +- Visual Studio atau editor C# apa pun yang Anda suka + +Tidak ada paket NuGet tambahan yang diperlukan selain Aspose.Cells, jadi penyiapannya cukup sederhana. + +--- + +## Langkah 1: Buat Workbook dan Targetkan Worksheet Pertama + +Hal pertama yang Anda lakukan adalah membuat objek `Workbook` baru. Ini memberi Anda representasi dalam memori dari file Excel, yang kemudian dapat Anda manipulasi atau baca. + +```csharp +using Aspose.Cells; +using System.Globalization; + +// Step 1: Initialize a new workbook and grab the first worksheet +Workbook workbook = new Workbook(); // creates an empty .xlsx +Worksheet worksheet = workbook.Worksheets[0]; // the default sheet is "Sheet1" +``` + +*Mengapa ini penting:* +Membuat workbook secara programatik memungkinkan Anda menghindari berkas fisik selama pengujian. Ini juga memastikan referensi worksheet selalu valid—tidak ada kejutan null‑reference nanti ketika Anda mencoba **read Excel datetime** nilai. + +--- + +## Langkah 2: Tulis String Tanggal Era Jepang ke dalam Sel + +Tujuan kami adalah mendemonstrasikan parsing tanggal non‑Gregorian. Kami akan menempatkan string era langsung ke sel **A1**. + +```csharp +// Step 2: Insert a Japanese era date string into cell A1 +worksheet.Cells["A1"].PutValue("令和3年5月1日"); +``` + +*Tip pro:* Jika Anda mengambil data dari workbook yang sudah ada, Anda dapat melewatkan pemanggilan `PutValue` dan langsung merujuk ke sel yang sudah berisi tanggal. Kuncinya adalah sel tersebut memuat **string** yang mewakili tanggal dalam kalender lunisolar Jepang. + +--- + +## Langkah 3: Konfigurasikan Kultur yang Memahami Kalender Lunisolar Jepang + +Kelas `CultureInfo` .NET memungkinkan Anda menentukan bagaimana tanggal harus diinterpretasikan. Dengan menukar kalender Gregorian default ke `JapaneseLunisolarCalendar`, Anda memberi parser konteks yang dibutuhkan. + +```csharp +// Step 3: Set up a culture using the Japanese lunisolar calendar +CultureInfo japaneseCulture = new CultureInfo("ja-JP"); +japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); +``` + +*Mengapa kita melakukan ini:* +Jika Anda mencoba mem-parsing “令和3年5月1日” dengan kultur default, .NET akan melempar `FormatException`. Menukar ke kalender lunisolar memberi runtime petunjuk tepat bagaimana memetakan “令和3年” (tahun ke‑3 era Reiwa) ke tahun Gregorian 2021. + +--- + +## Langkah 4: Parse Nilai Sel sebagai `DateTime` Menggunakan Kultur yang Dikonfigurasi + +Sekarang masuk ke inti operasi—mengubah string era tersebut menjadi objek `DateTime` yang tepat. Aspose.Cells menyediakan overload `GetDateTime` yang menerima `CultureInfo`. + +```csharp +// Step 4: Retrieve the cell value as a DateTime, respecting the Japanese culture +DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); +``` + +*Apa yang terjadi di balik layar:* +`GetDateTime` membaca string mentah, menerapkan aturan kalender kultur yang diberikan, dan mengembalikan `DateTime` yang mewakili momen yang sama dalam kalender Gregorian. Inilah saat Anda **extract datetime Excel** data dalam bentuk yang dapat diproses di .NET. + +--- + +## Langkah 5: Tampilkan Tanggal yang Telah Diparse dalam Format ISO 8601 + +Akhirnya, kami memformat `DateTime` sebagai string ISO—`yyyy‑MM‑dd`—yang diterima secara universal oleh API, basis data, dan kerangka kerja front‑end. + +```csharp +// Step 5: Print the date in ISO format (e.g., 2021-05-01) +Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // Output: 2021-05-01 +``` + +*Mengapa ISO?* +ISO 8601 menghilangkan ambiguitas. “05/01/2021” bisa berarti 1 Mei atau 5 Januari tergantung locale. `2021-05-01` jelas sekali, itulah mengapa kami **format date iso** dalam hampir setiap skenario integrasi. + +--- + +## Contoh Lengkap yang Berfungsi + +Berikut adalah program lengkap yang siap dijalankan. Salin ke proyek aplikasi konsol, tambahkan referensi Aspose.Cells, dan tekan **F5**. + +```csharp +using Aspose.Cells; +using System; +using System.Globalization; + +class Program +{ + static void Main() + { + // 1️⃣ Create workbook and select the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("令和3年5月1日"); + + // 3️⃣ Set up Japanese lunisolar culture + CultureInfo japaneseCulture = new CultureInfo("ja-JP"); + japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); + + // 4️⃣ Parse the cell value as DateTime using the culture + DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); + + // 5️⃣ Output the date in ISO format + Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // 2021-05-01 + } +} +``` + +**Expected output** + +``` +2021-05-01 +``` + +Jalankan sekali, dan Anda akan melihat tanggal berformat ISO tercetak ke konsol. Itulah seluruh alur dari **read Excel datetime** ke **format date iso**. + +--- + +## Menangani Kasus Edge yang Umum + +### 1. Sel yang Berisi Angka Tanggal Excel Nyata + +Kadang Excel menyimpan tanggal sebagai nomor serial (mis., `44204`). Dalam kasus ini, Anda tidak memerlukan kultur; cukup panggil `GetDateTime()` tanpa parameter: + +```csharp +DateTime serialDate = worksheet.Cells["B2"].GetDateTime(); // B2 holds a numeric date +Console.WriteLine(serialDate.ToString("yyyy-MM-dd")); +``` + +### 2. Sel Kosong atau Tidak Valid + +Jika sel kosong atau berisi string yang tidak dapat diparse, `GetDateTime` akan melempar. Bungkus pemanggilan dalam `try/catch` atau periksa `IsDateTime` terlebih dahulu: + +```csharp +if (worksheet.Cells["C3"].Type == CellValueType.IsDateTime) +{ + DateTime safeDate = worksheet.Cells["C3"].GetDateTime(); + Console.WriteLine(safeDate.ToString("yyyy-MM-dd")); +} +else +{ + Console.WriteLine("Cell C3 does not contain a valid date."); +} +``` + +### 3. Format Era yang Berbeda + +Era Jepang lainnya (Heisei, Showa) mengikuti pola yang sama. `JapaneseLunisolarCalendar` yang sama akan menangani mereka secara otomatis, jadi Anda tidak memerlukan logika tambahan—cukup beri stringnya. + +--- + +## Pro Tips & Gotchas + +- **Performance:** Saat memproses spreadsheet besar, gunakan kembali satu instance `CultureInfo` alih‑alih membuat yang baru di dalam loop. +- **Thread Safety:** Objek `CultureInfo` bersifat read‑only setelah Anda mengatur kalender, sehingga aman dibagikan antar thread. +- **Aspose.Cells Licensing:** Jika Anda menggunakan versi percobaan gratis, ingat bahwa beberapa fitur mungkin terbatas setelah masa percobaan berakhir. Parsing tanggal yang ditunjukkan di sini berfungsi baik dalam mode percobaan maupun berlisensi. +- **Time Zones:** `DateTime` yang Anda dapatkan **unspecified** (tanpa zona waktu). Jika Anda memerlukan UTC, panggil `DateTime.SpecifyKind(parsedDate, DateTimeKind.Utc)` atau konversi menggunakan `TimeZoneInfo`. + +--- + +## Kesimpulan + +Kami telah membahas semua yang Anda perlukan untuk **format date iso** dari workbook Excel menggunakan C#. Mulai dari string era Jepang mentah, kami **read Excel datetime**, menyiapkan kultur yang tepat, **extract datetime excel** data, dan akhirnya menghasilkan string ISO‑8601 yang bersih. Pendekatan ini bekerja untuk representasi tanggal apa pun yang mungkin dilemparkan Excel kepada Anda, baik itu nomor serial, string spesifik locale, atau format era tradisional. + +Langkah selanjutnya? Coba iterasi seluruh kolom tanggal, tulis hasil ISO kembali ke sheet baru, atau kirimkan langsung ke payload JSON untuk layanan web. Jika Anda penasaran dengan sistem kalender lain (Ibrani, Islam), Aspose.Cells dan `CultureInfo` .NET membuat eksperimen tersebut sama mudahnya. + +Ada pertanyaan atau format tanggal rumit yang belum terpecahkan? Tinggalkan komentar di bawah, dan selamat coding! + +{{< /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/indonesian/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md b/cells/indonesian/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md new file mode 100644 index 0000000000..64b7506f9d --- /dev/null +++ b/cells/indonesian/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md @@ -0,0 +1,251 @@ +--- +category: general +date: 2026-03-30 +description: Pelajari cara memformat angka dengan pemisah menggunakan Aspose.Cells + di C#. Termasuk mengatur format angka khusus, menambahkan pemisah ribuan, memformat + tempat desimal, dan cara memformat sel. +draft: false +keywords: +- format number with separator +- set custom number format +- add thousands separator +- format decimal places +- how to format cell +language: id +og_description: Format angka dengan pemisah di C#. Panduan ini menunjukkan cara mengatur + format angka khusus, menambahkan pemisah ribuan, memformat tempat desimal, dan cara + memformat sel menggunakan Aspose.Cells. +og_title: Format Angka dengan Pemisah di C# – Tutorial Aspose.Cells +tags: +- C# +- Aspose.Cells +- Number Formatting +title: Format Angka dengan Pemisah di C# – Panduan Lengkap Aspose.Cells +url: /id/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Memformat Angka dengan Pemisah di C# – Panduan Lengkap Aspose.Cells + +Pernah perlu **memformat angka dengan pemisah** di spreadsheet tetapi tidak yakin panggilan API mana yang harus digunakan? Anda tidak sendirian—para pengembang terus bergulat dengan pemisah ribuan, tempat desimal, dan pola kustom saat mengekspor data. + +Kabar baik: Aspose.Cells membuatnya sangat mudah. Dalam tutorial ini kami akan menelusuri contoh dunia nyata yang **menetapkan format angka kustom**, **menambahkan pemisah ribuan**, **memformat tempat desimal**, dan menunjukkan **cara memformat sel** output sebagai string. Pada akhir tutorial Anda akan memiliki potongan kode siap‑jalankan yang dapat disisipkan ke proyek .NET mana pun. + +## Apa yang Dibahas dalam Panduan Ini + +* Paket NuGet yang tepat dan cara menginstalnya. +* Kode langkah‑demi‑langkah yang membuat workbook, menulis nilai numerik, dan menerapkan format kustom. +* Mengapa `ExportTableOptions.ExportAsString` adalah cara yang disarankan untuk mengambil nilai yang telah diformat. +* Kesalahan umum—seperti lupa mengaktifkan `ExportAsString` atau menggunakan mask format yang salah. +* Cara menyesuaikan mask format jika Anda memerlukan jumlah tempat desimal yang berbeda atau gaya pemisah yang lain. + +Tidak ada tautan dokumentasi eksternal yang diperlukan; semua yang Anda butuhkan ada di sini. Mari kita mulai. + +--- + +## Prasyarat + +| Persyaratan | Alasan | +|-------------|--------| +| .NET 6.0 atau yang lebih baru | Aspose.Cells 23.10+ menargetkan .NET Standard 2.0+, jadi .NET 6 aman dan terkini. | +| Visual Studio 2022 (atau IDE C# apa pun) | Membuat debugging dan manajemen paket menjadi mudah. | +| Paket NuGet Aspose.Cells untuk .NET | Menyediakan kelas `Workbook`, `Worksheet`, dan `ExportTableOptions` yang akan kita gunakan. | + +Anda dapat menginstal paket tersebut melalui Package Manager Console: + +```powershell +Install-Package Aspose.Cells +``` + +Itu saja—tidak ada DLL tambahan, tidak ada interop COM, hanya satu referensi NuGet. + +--- + +## Langkah 1: Inisialisasi Workbook Baru (Cara Memformat Sel) + +Hal pertama yang kami lakukan adalah membuat instance `Workbook` yang baru. Anggap saja ini sebagai file Excel kosong yang siap menerima data. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Create a new workbook – this is where we’ll format the cell. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Mengapa ini penting:** `Workbook` adalah titik masuk untuk setiap operasi di Aspose.Cells. Dengan mengambil worksheet pertama (`Worksheets[0]`) kita mendapatkan kanvas bersih tanpa harus memberi nama sheet. + +--- + +## Langkah 2: Tulis Nilai Numerik ke Sel Target + +Selanjutnya, kami menaruh angka mentah ke sel **A1**. Nilainya belum diformat—hanya berupa double. + +```csharp + // Step 2: Insert a raw numeric value. + worksheet.Cells["A1"].PutValue(12345.6789); +``` + +> **Tips profesional:** Gunakan `PutValue` alih‑alih `PutString` ketika Anda berencana menerapkan pemformatan numerik nanti. Ini mempertahankan tipe data dasar, memungkinkan perhitungan yang kompatibel dengan Excel. + +--- + +## Langkah 3: Tetapkan Format Angka Kustom (Tambahkan Pemisah Ribuan & Format Tempat Desimal) + +Sekarang masuk ke inti tutorial: mendefinisikan mask format yang memberi tahu Aspose.Cells cara menampilkan angka. Mask `#,##0.00` melakukan tiga hal: + +1. **`#,##0`** – menambahkan pemisah ribuan (koma secara default). +2. **`.00`** – memaksa tepat dua tempat desimal. + +Jika Anda memerlukan jumlah desimal yang berbeda, cukup ubah jumlah `0` setelah titik desimal. + +```csharp + // Step 3: Configure the custom number format. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, // Return the value as a formatted string. + NumberFormat = "#,##0.00" // Add thousands separator and fix to 2 decimals. + }; +``` + +> **Mengapa kami menggunakan `ExportAsString`**: Secara default, `ExportString` mengembalikan nilai mentah. Menetapkan `ExportAsString = true` memaksa API menerapkan mask `NumberFormat` sebelum mengonversi ke teks. Ini penting ketika Anda memerlukan representasi string yang tepat untuk laporan, payload JSON, atau tampilan UI. + +--- + +## Langkah 4: Ekspor Teks yang Diformat (Cara Memformat Sel) + +Dengan opsi yang sudah siap, kami memanggil `ExportString` pada sel yang sama. Metode ini menghormati mask yang baru saja kami definisikan dan mengembalikan string yang sudah diformat dengan rapi. + +```csharp + // Step 4: Export the formatted value. + string formattedCellText = worksheet.Cells["A1"].ExportString(exportOptions); + + // Step 5: Show the result. + Console.WriteLine(formattedCellText); // Expected output: 12,345.68 + } +} +``` + +Menjalankan program mencetak **`12,345.68`** ke konsol—tepat seperti format yang kami minta. + +> **Kasus tepi:** Jika angka sumber memiliki lebih dari dua tempat desimal, mask akan membulatkannya. Jika Anda memerlukan pemotongan alih‑alih pembulatan, Anda harus memproses nilai terlebih dahulu dengan `Math.Truncate` sebelum memanggil `PutValue`. + +--- + +## Langkah 5: Menyesuaikan Format – Variasi Umum + +### 5.1 Ubah Presisi Desimal + +Ingin tiga tempat desimal? Ganti saja masknya: + +```csharp +NumberFormat = "#,##0.000" // → 12,345.679 +``` + +### 5.2 Gunakan Pemisah Ribuan yang Berbeda + +Beberapa locale lebih suka spasi atau titik. Anda dapat menyisipkan karakter tersebut langsung: + +```csharp +NumberFormat = "# ##0.00" // Uses a non‑breaking space as separator. +``` + +Atau mengandalkan pengaturan budaya workbook: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("de-DE"); +NumberFormat = "#.##0,00"; // German style: 12.345,68 +``` + +### 5.3 Awalan atau Akhiran (Mata Uang, Persen) + +Tambahkan tanda dolar atau persen langsung di dalam mask: + +```csharp +NumberFormat = "$#,##0.00"; // → $12,345.68 +NumberFormat = "0.00%"; // → 1,234,568.00% +``` + +> **Catatan:** Mask bersifat case‑sensitive. `$` dan `%` adalah simbol literal; mereka tidak memengaruhi nilai numerik dasar. + +--- + +## Langkah 6: Contoh Lengkap yang Siap Pakai (Copy‑Paste) + +Berikut adalah program lengkap yang dapat Anda salin ke aplikasi console baru. Program ini mencakup semua langkah, komentar, dan verifikasi output akhir. + +```csharp +using System; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write raw numeric value to A1. + worksheet.Cells["A1"].PutValue(12345.6789); + + // 3️⃣ Define custom format: thousands separator + two decimals. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + NumberFormat = "#,##0.00" + }; + + // 4️⃣ Export the formatted string. + string result = worksheet.Cells["A1"].ExportString(exportOptions); + + // 5️⃣ Display the outcome. + Console.WriteLine(result); // Output: 12,345.68 + + // Optional: keep console open. + Console.WriteLine("Press any key to exit..."); + Console.ReadKey(); + } +} +``` + +Jalankan program (`dotnet run` dari terminal atau tekan F5 di Visual Studio) dan Anda akan melihat angka yang diformat tercetak persis seperti yang ditunjukkan. + +--- + +## Pertanyaan yang Sering Diajukan (FAQ) + +**T: Apakah ini bekerja dengan versi Excel yang lebih lama?** +J: Ya. Mask format mengikuti sintaks format angka native Excel, jadi versi apa pun yang memahami `#,##0.00` akan menampilkan string yang sama. + +**T: Bagaimana jika saya perlu memformat rentang sel?** +J: Lakukan iterasi pada rentang yang diinginkan dan terapkan `ExportTableOptions` yang sama pada setiap sel, atau set properti `Style.Custom` pada rentang tersebut dan kemudian panggil `ExportString` pada satu sel. + +**T: Bisakah saya mengekspor langsung ke CSV dengan format ini diterapkan?** +J: Tentu. Gunakan `Workbook.Save("output.csv", SaveFormat.CSV);` setelah mengatur format pada setiap sel. Aspose.Cells menghormati `Style` sel saat menghasilkan CSV. + +--- + +## Kesimpulan + +Kami baru saja menunjukkan cara **memformat angka dengan pemisah** di C# menggunakan Aspose.Cells, mencakup semuanya mulai dari **menetapkan format angka kustom** hingga **menambahkan pemisah ribuan**, **memformat tempat desimal**, dan cara **memformat sel** untuk ekspor string. Kode ini sepenuhnya mandiri, bekerja dengan .NET 6+, dan dapat disesuaikan untuk locale atau kebutuhan presisi apa pun. + +Selanjutnya, Anda dapat menjelajahi: + +* Menerapkan teknik yang sama pada tanggal dan waktu (`NumberFormat = "dd‑MMM‑yyyy"`). +* Mengotomatiskan ekspor massal di mana setiap kolom memerlukan mask yang berbeda. +* Mengintegrasikan string yang diformat ke dalam laporan PDF dengan Aspose.Words. + +Cobalah, dan Anda akan cepat menjadi orang yang diandalkan untuk pemformatan spreadsheet di tim Anda. Selamat coding! ![Screenshot showing formatted number with separator in Aspose.Cells](image-placeholder.png){alt="Nomor yang diformat dengan pemisah ditampilkan di output 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/indonesian/net/excel-data-import-export/_index.md b/cells/indonesian/net/excel-data-import-export/_index.md index 45c250c2d0..c70a37e882 100644 --- a/cells/indonesian/net/excel-data-import-export/_index.md +++ b/cells/indonesian/net/excel-data-import-export/_index.md @@ -32,6 +32,10 @@ Berikutnya adalah tantangan umum lainnya: memasukkan baris DataTable ke Excel ta Pelajari cara mengimpor data ke Excel dengan format DB Num kustom menggunakan Aspose.Cells untuk .NET dalam tutorial yang mudah diikuti ini. ### [Geser Baris Pertama ke Bawah Saat Memasukkan Baris DataTable di Excel](./shift-first-row-down-when-inserting-cells-datatable-rows-in-excel/) Pelajari cara menyisipkan baris DataTable di Excel tanpa menggeser baris pertama ke bawah menggunakan Aspose.Cells untuk .NET. Panduan langkah demi langkah untuk otomatisasi yang mudah. +### [Buat Workbook Excel C# – Sisipkan JSON dan Simpan sebagai XLSX](./create-excel-workbook-c-insert-json-and-save-as-xlsx/) +Pelajari cara membuat workbook Excel menggunakan C#, menyisipkan data JSON, dan menyimpannya sebagai file XLSX dengan Aspose.Cells. +### [Buat Workbook Excel C# – Terapkan Format Mata Uang dan Impor DataTable](./create-excel-workbook-c-apply-currency-format-and-import-dat/) +Pelajari cara membuat workbook Excel dengan C#, menerapkan format mata uang, dan mengimpor DataTable menggunakan Aspose.Cells. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/indonesian/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md b/cells/indonesian/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md new file mode 100644 index 0000000000..bfffc82d9b --- /dev/null +++ b/cells/indonesian/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md @@ -0,0 +1,285 @@ +--- +category: general +date: 2026-03-30 +description: Buat workbook Excel C# dengan format mata uang. Pelajari cara mengimpor + DataTable, menambahkan format angka di Excel, dan menerapkan format mata uang pada + kolom dalam hitungan menit. +draft: false +keywords: +- create excel workbook c# +- format cells currency +- import datatable to excel +- add number format excel +- apply currency format column +language: id +og_description: Buat workbook Excel dengan C# dan langsung format sel sebagai mata + uang. Tutorial langkah demi langkah ini menunjukkan cara mengimpor DataTable ke + Excel dan menambahkan format angka Excel untuk sebuah kolom. +og_title: Buat Workbook Excel C# – Panduan Pemformatan Mata Uang +tags: +- Aspose.Cells +- C# +- Excel automation +title: Buat Workbook Excel C# – Terapkan Format Mata Uang dan Impor DataTable +url: /id/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Buat Workbook Excel C# – Terapkan Format Mata Uang dan Impor DataTable + +Pernahkah Anda perlu **create Excel workbook C#** yang sudah terlihat seperti laporan yang rapi? Mungkin Anda menarik angka penjualan dari basis data dan ingin kolom harga ditampilkan dalam dolar tanpa harus mengutak‑atik Excel secara manual. Kedengarannya familiar? Anda tidak sendiri—banyak pengembang mengalami masalah ini saat pertama kali mengotomatisasi ekspor Excel. + +Dalam panduan ini kami akan membahas solusi lengkap yang siap dijalankan yang **creates an Excel workbook C#**, mengimpor `DataTable`, dan **formats the Price column as currency**. Pada akhir panduan Anda akan memiliki file bernama `StyledTable.xlsx` yang dapat Anda buka dan melihat angka yang diformat dengan rapi. Tidak diperlukan pemrosesan tambahan. + +> **What you’ll learn** +> - Cara menyiapkan Aspose.Cells dalam proyek .NET +> - Cara **import datatable to excel** dengan array gaya +> - Cara **add number format excel** untuk kolom tertentu +> - Tips menangani lebih banyak kolom atau lokal yang berbeda + +> **Prasyarat** +> - .NET 6+ (atau .NET Framework 4.6+) terinstal +> - Paket NuGet Aspose.Cells untuk .NET (`Install-Package Aspose.Cells`) +> - Familiaritas dasar dengan C# dan DataTables + +--- + +## Langkah 1: Siapkan DataTable (import datatable to excel) + +First, we need some sample data. In a real‑world app you’d likely fill this table from a DB query, but a hard‑coded example keeps things simple. + +```csharp +using System.Data; + +// Create a DataTable with two columns: Product (string) and Price (double) +DataTable dataTable = new DataTable(); +dataTable.Columns.Add("Product", typeof(string)); +dataTable.Columns.Add("Price", typeof(double)); + +// Add a few rows – you can add as many as you like +dataTable.Rows.Add("Apple", 1.23); +dataTable.Rows.Add("Banana", 0.78); +dataTable.Rows.Add("Cherry", 2.50); +``` + +*Mengapa ini penting*: The `DataTable` is the bridge between your business data and the Excel file. Aspose.Cells can import it directly, preserving column names and data types. + +--- + +## Langkah 2: Buat Workbook Baru (create excel workbook c#) + +Now we create the actual Excel file object. Think of it as the blank canvas you’ll paint on. + +```csharp +using Aspose.Cells; + +// Instantiate a fresh workbook – this is the core of create excel workbook c# +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0). You could also add more sheets later. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Pro tip:** If you need multiple sheets, call `workbook.Worksheets.Add()` and give each a meaningful name. + +--- + +## Langkah 3: Definisikan Gaya Mata Uang (format cells currency) + +Aspose.Cells lets you craft a `Style` object that describes how cells should look. For currency we use the built‑in number format ID 164 (`"$#,##0.00"`). + +```csharp +// Create a new style object for the price column +Style priceStyle = workbook.CreateStyle(); +priceStyle.Number = 164; // Built‑in currency format "$#,##0.00" +``` + +*Why not just set the format string?* Using the built‑in ID ensures compatibility across Excel versions and avoids locale‑specific quirks. + +--- + +## Langkah 4: Bangun Array Gaya (apply currency format column) + +When importing a `DataTable`, you can pass an array of `Style` objects—one per column. `null` means “use the default style”. Here we apply `priceStyle` only to the second column. + +```csharp +// Column 0 (Product) gets the default style, Column 1 (Price) gets the currency style +Style[] columnStyles = { null, priceStyle }; +``` + +If you later add more columns, just extend the array accordingly. The length of `columnStyles` must match the number of columns you’re importing, otherwise Aspose will throw an exception. + +--- + +## Langkah 5: Impor DataTable dengan Gaya (import datatable to excel) + +Now the magic happens—our `DataTable` lands in the worksheet, and the price column instantly shows as currency. + +```csharp +// Parameters: +// - dataTable: source data +// - true: include column headers +// - startRow: 0 (top of sheet) +// - startColumn: 0 (first column) +// - columnStyles: style array defined above +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +*What if you have more than two columns?* Just expand `columnStyles` so each column gets the appropriate style (or `null` for default). This is the cleanest way to **add number format excel** selectively. + +--- + +## Langkah 6: Simpan Workbook (create excel workbook c#) + +Finally, we write the file to disk. Choose any folder you have write access to. + +```csharp +// Save the workbook as an XLSX file +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +Open `StyledTable.xlsx` in Excel and you should see: + +| Product | Price | +|---------|-------| +| Apple | $1.23 | +| Banana | $0.78 | +| Cherry | $2.50 | + +The **Price** column is already formatted as currency—no extra steps needed. + +--- + +## Kasus Tepi & Variasi + +### Lebih Banyak Kolom, Format Berbeda + +If you need to **format cells currency** for several columns (e.g., Cost, Tax, Total), create a separate `Style` for each and populate `columnStyles` accordingly: + +```csharp +Style costStyle = workbook.CreateStyle(); +costStyle.Number = 164; // currency + +Style taxStyle = workbook.CreateStyle(); +taxStyle.Number = 164; + +// Assuming columns: Product, Cost, Tax, Total +Style[] styles = { null, costStyle, taxStyle, priceStyle }; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, styles); +``` + +### Mata Uang Spesifik Lokal + +For Euro or British Pound, use different built‑in IDs (e.g., 165 for `€#,##0.00`). Alternatively, set a custom format string: + +```csharp +priceStyle.Custom = "€#,##0.00"; +``` + +### Set Data Besar + +Aspose.Cells can handle millions of rows, but memory consumption grows with style objects. Reuse a single `Style` instance for all currency columns to keep the footprint low. + +### Gaya yang Hilang + +If `columnStyles` is shorter than the number of columns, Aspose will apply the default style to the remaining columns. This is handy when you only care about a few columns. + +--- + +## Contoh Kerja Penuh (Semua Langkah Digabung) + +Below is the complete program you can copy‑paste into a console app. It includes all the pieces we discussed, plus a few helpful comments. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // Step 1: Build sample DataTable (import datatable to excel) + // ------------------------------------------------- + DataTable dataTable = new DataTable(); + dataTable.Columns.Add("Product", typeof(string)); + dataTable.Columns.Add("Price", typeof(double)); + dataTable.Rows.Add("Apple", 1.23); + dataTable.Rows.Add("Banana", 0.78); + dataTable.Rows.Add("Cherry", 2.50); + // You can add as many rows as you like here. + + // ------------------------------------------------- + // Step 2: Create a new workbook (create excel workbook c#) + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // Step 3: Define a currency style (format cells currency) + // ------------------------------------------------- + Style priceStyle = workbook.CreateStyle(); + priceStyle.Number = 164; // "$#,##0.00" – built‑in currency format + + // ------------------------------------------------- + // Step 4: Build the style array (apply currency format column) + // ------------------------------------------------- + // First column gets default style (null), second column uses priceStyle. + Style[] columnStyles = { null, priceStyle }; + + // ------------------------------------------------- + // Step 5: Import the DataTable with the style array + // ------------------------------------------------- + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // ------------------------------------------------- + // Step 6: Save the workbook to disk + // ------------------------------------------------- + string outputPath = @"YOUR_DIRECTORY\StyledTable.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } +} +``` + +**Expected result:** Opening `StyledTable.xlsx` shows the `Price` column with a dollar sign and two decimal places, exactly as the `format cells currency` instruction demanded. + +--- + +## Pertanyaan yang Sering Diajukan + +**Q: Does this work with .NET Core?** +A: Absolutely. Aspose.Cells is .NET‑standard compliant, so you can target .NET 5, .NET 6, or later without changes. + +**Q: What if my DataTable has 10 columns but I only want to format column 5?** +A: Create a `Style[]` of length 10, fill positions 0‑4 and 6‑9 with `null`, and put your custom style at index 4 (zero‑based). Aspose will respect each entry. + +**Q: Can I hide the header row?** +A: After import, set `worksheet.Cells.Rows[0].Hidden = true;` or simply pass `false` for the `includeColumnNames` parameter in `ImportDataTable`. + +--- + +## Kesimpulan + +We’ve just **created an Excel workbook C#**, imported a `DataTable`, and **applied a currency format column** using Aspose.Cells. The primary steps—preparing data, defining a style, building a style array, importing with `ImportDataTable`, and saving—cover the core of most Excel‑automation tasks. + +From here you might explore: + +- **add number format excel** for dates or percentages +- Exporting multiple worksheets in a single file +- Using **format cells currency** with locale‑specific symbols +- Automating chart creation based on the same data + +Give those a try, and you’ll quickly become the go‑to person for Excel reporting in your team. Got a twist you’d like to share? Drop a comment below—happy coding! + +![create excel workbook c# screenshot](image.png "create excel workbook c#") + +{{< /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/indonesian/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md b/cells/indonesian/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md new file mode 100644 index 0000000000..706883af33 --- /dev/null +++ b/cells/indonesian/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md @@ -0,0 +1,253 @@ +--- +category: general +date: 2026-03-30 +description: Buat workbook Excel C# dengan cepat dengan memasukkan data JSON dan menyimpan + workbook sebagai XLSX. Pelajari cara menghasilkan Excel dari JSON, menulis JSON + ke Excel, dan menyisipkan JSON ke dalam Excel. +draft: false +keywords: +- create excel workbook c# +- save workbook as xlsx +- generate excel from json +- write json to excel +- insert json into excel +language: id +og_description: Buat workbook Excel C# dengan cepat dengan memasukkan data JSON dan + menyimpan workbook sebagai XLSX. Ikuti panduan langkah demi langkah ini untuk menghasilkan + Excel dari JSON. +og_title: Buat Workbook Excel C# – Sisipkan JSON dan Simpan sebagai XLSX +tags: +- Aspose.Cells +- C# +- Excel automation +title: Buat Workbook Excel C# – Sisipkan JSON dan Simpan sebagai XLSX +url: /id/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Membuat Workbook Excel C# – Menyisipkan JSON dan Menyimpan sebagai XLSX + +Pernahkah Anda perlu **create Excel workbook C#** dan menaruh beberapa JSON langsung ke dalam sel? Anda bukan satu-satunya—para pengembang sering menghadapi teka‑teki yang sama ketika mereka memiliki payload API atau file konfigurasi yang harus dimasukkan ke dalam spreadsheet untuk pelaporan atau berbagi. + +Kabar baiknya, dengan Aspose.Cells Anda dapat melakukannya dalam beberapa baris kode, **save workbook as XLSX**, dan menjaga seluruh proses tetap type‑safe. Dalam tutorial ini kami akan **generate Excel from JSON**, **write JSON to Excel**, dan menunjukkan langkah‑langkah tepat untuk **insert JSON into Excel** tanpa harus menggabungkan string yang rumit. + +## Apa yang Dibahas dalam Panduan Ini + +Kami akan melangkah melalui: + +1. Menyiapkan workbook baru. +2. Menambahkan Smart Marker yang mengharapkan JSON. +3. Memberikan array JSON ke marker. +4. Menyesuaikan `SmartMarkerOptions` agar JSON tetap berada dalam satu sel. +5. Menyimpan file sebagai workbook XLSX. + +Pada akhir tutorial Anda akan memiliki file `JsonSingleCell.xlsx` yang siap pakai dan pola yang solid yang dapat Anda gunakan kembali untuk skenario JSON‑to‑Excel apa pun. Tanpa layanan eksternal, hanya C# biasa dan pustaka Aspose.Cells. + +**Prerequisites** + +- .NET 6+ (atau .NET Framework 4.6+). +- Visual Studio 2022 atau IDE kompatibel C# apa pun. +- Paket NuGet `Aspose.Cells` (versi percobaan gratis atau berlisensi). + +Jika Anda sudah memiliki semua itu, mari kita mulai—tidak ada pengaturan tambahan yang diperlukan. + +--- + +## Langkah 1: Membuat Workbook Baru di C# + +Hal pertama yang Anda butuhkan adalah objek workbook kosong. Anggaplah itu sebagai file Excel baru yang menunggu data. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is your empty Excel file +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; +``` + +**Mengapa ini penting:** +`Workbook` adalah titik masuk untuk semua operasi Excel. Dengan membuatnya terlebih dahulu, Anda memastikan bahwa pemanggilan **save workbook as xlsx** berikutnya memiliki objek konkret untuk diserialisasi. + +> **Pro tip:** Jika Anda berencana bekerja dengan beberapa lembar, Anda dapat menambahkannya sekarang dengan `workbook.Worksheets.Add()`. + +--- + +## Langkah 2: Menempatkan Smart Marker yang Mengharapkan JSON + +Smart Markers adalah placeholder yang digantikan Aspose.Cells pada saat runtime. Di sini kami memberi tahu untuk mencari string JSON bernama `data`. + +```csharp +// Put a Smart Marker in cell A1 – {{data:json}} tells Aspose to expect JSON +worksheet.Cells["A1"].PutValue("{{data:json}}"); +``` + +**Mengapa ini penting:** +Akhiran `:json` memberi tahu mesin bahwa nilai yang masuk adalah JSON, bukan teks biasa. Ini adalah kunci untuk **write json to excel** tanpa parsing manual. + +--- + +## Langkah 3: Mendefinisikan Array JSON + +Sekarang kami menyusun JSON yang ingin disisipkan. Untuk demonstrasi kami akan menggunakan daftar sederhana orang. + +```csharp +// Sample JSON array – could come from an API, file, or DB +string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; +``` + +**Kasus khusus:** +Jika JSON Anda berisi tanda kutip ganda, pastikan mereka di‑escape (seperti yang ditunjukkan) atau gunakan string verbatim (`@\"...\"`) untuk menghindari error kompilasi. + +--- + +## Langkah 4: Mengonfigurasi Smart Marker Options – Menjaga Array Tetap Utuh + +Secara default, Aspose akan mencoba memperluas array ke beberapa baris. Kami menginginkan seluruh string JSON tetap berada dalam satu sel, yang sempurna untuk skenario **insert json into excel** di mana konsumen akan mem‑parsing JSON nanti. + +```csharp +SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions +{ + // Treat the whole array as a single cell value + ArrayAsSingle = true +}; +``` + +**Mengapa ini penting:** +`ArrayAsSingle = true` mencegah ekspansi baris, memberi Anda JSON blob bersih dalam satu sel. Ini penting ketika spreadsheet berfungsi sebagai format transportasi bukan laporan. + +--- + +## Langkah 5: Memproses Smart Marker dengan Data JSON + +Sekarang kami mengikat JSON ke marker dan membiarkan Aspose melakukan pekerjaan berat. + +```csharp +// Process the marker – the anonymous object maps "data" to our JSON string +worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); +``` + +**Apa yang terjadi di balik layar:** +Aspose mengevaluasi placeholder `{{data:json}}`, men‑serialize string `jsonData`, dan menuliskannya ke sel A1 sesuai dengan opsi yang kami atur. + +--- + +## Langkah 6: Menyimpan Workbook sebagai File XLSX + +Akhirnya, kami menulis workbook ke disk. Di sinilah **save workbook as xlsx** berperan. + +```csharp +// Save the workbook – the extension determines the format (XLSX here) +workbook.Save("JsonSingleCell.xlsx"); +``` + +**Hasil:** +Buka `JsonSingleCell.xlsx` di Excel, dan Anda akan melihat array JSON persis seperti yang kami definisikan, berada rapi di sel A1. + +--- + +## Contoh Lengkap yang Dapat Dijalankan + +Berikut adalah program lengkap yang dapat Anda salin‑tempel ke aplikasi console. Program ini mencakup semua langkah di atas dan dapat langsung dijalankan (asalkan paket NuGet Aspose.Cells telah terpasang). + +```csharp +using System; +using Aspose.Cells; + +namespace JsonToExcelDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add a Smart Marker that expects JSON + worksheet.Cells["A1"].PutValue("{{data:json}}"); + + // 3️⃣ Define the JSON array + string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; + + // 4️⃣ Configure options – keep array as a single cell value + SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions + { + ArrayAsSingle = true + }; + + // 5️⃣ Process the marker with the JSON payload + worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); + + // 6️⃣ Save the workbook as XLSX + workbook.Save("JsonSingleCell.xlsx"); + + Console.WriteLine("Excel file created successfully! Check JsonSingleCell.xlsx."); + } + } +} +``` + +**Output yang Diharapkan di Excel** + +| A | +|---| +| `[{"Name":"John","Age":30},{"Name":"Jane","Age":28}]` | + +Sel tunggal itu kini berisi array JSON yang sepenuhnya valid dan siap untuk diproses lebih lanjut. + +--- + +## Pertanyaan Umum & Kasus Khusus + +### Bagaimana jika saya perlu JSON tersebar di beberapa baris? + +Setel `ArrayAsSingle = false` (default). Aspose akan membuat baris untuk setiap elemen array, memetakan properti objek ke kolom. Ini berguna ketika Anda menginginkan tampilan tabel alih‑alih string JSON mentah. + +### Bisakah saya menggunakan file JSON alih‑alih string yang ditulis keras? + +Tentu saja. Baca file ke dalam string: + +```csharp +string jsonData = File.ReadAllText("people.json"); +``` + +Kemudian berikan `jsonData` ke pemanggilan `Process` yang sama. Sisa pipeline tetap tidak berubah. + +### Apakah ini bekerja dengan payload JSON yang besar? + +Ya, tetapi perhatikan penggunaan memori. Untuk array yang sangat besar, pertimbangkan streaming data atau menulis langsung ke baris (`ArrayAsSingle = false`) agar tidak menghasilkan satu sel raksasa yang mungkin membuat Excel kesulitan. + +### Apakah XLSX yang dihasilkan kompatibel dengan versi Excel lama? + +Format `.xlsx` berbasis Office Open XML dan bekerja dengan Excel 2007 ke atas. Jika Anda memerlukan format legacy `.xls`, ubah pemanggilan penyimpanan: + +```csharp +workbook.Save("JsonSingleCell.xls", SaveFormat.Excel97To2003); +``` + +--- + +## Tips Pro untuk Bekerja dengan JSON dan Excel + +- **Validate JSON first** – gunakan `System.Text.Json.JsonDocument.Parse(jsonData)` untuk menangkap input yang tidak valid lebih awal. +- **Escape special characters** – jika JSON Anda berisi pemisah baris, mereka akan muncul sebagai literal `\n` di sel; Anda dapat menggantinya dengan `Environment.NewLine` sebelum diproses. +- **Reuse Smart Markers** – Anda dapat menempatkan beberapa marker di lembar yang sama, masing‑masing mengarah ke properti JSON yang berbeda. +- **Combine with formulas** – begitu JSON berada di sel, Anda dapat menggunakan `FILTERXML` Excel (pada versi terbaru) untuk mem‑parsingnya secara langsung. + +--- + +## Kesimpulan + +Anda kini tahu cara **create excel workbook c#**, menyematkan payload JSON, dan **save workbook as xlsx** menggunakan Aspose.Cells. Pola ini memungkinkan Anda **generate excel from json**, **write json to excel**, dan **insert json into excel** dengan hanya beberapa baris kode, membuat pertukaran data antara layanan dan analis menjadi mudah. + +Siap untuk langkah berikutnya? Cobalah mengonversi array JSON menjadi tabel yang tepat (set `ArrayAsSingle = false`) atau jelajahi penataan lembar setelah penyisipan. Pendekatan yang sama juga berlaku untuk CSV, XML, atau bahkan objek kustom—cukup sesuaikan tipe Smart Marker. + +Selamat coding, dan silakan bereksperimen! Jika Anda mengalami kendala, tinggalkan komentar di bawah atau lihat dokumentasi resmi Aspose untuk penjelasan lebih mendalam tentang Smart Markers. + +{{< /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/indonesian/net/excel-workbook/_index.md b/cells/indonesian/net/excel-workbook/_index.md index a9ac5f0089..c87032369a 100644 --- a/cells/indonesian/net/excel-workbook/_index.md +++ b/cells/indonesian/net/excel-workbook/_index.md @@ -86,6 +86,7 @@ Jadi, mengapa tidak memanfaatkan kesempatan ini untuk meningkatkan keterampilan | [Pratinjau Cetak Buku Kerja](./workbook-print-preview/) | Pelajari cara membuat pratinjau cetak untuk file Excel menggunakan Aspose.Cells for .NET. Pelajari langkah-langkah pengkodean dalam tutorial terperinci dan mudah diikuti. | | [Bekerja Dengan Properti Tipe Konten](./working-with-content-type-properties/) | Pelajari cara menggunakan Aspose.Cells for .NET untuk bekerja dengan properti tipe konten guna meningkatkan manajemen metadata Excel. Ikuti panduan langkah demi langkah sederhana ini. | | [Dukungan Tanda Tangan Xades](./xades-signature-support/) | Pelajari cara menambahkan tanda tangan Xades ke berkas Excel menggunakan Aspose.Cells for .NET dengan panduan langkah demi langkah ini. Amankan dokumen Anda. | +| [Buat lembar master di C# – Panduan Lengkap Aspose.Cells](./create-master-sheet-in-c-complete-aspose-cells-guide/) | Pelajari cara membuat lembar master di C# menggunakan Aspose.Cells dengan panduan langkah demi langkah lengkap. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/indonesian/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md b/cells/indonesian/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md new file mode 100644 index 0000000000..f491bd279a --- /dev/null +++ b/cells/indonesian/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-03-30 +description: Buat lembar master menggunakan Aspose.Cells di C#. Pelajari cara membuat + workbook Excel dengan C#, mengizinkan nama lembar duplikat, dan menyimpan workbook + sebagai XLSX dalam beberapa langkah. +draft: false +keywords: +- create master sheet +- create excel workbook c# +- save workbook as xlsx +- allow duplicate sheet names +language: id +og_description: Buat lembar master dengan Aspose.Cells di C#. Panduan ini menunjukkan + cara membuat workbook Excel di C#, mengizinkan nama lembar duplikat, dan menyimpan + workbook sebagai XLSX. +og_title: Buat lembar master di C# – Panduan Lengkap Aspose.Cells +tags: +- Aspose.Cells +- C# +- Excel automation +title: Buat lembar master di C# – Panduan Lengkap Aspose.Cells +url: /id/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Buat lembar master di C# – Panduan Lengkap Aspose.Cells + +Pernah perlu **membuat lembar master** dalam file Excel tetapi tidak yakin bagaimana menangani sekumpulan lembar detail yang memiliki nama dasar yang sama? Anda tidak sendirian. Dalam banyak skenario pelaporan, Anda berakhir dengan puluhan tab detail, dan perilaku default sebagian besar pustaka adalah melemparkan pengecualian ketika dua lembar akan memiliki nama yang sama. + +Untungnya, Aspose.Cells membuatnya sangat mudah untuk **membuat lembar master**, mengonfigurasi mesin agar **mengizinkan nama lembar duplikat**, dan kemudian **menyimpan workbook sebagai XLSX**—semua dari kode C# yang bersih. Dalam tutorial ini kami akan menelusuri contoh yang dapat dijalankan sepenuhnya, menjelaskan mengapa setiap baris penting, dan memberi Anda beberapa tip yang dapat langsung Anda salin ke proyek Anda sendiri. + +> **Apa yang akan Anda dapatkan** +> * Cara **membuat Excel workbook C#**‑style menggunakan Aspose.Cells. +> * Cara menyematkan smart‑marker yang menghasilkan lembar detail untuk setiap baris data. +> * Cara mengatur `DetailSheetNewName = DuplicateAllowed` sehingga pustaka secara otomatis menambahkan sufiks numerik. +> * Cara **menyimpan workbook sebagai XLSX** ke disk tanpa langkah tambahan. + +Tidak memerlukan dokumentasi eksternal—semua yang Anda butuhkan ada di sini. + +--- + +## Prasyarat + +Sebelum kita mulai, pastikan Anda memiliki: + +| Requirement | Why it matters | +|-------------|----------------| +| .NET 6.0 atau lebih baru (atau .NET Framework 4.7+) | Aspose.Cells 23.x+ menargetkan runtime ini. | +| Visual Studio 2022 (atau IDE C# apa pun) | Untuk memudahkan pembuatan proyek dan debugging. | +| Paket NuGet Aspose.Cells untuk .NET (`Install-Package Aspose.Cells`) | Pustaka yang menggerakkan semua keajaiban smart‑marker. | +| Pengetahuan dasar C# | Anda akan memahami sintaks tanpa kursus kilat. | + +Jika Anda belum memiliki salah satu dari ini, tambahkan sekarang—tidak ada gunanya melanjutkan dengan lingkungan setengah jadi. + +--- + +## Langkah 1: Buat lembar master dengan Aspose.Cells + +Hal pertama yang kami lakukan adalah **membuat Excel workbook C#** style dengan menginstansiasi objek `Workbook`. Objek ini sudah berisi worksheet default, yang akan kami ganti namanya menjadi “Master” dan perlakukan sebagai templat untuk semua halaman detail. + +```csharp +using Aspose.Cells; + +// Step 1: Initialise a new workbook – this automatically gives us one sheet +Workbook workbook = new Workbook(); + +// Grab the first (and only) worksheet that comes with a fresh workbook +Worksheet masterSheet = workbook.Worksheets[0]; + +// Give it a meaningful name – this will be our master sheet +masterSheet.Name = "Master"; +``` + +*Mengapa mengganti nama lembar?* +Nama default seperti “Sheet1” tidak menyampaikan maksud, dan nanti saat Anda menelusuri file Anda ingin tab master langsung dikenali. Penamaan juga mencegah benturan tidak sengaja ketika Anda menambahkan lembar lain. + +--- + +## Langkah 2: Siapkan smart‑marker yang akan menghasilkan lembar detail + +Smart‑marker adalah placeholder yang digantikan Aspose.Cells dengan data pada saat runtime. Dengan menempatkan `{{#detail:DataSheetName}}` di sel **A1**, kami memberi tahu mesin: “Untuk setiap record dalam sumber data, buat lembar baru yang namanya diambil dari field `DataSheetName`.” + +```csharp +// Step 2: Insert a smart‑marker into cell A1. +// The marker #detail tells Aspose.Cells to generate a new sheet per data row. +masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); +``` + +Anggap marker sebagai kartu instruksi kecil yang ditempelkan pada worksheet. Saat pemroses berjalan, ia membaca kartu tersebut, mengambil nilai yang sesuai dari sumber data, lalu menggandakan lembar master ke tab baru. + +--- + +## Langkah 3: Bangun sumber data – duplikat nama lembar dengan sengaja + +Dalam praktik nyata Anda mungkin mengambil ini dari basis data, tetapi untuk demo kami akan menggunakan array dalam memori berisi objek anonim. Perhatikan kedua item menggunakan nama dasar yang sama, `"Detail"`; inilah skenario di mana **mengizinkan nama lembar duplikat** menjadi sangat penting. + +```csharp +// Step 3: Create a data source with two items that share the same base sheet name. +var dataSource = new[] +{ + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } +}; +``` + +Jika Anda mencoba ini tanpa opsi khusus, Aspose.Cells akan melempar pengecualian pada iterasi kedua karena lembar bernama “Detail” sudah ada. Itulah mengapa langkah berikutnya penting. + +--- + +## Langkah 4: Aktifkan nama lembar duplikat + +Aspose.Cells menyediakan `SmartMarkerOptions.DetailSheetNewName`. Menyetelnya ke `DetailSheetNewName.DuplicateAllowed` memberi tahu mesin untuk secara otomatis menambahkan sufiks numerik (mis., “Detail_1”) setiap kali terjadi benturan nama. + +```csharp +// Step 4: Configure SmartMarker options to permit duplicate sheet names. +var smartMarkerOptions = new SmartMarkerOptions +{ + // This makes the library rename clashes to "Detail_1", "Detail_2", etc. + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed +}; +``` + +*Mengapa tidak memberi setiap baris nama unik secara manual?* +Karena sering data sumber tidak menjamin keunikan, terutama ketika pengguna memasukkan teks bebas. Membiarkan pustaka menangani sufiks menghilangkan satu kelas bug. + +--- + +## Langkah 5: Proses smart‑marker dan hasilkan lembar detail + +Sekarang kami memanggil `SmartMarkers.Process`, memberikan baik sumber data maupun opsi yang baru saja kami konfigurasikan. Metode ini melintasi setiap item, menggandakan lembar master, dan mengganti nama salinan sesuai field `DataSheetName` (ditambah sufiks bila diperlukan). + +```csharp +// Step 5: Run the smart‑marker processor – this creates the detail sheets. +masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); +``` + +Setelah baris ini dijalankan Anda akan memiliki tiga tab dalam workbook: + +1. **Master** – templat asli. +2. **Detail** – lembar pertama yang dihasilkan (tidak memerlukan sufiks). +3. **Detail_1** – lembar kedua yang dihasilkan (sufiks ditambahkan secara otomatis). + +Anda dapat memverifikasinya dengan membuka file di Excel; Anda akan melihat dua lembar detail berdampingan. + +--- + +## Langkah 6: Simpan workbook sebagai file XLSX + +Akhirnya, kami menyimpan file ke disk. Metode `Save` secara otomatis memilih format XLSX ketika Anda memberikan ekstensi `.xlsx`. + +```csharp +// Step 6: Persist the workbook – this is the moment we finally “save workbook as XLSX”. +string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; +workbook.Save(outputPath); +``` + +**Pro tip:** Jika Anda perlu men-stream file langsung ke respons web (mis., ASP.NET Core), gunakan `workbook.Save(stream, SaveFormat.Xlsx)` alih-alih path file. + +--- + +## Contoh Lengkap yang Berfungsi + +Di bawah ini adalah program lengkap yang siap dijalankan. Salin‑tempel ke aplikasi console, tekan F5, dan buka file yang dihasilkan untuk melihat hasilnya. + +```csharp +using System; +using Aspose.Cells; + +namespace MasterSheetDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook and rename the default sheet to "Master" + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert a smart‑marker that will generate a detail sheet per data row + masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); + + // 3️⃣ Prepare a data source where two rows share the same sheet name + var dataSource = new[] + { + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } + }; + + // 4️⃣ Allow duplicate sheet names – the library will add "_1", "_2", … + var smartMarkerOptions = new SmartMarkerOptions + { + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed + }; + + // 5️⃣ Process the smart‑markers; this creates the detail sheets + masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); + + // 6️⃣ Save the workbook as an XLSX file + string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Hasil yang diharapkan:** Buka `DuplicateDetailSheets.xlsx` dan Anda akan melihat tiga worksheet—`Master`, `Detail`, dan `Detail_1`. Setiap lembar detail adalah salinan persis dari master, siap Anda isi dengan data spesifik baris nanti. + +--- + +## Pertanyaan Umum & Kasus Edge + +### Bagaimana jika saya membutuhkan lebih dari dua lembar duplikat? + +Tidak masalah. Pengaturan `DuplicateAllowed` yang sama akan terus menambahkan angka bertingkat (`Detail_2`, `Detail_3`, …) hingga setiap baris memiliki tabnya masing‑masing. + +### Bisakah saya menyesuaikan format sufiks? + +Secara bawaan, Aspose.Cells menggunakan garis bawah diikuti indeks numerik. Jika Anda memerlukan pola berbeda (mis., “Detail‑A”, “Detail‑B”), Anda harus memproses workbook setelah `Process` dijalankan, mengiterasi `workbook.Worksheets` dan mengganti nama sesuai keinginan. + +### Apakah pendekatan ini bekerja dengan set data besar (ratusan baris)? + +Ya, tetapi perhatikan penggunaan memori. Setiap lembar yang dihasilkan adalah salinan penuh dari master, sehingga jumlah baris yang sangat besar dapat memperbesar ukuran file dengan cepat. Jika Anda hanya membutuhkan beberapa baris per lembar, pertimbangkan menggunakan `SmartMarkerOptions.RemoveEmptyRows = true` untuk memangkas sel yang tidak terpakai. + +### Apakah file yang dihasilkan benar‑benar file XLSX? + +Tentu saja. Metode `Save` menulis paket Open XML yang diharapkan Excel. Anda bahkan dapat membuka file tersebut dengan LibreOffice atau Google Sheets tanpa konversi apa pun. + +--- + +## Tips untuk Kode Siap Produksi + +| Tip | Why it matters | +|-----|----------------| +| **Dispose `Workbook + +{{< /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/indonesian/net/formulas-functions/_index.md b/cells/indonesian/net/formulas-functions/_index.md index 5a58ea31ed..26c35f6916 100644 --- a/cells/indonesian/net/formulas-functions/_index.md +++ b/cells/indonesian/net/formulas-functions/_index.md @@ -102,6 +102,9 @@ Pelajari cara menentukan bahasa file Excel Anda menggunakan Aspose.Cells .NET. T ### [Memperbarui Rumus Excel Power Query dengan Aspose.Cells .NET](./update-power-query-formulas-aspose-cells-net) Pelajari cara memperbarui rumus Power Query secara terprogram di buku kerja Excel menggunakan Aspose.Cells untuk .NET. Kelola sumber data utama untuk pelaporan dinamis. +### [Cara Menggunakan WRAPCOLS di C# – Membuat Workbook Excel dengan Fungsi Wrap](./how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/) +Pelajari cara menggunakan fungsi WRAPCOLS di C# untuk membuat workbook Excel dengan kemampuan pembungkusan data secara otomatis. + ## Memahami Jenis Rumus Excel Rumus Excel tersedia dalam berbagai bentuk, masing-masing dengan karakteristik unik yang dapat dikelola Aspose.Cells: diff --git a/cells/indonesian/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md b/cells/indonesian/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md new file mode 100644 index 0000000000..b94c6aab1e --- /dev/null +++ b/cells/indonesian/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-30 +description: Buat workbook Excel C# menggunakan Aspose.Cells. Pelajari cara menerapkan + fungsi lambda di Excel, fungsi sequence di Excel, memperluas array di Excel, dan + menyimpan workbook sebagai xlsx. +draft: false +keywords: +- create excel workbook c# +- lambda function excel +- save workbook as xlsx +- sequence function excel +- expand array excel +language: id +og_description: Buat workbook Excel C# dengan cepat. Panduan ini menunjukkan cara + menggunakan fungsi lambda Excel, fungsi sequence Excel, memperluas array Excel, + dan menyimpan workbook sebagai xlsx. +og_title: Buat Workbook Excel C# – Panduan Lambda, SEQUENCE & EXPAND +tags: +- Aspose.Cells +- C# +- Excel automation +title: Buat Workbook Excel C# – Panduan Lambda, SEQUENCE & EXPAND +url: /id/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Membuat Workbook Excel C# – Panduan LAMBDA, SEQUENCE & EXPAND + +Pernah perlu **membuat workbook Excel C#** untuk laporan otomatis, tetapi tidak yakin panggilan API mana yang harus digunakan? Anda tidak sendirian—banyak pengembang mengalami hal yang sama saat pertama kali menyelami pembuatan Excel secara programatik. Dalam panduan ini Anda akan melihat contoh lengkap yang dapat dijalankan yang mencakup semuanya mulai dari **fungsi SEQUENCE Excel** baru hingga **fungsi LAMBDA Excel** yang kuat, dan bahkan cara **memperluas array Excel**. + +Kami juga akan menunjukkan langkah‑langkah tepat untuk **menyimpan workbook sebagai xlsx** sehingga Anda dapat memberikan file tersebut kepada siapa saja yang menggunakan Excel. Pada akhir tutorial ini Anda akan memiliki potongan kode siap produksi yang dapat Anda sisipkan ke proyek .NET apa pun. Tidak ada tautan “lihat dokumentasi” yang samar—hanya kode yang berfungsi hari ini. + +## Apa yang Anda Butuhkan + +- **.NET 6.0 atau lebih baru** – contoh ini menargetkan .NET 6, tetapi versi terbaru lainnya juga dapat digunakan. +- **Aspose.Cells untuk .NET** – instal melalui NuGet (`Install-Package Aspose.Cells`). +- Pemahaman dasar tentang sintaks C# (variabel, objek, dan ekspresi lambda). +- IDE yang Anda sukai (Visual Studio, Rider, atau VS Code). + +Itu saja. Tidak ada interop COM tambahan, tidak ada Office yang harus diinstal di server—Aspose.Cells menangani semuanya di memori. + +## Membuat Workbook Excel C# – Implementasi Langkah‑per‑Langkah + +Di bawah ini kami memecah proses menjadi langkah‑langkah kecil. Setiap langkah memiliki judul yang jelas, cuplikan kode singkat, dan penjelasan **mengapa** kami melakukannya. Silakan salin blok lengkap di akhir dan jalankan sebagai aplikasi konsol. + +### Langkah 1 – Inisialisasi Workbook Baru + +Hal pertama yang harus dilakukan: kita membutuhkan objek workbook kosong yang mewakili file Excel di memori. + +```csharp +using Aspose.Cells; + +// Step 1: Create a new workbook and get the first worksheet +Workbook workbook = new Workbook(); // empty workbook +Worksheet sheet = workbook.Worksheets[0]; // default first sheet +``` + +*Mengapa ini penting:* `Workbook` adalah titik masuk untuk semua operasi Aspose.Cells. Dengan mengambil `Worksheet` pertama kita mendapatkan kanvas tempat kita dapat menulis formula, nilai, atau format. + +> **Tip pro:** Jika Anda memerlukan beberapa lembar, cukup panggil `workbook.Worksheets.Add()` dan simpan referensi ke masing‑masing. + +### Langkah 2 – Gunakan Fungsi SEQUENCE Excel untuk Menghasilkan Data + +**fungsi sequence excel** membuat array dinamis berisi angka tanpa VBA. Kami akan menaruhnya di sel `A1` dan membiarkan Excel memperluasnya secara otomatis. + +```csharp +// Step 2: Generate a 5‑row, 1‑column array from a SEQUENCE +sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; // 1..3 padded with blanks +``` + +*Mengapa ini penting:* `SEQUENCE(3)` menghasilkan `[1,2,3]`. Membungkusnya dengan `EXPAND` memaksa hasilnya menjadi rentang 5 baris, mengisi baris tambahan dengan kosong. Ini memperlihatkan **fungsi sequence excel** dan **expand array excel** sekaligus. + +### Langkah 3 – Gabungkan Angka dengan Fungsi LAMBDA Excel + +Sekarang mari tunjukkan kemampuan **fungsi lambda excel**. Kami akan menjumlahkan angka 1‑5 menggunakan fungsi `REDUCE` baru, yang secara internal mengandalkan lambda. + +```csharp +// Step 3: Aggregate a sequence (sum 1..5) using REDUCE/LAMBDA +sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; // result = 15 +``` + +*Mengapa ini penting:* `REDUCE` mengiterasi array yang dihasilkan oleh `SEQUENCE(5)`, memberi setiap elemen (`b`) ke lambda bersama akumulator (`a`). Lambda `a+b` menambahkan mereka, menghasilkan `15` di `B1`. Ini adalah cara bersih berbasis formula untuk melakukan reduksi tanpa loop di C#. + +### Langkah 4 – Terapkan Fungsi Trigonometri Langsung di Sel + +Fungsi matematika bawaan Excel berguna untuk perhitungan cepat. Kami akan menaruh cotangent dan hyperbolic cotangent di sel yang berdekatan. + +```csharp +// Step 4: Trigonometric functions directly in Excel cells +sheet["C1"].Formula = "COT(PI()/4)"; // evaluates to 1 +sheet["D1"].Formula = "COTH(1)"; // hyperbolic cotangent of 1 +``` + +*Mengapa ini penting:* Menunjukkan bahwa Anda dapat mencampur fungsi matematika klasik dengan formula array dinamis yang lebih baru. Tidak perlu menghitung nilai ini di C# kecuali Anda memiliki alasan performa khusus. + +### Langkah 5 – Hitung Semua Formula + +Aspose.Cells tidak secara otomatis mengevaluasi formula saat Anda menetapkannya. Anda harus memintanya untuk menghitung. + +```csharp +// Step 5: Force calculation so that cells store the results +workbook.CalculateFormula(); +``` + +*Mengapa ini penting:* Setelah pemanggilan ini, properti `Value` setiap sel berisi hasil yang telah dievaluasi, siap untuk disimpan atau dibaca kembali. + +### Langkah 6 – Simpan Workbook sebagai Xlsx + +Akhirnya, kami menyimpan workbook ke disk menggunakan pola **save workbook as xlsx**. + +```csharp +// Step 6: Save the workbook to an Excel file (XLSX format) +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + +workbook.Save(outputPath); +Console.WriteLine($"Workbook saved to: {outputPath}"); +``` + +*Mengapa ini penting:* Metode `Save` secara otomatis mendeteksi ekstensi file. Dengan menggunakan “.xlsx” kami memastikan file kompatibel dengan versi Excel modern. Path mengarah ke desktop untuk memudahkan akses selama pengujian. + +### Contoh Lengkap yang Berfungsi + +Berikut adalah program lengkap yang dapat Anda tempel ke proyek konsol baru. Ia mencakup semua langkah di atas, plus blok verifikasi kecil yang mencetak nilai yang dihitung ke konsol. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialize workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + + // SEQUENCE + EXPAND + sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; + + // REDUCE with LAMBDA + sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; + + // Trig functions + sheet["C1"].Formula = "COT(PI()/4)"; + sheet["D1"].Formula = "COTH(1)"; + + // Calculate formulas + workbook.CalculateFormula(); + + // Verify results (optional) + Console.WriteLine("A1‑A5 (expanded SEQUENCE):"); + for (int i = 0; i < 5; i++) + { + Console.WriteLine($" Row {i + 1}: {sheet.Cells[i, 0].Value ?? "blank"}"); + } + Console.WriteLine($"B1 (sum 1‑5): {sheet["B1"].Value}"); + Console.WriteLine($"C1 (cot(π/4)): {sheet["C1"].Value}"); + Console.WriteLine($"D1 (coth(1)): {sheet["D1"].Value}"); + + // Save workbook + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + workbook.Save(outputPath); + Console.WriteLine($"Workbook saved to: {outputPath}"); + } +} +``` + +**Output yang diharapkan di konsol** + +``` +A1‑A5 (expanded SEQUENCE): + Row 1: 1 + Row 2: 2 + Row 3: 3 + Row 4: blank + Row 5: blank +B1 (sum 1‑5): 15 +C1 (cot(π/4)): 1 +D1 (coth(1)): 1.31303528549933 +Workbook saved to: C:\Users\YourName\Desktop\NewFunctions.xlsx +``` + +Dan ketika Anda membuka *NewFunctions.xlsx* Anda akan melihat angka yang sama tertata di empat kolom pertama. + +![tangkapan layar membuat workbook excel c# dari spreadsheet yang dihasilkan](/images/create-excel-workbook-csharp.png) + +## Kasus Pojok, Tips, dan Pertanyaan Umum + +- **Bagaimana jika saya membutuhkan lebih dari satu lembar?** + Cukup panggil `workbook.Worksheets.Add()` dan ulangi penetapan formula pada setiap objek `Worksheet` baru. + +- **Apakah saya dapat menggunakan versi Excel yang lebih lama?** + Fungsi array dinamis (`SEQUENCE`, `EXPAND`, `REDUCE`) memerlukan Excel 365 atau Excel 2021+. Jika Anda menargetkan versi yang lebih lama, gunakan formula klasik atau hitung nilai di C# sebelum menuliskannya. + +- **Kekhawatiran performa?** + Untuk ribuan baris, menetapkan formula pada sebuah rentang lalu memanggil `CalculateFormula` biasanya lebih cepat daripada melakukan loop dan menetapkan nilai satu‑per‑satu. + +- **Menyimpan ke stream alih‑alih file?** + `work + +{{< /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/indonesian/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md b/cells/indonesian/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md new file mode 100644 index 0000000000..7d2683a1eb --- /dev/null +++ b/cells/indonesian/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md @@ -0,0 +1,214 @@ +--- +category: general +date: 2026-03-30 +description: Pelajari cara menggunakan WRAPCOLS dalam C# untuk membuat buku kerja + Excel, menambahkan data ke Excel, dan memaksa perhitungan formula sambil juga menggunakan + WRAPROWS. +draft: false +keywords: +- how to use wrapcols +- create excel workbook c# +- add data to excel +- force formula calculation +- how to use wraprows +language: id +og_description: Temukan cara menggunakan WRAPCOLS dalam C# untuk membuat workbook + Excel, menambahkan data, memaksa perhitungan rumus, dan memanfaatkan WRAPROWS untuk + rumus array. +og_title: Cara Menggunakan WRAPCOLS di C# – Panduan Lengkap +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Cara Menggunakan WRAPCOLS di C# – Membuat Workbook Excel dengan Fungsi Wrap +url: /id/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cara Menggunakan WRAPCOLS di C# – Membuat Workbook Excel dengan Fungsi Wrap + +Pernah bertanya-tanya **bagaimana cara menggunakan WRAPCOLS** saat Anda mengotomatisasi Excel dengan C#? Anda tidak sendirian—banyak pengembang mengalami kebuntuan ketika mereka perlu mengubah rentang horizontal menjadi array vertikal tanpa menulis banyak kode. Kabar baiknya, Aspose.Cells membuatnya sangat mudah. + +Dalam tutorial ini kami akan menelusuri contoh lengkap yang dapat dijalankan yang menunjukkan **cara menggunakan WRAPCOLS**, cara **membuat workbook Excel C#**‑style, cara **menambahkan data ke Excel**, dan bahkan cara **memaksa perhitungan formula** sehingga hasilnya muncul secara langsung. Kami juga akan menambahkan **cara menggunakan WRAPROWS** untuk transformasi sebaliknya. Pada akhir tutorial Anda akan memiliki program siap‑jalankan dan pemahaman jelas mengapa setiap langkah penting. + +--- + +![How to use WRAPCOLS in C# example](alt="Screenshot showing Excel workbook after using WRAPCOLS in C#") + +## Apa yang Dibahas dalam Panduan Ini + +* Menyiapkan workbook baru dengan Aspose.Cells. +* Mengisi sel secara programatis (**menambahkan data ke Excel**). +* Menerapkan fungsi `WRAPCOLS` untuk mengubah baris menjadi kolom. +* Menggunakan `WRAPROWS` untuk mengubah kolom kembali menjadi baris (**cara menggunakan wraprows**). +* Memaksa mesin mengevaluasi formula secara langsung (**memaksa perhitungan formula**). +* Menyimpan file dan memeriksa output. + +Tidak ada dokumentasi eksternal yang diperlukan—semua yang Anda butuhkan ada di sini. + +--- + +## Cara Menggunakan WRAPCOLS di C# – Implementasi Langkah‑per‑Langkah + +Di bawah ini adalah file sumber lengkap. Silakan salin‑tempel ke proyek konsol baru, tambahkan paket NuGet Aspose.Cells, dan tekan **F5**. + +```csharp +// ------------------------------------------------------------ +// How to Use WRAPCOLS in C# – Complete Example +// ------------------------------------------------------------ +using System; +using Aspose.Cells; + +namespace WrapFunctionsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a fresh workbook (this is how we **create excel workbook c#** style) + Workbook workbook = new Workbook(); + + // 2️⃣ Grab the first worksheet – it's created by default + Worksheet sheet = workbook.Worksheets[0]; + + // 3️⃣ **Add data to Excel**: place two numbers side‑by‑side + sheet.Cells["A1"].PutValue(1); // first value + sheet.Cells["B1"].PutValue(2); // second value + + // 4️⃣ **How to use WRAPCOLS** – turn the horizontal range A1:B1 into a vertical array + // The second argument (1) tells WRAPCOLS to create 1 column per element. + sheet["C1"].Formula = "WRAPCOLS(A1:B1, 1)"; + + // 5️⃣ **How to use WRAPROWS** – the opposite; turn the same range into a horizontal array + // Here we ask for 2 rows per element, which produces a single row with both values. + sheet["C2"].Formula = "WRAPROWS(A1:B1, 2)"; + + // 6️⃣ **Force formula calculation** so the workbook reflects the results immediately + workbook.CalculateFormula(); + + // 7️⃣ Save the workbook to disk – change the path to a folder you own + string outputPath = @"WrapFunctions.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + Console.WriteLine("Check cells C1 and C2 for the WRAPCOLS / WRAPROWS results."); + } + } +} +``` + +### Mengapa Setiap Baris Penting + +| Langkah | Penjelasan | +|------|-------------| +| **1️⃣ Buat workbook baru** | Ini adalah dasar. Aspose.Cells memperlakukan objek `Workbook` sebagai seluruh file Excel, sehingga Anda secara efektif **membuat workbook Excel C#**. | +| **2️⃣ Ambil worksheet pertama** | Workbook baru selalu berisi setidaknya satu worksheet (`Worksheets[0]`). Mengaksesnya lebih awal menghindari kejutan null‑reference. | +| **3️⃣ Tambahkan data ke Excel** | Dengan menggunakan `PutValue` kami **menambahkan data ke Excel** tanpa harus khawatir tentang pemformatan sel. Angka `1` dan `2` adalah data uji untuk fungsi wrap. | +| **4️⃣ Cara menggunakan WRAPCOLS** | `WRAPCOLS(A1:B1, 1)` memberi tahu Excel untuk mengambil rentang `A1:B1` dan menumpahkan nilainya secara vertikal, satu per baris. Hasilnya berada di `C1` dan menumpah ke bawah (`C1`, `C2`, …). | +| **5️⃣ Cara menggunakan WRAPROWS** | `WRAPROWS(A1:B1, 2)` melakukan hal sebaliknya: membuat tumpahan horizontal, menempatkan dua nilai ke dalam satu baris yang dimulai dari `C2`. | +| **6️⃣ Paksa perhitungan formula** | Secara default, Aspose.Cells mungkin menunda perhitungan hingga file dibuka di Excel. Memanggil `CalculateFormula()` **memaksa perhitungan formula** sehingga Anda dapat membaca hasilnya segera setelah menyimpan. | +| **7️⃣ Simpan workbook** | Langkah akhir menulis semuanya ke disk. Buka `WrapFunctions.xlsx` yang dihasilkan untuk melihat hasilnya. | + +--- + +## Membuat Workbook Excel C# – Menyiapkan Lingkungan + +Sebelum menjalankan kode, pastikan Anda memiliki alat yang tepat: + +1. **.NET 6.0+** – Versi LTS terbaru bekerja paling baik. +2. **Visual Studio 2022** (atau VS Code dengan ekstensi C#). +3. **Aspose.Cells untuk .NET** – Instal melalui NuGet: + ```bash + dotnet add package Aspose.Cells + ``` +4. Folder yang dapat ditulisi untuk file output. + +Prasyarat ini minimal; tidak diperlukan interop COM atau instalasi Office, itulah mengapa Aspose.Cells menjadi pilihan populer untuk pembuatan Excel sisi‑server. + +--- + +## Menambahkan Data ke Excel – Praktik Terbaik + +Saat Anda **menambahkan data ke Excel** secara programatis, pertimbangkan tips berikut: + +* **Gunakan `PutValue`** untuk angka mentah atau string; secara otomatis mendeteksi tipe data. +* **Hindari hard‑coding alamat sel** dalam proyek besar—gunakan loop atau named range untuk skalabilitas. +* **Terapkan gaya sel secara hemat**; setiap perubahan gaya menambah beban. Jika memerlukan pemformatan, buat satu objek gaya dan terapkan ke banyak sel. + +Dalam contoh kecil kami hanya menyisipkan dua angka, tetapi pola yang sama dapat diskalakan ke ribuan baris. + +--- + +## Cara Menggunakan WRAPROWS – Contoh Array Horizontal + +Jika Anda membutuhkan kebalikan dari `WRAPCOLS`, `WRAPROWS` adalah pilihan utama. Sintaksnya adalah: + +``` +WRAPROWS(source_range, [rows_per_item]) +``` + +* `source_range` – rentang yang ingin Anda transformasikan. +* `rows_per_item` – opsional; memberi tahu Excel berapa banyak baris yang ditempati setiap elemen. Dalam demo kami menggunakan `2` untuk memaksa kedua nilai berada pada satu baris. + +Anda dapat bereksperimen dengan mengubah argumen kedua: + +```csharp +// Example: split each value into its own column, three rows per item +sheet["D1"].Formula = "WRAPROWS(A1:B1, 3)"; +``` + +Buka workbook dan Anda akan melihat nilai‑nilai menumpah melintasi tiga kolom, masing‑masing kolom berisi angka asli yang diulang sesuai kebutuhan. + +--- + +## Memaksa Perhitungan Formula – Kapan dan Mengapa + +Anda mungkin bertanya, “Apakah saya benar‑benar perlu memanggil `CalculateFormula()`?” Jawabannya **ya**, jika: + +* Anda berencana membaca nilai yang dihitung **secara programatis** setelah menyimpan. +* Anda ingin memastikan file terbuka di Excel dengan hasil yang sudah ditampilkan. +* Anda menjalankan di **lingkungan headless** (misalnya, API web) di mana tidak ada pengguna yang secara manual memicu perhitungan ulang. + +Melewatkan langkah ini tidak akan merusak workbook, tetapi sel akan menampilkan teks formula (`=WRAPCOLS(...)`) alih‑alih nilai yang dihitung sampai Excel melakukan perhitungan ulang. + +--- + +## Output yang Diharapkan – Apa yang Harus Dilihat + +Setelah menjalankan program dan membuka `WrapFunctions.xlsx`: + +| Sel | Formula | Nilai yang Ditampilkan | +|------|---------|------------------------| +| **C1** | `=WRAPCOLS(A1:B1, 1)` | `1` (di C1) dan `2` (di C2) – daftar vertikal | +| **C2** | `=WRAPROWS(A1:B1, 2)` | `1` di C2 dan `2` di D2 – daftar horizontal | + +Jadi Anda akan melihat kolom nilai yang dimulai dari **C1** dan baris nilai yang dimulai dari **C2**. Ini mengonfirmasi kedua fungsi wrap berperilaku sesuai harapan. + +--- + +## Kasus Edge & Variasi + +| Skenario | Apa yang berubah? | Saran penyesuaian | +|----------|-------------------|-------------------| +| **Rentang besar (A1:Z1)** | Lebih banyak nilai yang ditumpahkan secara vertikal | Tingkatkan argumen kedua `WRAPCOLS` jika Anda menginginkan beberapa kolom per grup. | +| **Data non‑numeric** | String diperlakukan sama | Tidak ada perubahan kode; `PutValue` menerima objek apa pun. | +| **Rentang dinamis** | Anda tidak mengetahui ukuran pada waktu kompilasi | Gunakan `sheet.Cells.MaxDataColumn` dan `MaxDataRow` untuk membangun string alamat. | +| **Beberapa worksheet** | Perlu menerapkan fungsi wrap pada sheet berbeda | Referensikan worksheet yang tepat (`workbook.Worksheets["Sheet2"]`). | + +Dengan mengantisipasi variasi ini, Anda dapat menyesuaikan pola inti untuk hampir semua skenario otomasi. + +--- + +## Pro Tips dari Lapangan + +* **Pro tip:** Bungkus pembuatan workbook dalam blok `using` jika Anda menargetkan .NET Core 3.1+ untuk memastikan semua sumber daya dilepaskan dengan cepat. +* **Waspadai:** Menetapkan formula yang sama pada rentang besar tanpa memanggil `CalculateFormula()` dapat menyebabkan bottleneck kinerja. Proses formula secara batch bila memungkinkan. +* **Tip:** Jika Anda perlu membaca kembali nilai yang dihitung dalam kode, panggil ` + +{{< /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/indonesian/net/tables-and-lists/_index.md b/cells/indonesian/net/tables-and-lists/_index.md index b65ebf5d38..ee2d6f038a 100644 --- a/cells/indonesian/net/tables-and-lists/_index.md +++ b/cells/indonesian/net/tables-and-lists/_index.md @@ -45,6 +45,8 @@ Tanuld meg, hogyan formázhatsz listaobjektumokat Excelben az Aspose.Cells for . Tanuld meg, hogyan konvertálhatsz Excel-táblázatokat ODS-sé az Aspose.Cells for .NET segítségével egyszerű, lépésről lépésre bemutató oktatóanyagunkkal. ### [Táblázat konvertálása tartományba Excelben](./converting-table-to-range/) Az Aspose.Cells for .NET segítségével könnyedén konvertálhatsz Excel-táblázatokat tartományokká. Kövesd lépésről lépésre szóló útmutatónkat, hogy az adatkezelés gyerekjáték legyen. +### [Buat Tabel dari Rentang di C# – Tutorial Lengkap Aspose.Cells](./create-table-from-range-in-c-complete-aspose-cells-tutorial/) +Pelajari cara membuat tabel dari rentang data di Excel menggunakan Aspose.Cells dengan C#. ### [Táblázat konvertálása tartomnyá opciókkal](./converting-table-to-range-with-options/) Az Aspose.Cells for .NET segítségével lépésről lépésre haladva táblázatokat alakíthatsz át tartományokká Excelben. Fejleszd adatkezelési készségeidet Excelben. ### [Tábla olvasása és írása lekérdezési adatforrással](./reading-and-writing-table-with-query-data-source/) diff --git a/cells/indonesian/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md b/cells/indonesian/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md new file mode 100644 index 0000000000..9d6943c15e --- /dev/null +++ b/cells/indonesian/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md @@ -0,0 +1,230 @@ +--- +category: general +date: 2026-03-30 +description: Buat tabel dari rentang di C# dengan Aspose.Cells – tambahkan data ke + sel, konversi rentang menjadi ListObject, dan simpan Excel tanpa filter. +draft: false +keywords: +- create table from range +- create excel workbook c# +- add data to cells +- convert range to listobject +- save excel without filter +language: id +og_description: Buat tabel dari rentang di C# dengan Aspose.Cells. Pelajari cara menambahkan + data ke sel, mengonversi rentang menjadi ListObject, dan menyimpan Excel tanpa filter. +og_title: Buat Tabel dari Rentang di C# – Tutorial Lengkap Aspose.Cells +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Buat Tabel dari Rentang di C# – Tutorial Lengkap Aspose.Cells +url: /id/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Membuat Tabel dari Rentang di C# – Tutorial Lengkap Aspose.Cells + +Pernah perlu **membuat tabel dari rentang** di C# tetapi tidak yakin bagaimana mengubah blok data biasa menjadi tabel Excel yang lengkap? Anda tidak sendirian. Baik Anda mengotomatiskan laporan, menghasilkan kartu skor, atau sekadar membersihkan data untuk analisis lanjutan, menguasai trik kecil ini dapat menghemat banyak pekerjaan manual. + +Dalam panduan ini kita akan melangkah melalui seluruh proses: **create excel workbook c#**, **add data to cells**, **convert range to ListObject**, dan akhirnya **save excel without filter**. Pada akhir tutorial Anda akan memiliki potongan kode siap‑jalankan yang dapat ditempelkan ke proyek .NET mana pun yang merujuk pada Aspose.Cells. + +--- + +## Prasyarat + +- .NET 6+ (atau .NET Framework 4.7.2+) terpasang +- Aspose.Cells untuk .NET (paket NuGet `Aspose.Cells`) – versi terbaru pada saat penulisan (23.10) berfungsi dengan sempurna. +- Pemahaman dasar tentang sintaks C# – tidak diperlukan pengetahuan mendalam tentang interop Excel. + +Jika semua sudah ada, mari kita mulai. + +--- + +## Langkah 1: Membuat Workbook Excel di C# + +Pertama kita butuh objek workbook baru. Anggap saja ini sebagai file Excel kosong yang nantinya akan menampung tabel kita. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is equivalent to opening a blank .xlsx file. +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (default) worksheet. +``` + +> **Tip profesional:** `Workbook()` tanpa argumen membuat workbook dengan satu lembar kerja default, yang sempurna untuk demo cepat. Jika Anda membutuhkan beberapa lembar, Anda dapat menambahkannya nanti dengan `workbook.Worksheets.Add()`. + +--- + +## Langkah 2: Menambahkan Data ke Sel + +Sekarang kita akan mengisi lembar kerja dengan set data kecil – dua kolom (Name, Score) dan tiga baris nilai. Ini menunjukkan **add data to cells** dengan cara yang bersih dan mudah dibaca. + +```csharp +// Header row +worksheet.Cells["A1"].PutValue("Name"); +worksheet.Cells["B1"].PutValue("Score"); + +// Data rows +worksheet.Cells["A2"].PutValue("Alice"); +worksheet.Cells["B2"].PutValue(85); +worksheet.Cells["A3"].PutValue("Bob"); +worksheet.Cells["B3"].PutValue(92); +``` + +Mengapa menggunakan `PutValue`? Ia secara otomatis mendeteksi tipe data (string vs. numerik) dan memformat sel sesuai, sehingga Anda tidak perlu mengutak‑atik objek `Style` untuk skenario sederhana. + +> **Output yang diharapkan:** Setelah langkah ini, jika Anda membuka workbook di Excel Anda akan melihat grid dua kolom dengan header “Name” dan “Score”, diikuti oleh dua baris data. + +--- + +## Langkah 3: Mengonversi Rentang menjadi ListObject (Tabel) + +Inilah saat magis terjadi: mengubah rentang biasa menjadi tabel Excel (disebut **ListObject** dalam API Aspose.Cells). Ini tidak hanya menambah gaya visual tetapi juga mengaktifkan fitur bawaan seperti penyortiran, penyaringan, dan referensi terstruktur. + +```csharp +// Define the range boundaries. +// startRow and startColumn are zero‑based indexes. +// rowCount includes the header row. +int startRow = 0; // Row 1 in Excel +int startColumn = 0; // Column A +int rowCount = 3; // Header + 2 data rows +int columnCount = 2; // Two columns: Name & Score + +// Add a ListObject to the worksheet and retrieve the object. +int listIndex = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); +ListObject table = worksheet.ListObjects[listIndex]; + +// Turn on the UI filter dropdowns so users can interact with the table. +table.ShowAutoFilter = true; +``` + +> **Mengapa menggunakan ListObject?** +> - **Referensi terstruktur**: Rumus dapat merujuk ke kolom berdasarkan nama. +> - **UI auto‑filter**: Pengguna mendapatkan panah dropdown untuk penyaringan cepat. +> - **Styling**: Anda dapat menerapkan gaya tabel bawaan dengan satu baris kode nanti. + +--- + +## Langkah 4: Menghapus UI AutoFilter (Simpan Excel Tanpa Filter) + +Kadang‑kadang Anda memerlukan lembar bersih tanpa panah filter – misalnya, ketika workbook adalah laporan final. Aspose.Cells 23.10 memperkenalkan cara sederhana untuk menghilangkan UI filter sepenuhnya. + +```csharp +// Remove the filter UI completely. +table.AutoFilter = null; // Clears the underlying filter object. +table.ShowAutoFilter = false; // Hides the dropdown arrows. +``` + +Perhatikan bahwa kita tidak menghapus data; kita hanya mematikan kontrol visual filter. Ini memenuhi kebutuhan **save excel without filter**. + +--- + +## Langkah 5: Menyimpan Workbook + +Akhirnya, tulis workbook ke disk. File akan berisi tabel tetapi tanpa UI filter apa pun. + +```csharp +// Choose a folder you have write access to. +string outputPath = @"C:\Temp\NoAutoFilter.xlsx"; +workbook.Save(outputPath); +``` + +Buka `NoAutoFilter.xlsx` di Excel – Anda akan melihat tabel dengan format default, tetapi tanpa panah filter. Data tetap utuh, dan file siap didistribusikan. + +--- + +![Screenshot showing create table from range in Excel using Aspose.Cells](image.png "Create table from range screenshot") + +*Teks alt gambar:* **Screenshot showing create table from range in Excel using Aspose.Cells** – bukti visual bahwa tabel ada tanpa dropdown filter. + +--- + +## Contoh Lengkap yang Dapat Dijalankan + +Berikut adalah program lengkap yang dapat Anda salin‑tempel ke aplikasi konsol. Ia mencakup semua langkah di atas, plus beberapa komentar tambahan untuk kejelasan. + +```csharp +using System; +using Aspose.Cells; + +namespace AsposeTableDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add data to cells – this is the “add data to cells” part. + worksheet.Cells["A1"].PutValue("Name"); + worksheet.Cells["B1"].PutValue("Score"); + worksheet.Cells["A2"].PutValue("Alice"); + worksheet.Cells["B2"].PutValue(85); + worksheet.Cells["A3"].PutValue("Bob"); + worksheet.Cells["B3"].PutValue(92); + + // 3️⃣ Convert the range into a ListObject (i.e., create table from range). + int startRow = 0, startColumn = 0, rowCount = 3, columnCount = 2; + int listIdx = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); + ListObject table = worksheet.ListObjects[listIdx]; + table.ShowAutoFilter = true; // optional UI filter + + // 4️⃣ Remove the AutoFilter UI – “save excel without filter”. + table.AutoFilter = null; + table.ShowAutoFilter = false; + + // 5️⃣ Save the workbook. + string filePath = @"C:\Temp\NoAutoFilter.xlsx"; + workbook.Save(filePath); + + Console.WriteLine($"Workbook saved to {filePath}"); + } + } +} +``` + +Jalankan program, lalu buka `C:\Temp\NoAutoFilter.xlsx`. Anda akan melihat tabel yang terformat rapi, tanpa panah filter, dan data yang telah kami masukkan. Itulah seluruh alur kerja **create excel workbook c#** dalam kurang dari 60 baris kode. + +--- + +## Pertanyaan yang Sering Diajukan & Kasus Khusus + +**T: Bagaimana jika rentang data saya tidak bersebelahan?** +J: Aspose.Cells memerlukan rentang persegi panjang untuk `ListObjects.Add`. Jika data Anda tidak bersebelahan, buatlah rentang sementara terlebih dahulu (misalnya, salin bagian‑bagian ke lembar kerja baru) lalu konversi rentang tersebut. + +**T: Bisakah saya menerapkan gaya tabel khusus?** +J: Tentu. Setelah membuat `ListObject`, atur `table.TableStyleType = TableStyleType.TableStyleMedium9;` (atau salah satu dari 65 gaya bawaan). Ini cara yang bagus untuk menyesuaikan tabel dengan identitas perusahaan Anda. + +**T: Bagaimana cara mempertahankan filter tetapi menyembunyikan panahnya?** +J: Logika filter berada di `table.AutoFilter`. Menetapkan `ShowAutoFilter = false` hanya menyembunyikan UI; filter yang mendasarinya tetap ada. Jadi Anda masih dapat memfilter baris secara programatis nanti. + +**T: Bagaimana dengan dataset besar (10rb+ baris)?** +J: API yang sama tetap berfungsi, tetapi pertimbangkan menonaktifkan perhitungan otomatis (`workbook.CalcEngine = false`) sebelum melakukan penyisipan massal untuk meningkatkan kinerja, kemudian aktifkan kembali setelahnya. + +--- + +## Penutup + +Kami baru saja membahas cara **membuat tabel dari rentang** di C# menggunakan Aspose.Cells, langkah demi langkah—dari **create excel workbook c#**, melalui **add data to cells**, ke **convert range to ListObject**, dan akhirnya **save excel without filter**. Kode lengkap, dapat dijalankan, dan siap produksi. + +Selanjutnya, Anda mungkin ingin menjelajahi: + +- Menambahkan conditional formatting untuk menyoroti skor tertinggi. +- Mengekspor workbook ke PDF dengan `workbook.Save("Report.pdf", SaveFormat.Pdf);`. +- Menggunakan `table.Columns["Score"].DataBodyRange.Sort` untuk menyortir tabel secara programatis. + +Silakan bereksperimen dengan set data berbeda, gaya tabel, atau bahkan beberapa lembar kerja. API ini cukup fleksibel untuk menangani apa saja, mulai dari papan skor kecil hingga buku besar keuangan yang masif. + +Ada pertanyaan atau mengalami kendala? Tinggalkan komentar di bawah atau hubungi saya di GitHub. Selamat coding, dan nikmati mengubah rentang mentah menjadi tabel Excel yang elegan! + +{{< /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/italian/net/conversion-to-pdf/_index.md b/cells/italian/net/conversion-to-pdf/_index.md index 21699144fd..ff79ec6edc 100644 --- a/cells/italian/net/conversion-to-pdf/_index.md +++ b/cells/italian/net/conversion-to-pdf/_index.md @@ -34,6 +34,8 @@ Ma aspetta, c'è di più! E se volessi convertire i grafici dai tuoi fogli Excel Converti facilmente i fogli di calcolo Excel in PDF con Aspose.Cells per .NET! Segui la nostra guida passo passo per un'esperienza impeccabile. ### [Convertire il grafico in PDF in .NET](./convert-chart-to-pdf/) Scopri come convertire grafici Excel in PDF in .NET usando Aspose.Cells con questa guida passo passo! Perfetta per programmatori di tutti i livelli. +### [Salva cartella di lavoro come PDF con Aspose.Cells – Guida completa passo‑passo](./save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/) +Impara a salvare una cartella di lavoro Excel in PDF con Aspose.Cells, seguendo tutti i passaggi necessari in modo chiaro e dettagliato. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/italian/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md b/cells/italian/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md new file mode 100644 index 0000000000..84d1f42a17 --- /dev/null +++ b/cells/italian/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-03-30 +description: Impara come salvare una cartella di lavoro come PDF usando Aspose.Cells. + Questo tutorial copre anche l'esportazione di un foglio di lavoro in PDF, come esportare + Excel in PDF e creare PDF da un foglio di lavoro. +draft: false +keywords: +- save workbook as pdf +- export worksheet to pdf +- how to export excel to pdf +- save excel as pdf +- create pdf from worksheet +language: it +og_description: Salva la cartella di lavoro come PDF facilmente. Questa guida mostra + come esportare un foglio di lavoro in PDF, come esportare Excel in PDF e come creare + un PDF da un foglio di lavoro usando C#. +og_title: Salva cartella di lavoro come PDF con Aspose.Cells – Guida completa +tags: +- Aspose.Cells +- C# +- PDF generation +title: Salva cartella di lavoro come PDF con Aspose.Cells – Guida completa passo‑passo +url: /it/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Salva cartella di lavoro come pdf – Guida completa passo‑passo + +Hai mai avuto bisogno di **save workbook as pdf** ma non eri sicuro quale libreria mantenesse intatti i tuoi numeri? Non sei solo. In molti progetti dobbiamo trasformare i dati Excel in un PDF curato, e farlo nel modo giusto fa risparmiare ore di debug. + +In questo tutorial ti guideremo attraverso il codice esatto di cui hai bisogno per **save workbook as pdf** con Aspose.Cells, e lungo il percorso ti mostreremo anche come **export worksheet to pdf**, risponderemo alle domande su *how to export excel to pdf* e dimostreremo un modo pulito per **create pdf from worksheet** con impostazioni di precisione personalizzate. + +Alla fine della guida avrai un'app console C# pronta all'uso che produce un PDF contenente solo le cifre significative di cui ti interessa. Nessun extra superfluo, solo una soluzione solida e pronta per la produzione. + +--- + +## Cosa imparerai + +- Come configurare un nuovo `Workbook` e puntare al suo primo foglio di lavoro. +- Il metodo esatto per **save workbook as pdf** preservando la precisione numerica. +- Perché la proprietà `SignificantDigits` è importante quando **export worksheet to pdf**. +- Problemi comuni quando provi a **how to export excel to pdf** e come evitarli. +- Metodi rapidi per **save excel as pdf** con diverse opzioni di pagina, e come **create pdf from worksheet** programmaticamente. + +### Prerequisiti + +- .NET 6.0 o successivo (il codice funziona anche con .NET Framework 4.5+). +- Una licenza valida di Aspose.Cells (o una licenza temporanea gratuita per i test). +- Visual Studio 2022 o qualsiasi IDE compatibile con C#. + +Se hai già questi requisiti, immergiamoci. + +--- + +## Passo 1 – Installa Aspose.Cells e inizializza la Workbook + +Prima di tutto: hai bisogno del pacchetto NuGet Aspose.Cells. Apri un terminale nella cartella del tuo progetto ed esegui: + +```bash +dotnet add package Aspose.Cells +``` + +Una volta installato il pacchetto, crea un nuovo oggetto `Workbook`. Questo è l'oggetto che alla fine **save workbook as pdf**. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialise a fresh workbook – think of it as a blank Excel file. + Workbook workbook = new Workbook(); + + // Grab the first worksheet (index 0). This is where we’ll put our data. + Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Perché questo passo?* +Creare la workbook ti fornisce una tela pulita, e selezionare il primo foglio di lavoro garantisce che tu stia lavorando in una posizione nota. Saltare questo passaggio può portare a errori di *null reference* quando in seguito proverai a **export worksheet to pdf**. + +--- + +## Passo 2 – Inserisci dati ad alta precisione + +Ora inseriremo un numero che ha più cifre decimali di quante ne vogliamo effettivamente mostrare nel PDF. Questo dimostra come l'impostazione `SignificantDigits` riduca l'output. + +```csharp + // Place a high‑precision number in cell A1. + worksheet.Cells["A1"].PutValue(1234.56789); +``` + +Se esegui il programma ora e chiami semplicemente `workbook.Save("output.pdf")`, il PDF mostrerà il valore completo `1234.56789`. Va bene per alcuni casi, ma spesso è necessario arrotondare a un numero specifico di cifre significative — soprattutto per i report finanziari. + +--- + +## Passo 3 – Configura le opzioni di salvataggio PDF + +Aspose.Cells ti offre un controllo fine tramite `PdfSaveOptions`. La proprietà di cui ci interessa è `SignificantDigits`. Impostandola a `4` indica al motore di mantenere solo quattro cifre significative quando **save workbook as pdf**. + +```csharp + // Configure PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 // This trims the number to 1235 in the PDF. + }; +``` + +*Perché usare `SignificantDigits`?* +Quando **create pdf from worksheet**, spesso è necessario rispettare le regole di arrotondamento normative. Questa opzione effettua l'arrotondamento per te, così non devi formattare manualmente ogni cella. + +--- + +## Passo 4 – Esporta il foglio di lavoro in PDF con le opzioni + +Ecco il momento della verità: effettuiamo realmente **save workbook as pdf** usando le opzioni che abbiamo appena definito. + +```csharp + // Save the workbook as a PDF using the configured options. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + } +} +``` + +Eseguendo il programma verrà generato un file chiamato `SignificantDigits.pdf` nella cartella di output del tuo progetto. Aprilo e vedrai `1235` nella cella A1 — il numero è stato arrotondato a quattro cifre significative. + +*Punto chiave:* Il metodo `Save` accetta sia il percorso del file sia le `PdfSaveOptions`. Se ometti le opzioni, tornerai al comportamento predefinito, che potrebbe non soddisfare i requisiti di precisione. + +--- + +## Passo 5 – Verifica l'output e risolvi i problemi comuni + +### Risultato atteso + +- Un PDF di una pagina chiamato `SignificantDigits.pdf`. +- La cella A1 mostra `1235` (quattro cifre significative). +- Non compaiono fogli di lavoro aggiuntivi o contenuti nascosti. + +### Domande frequenti + +| Question | Answer | +|----------|--------| +| **E se ho bisogno di più di un foglio di lavoro?** | Scorri `workbook.Worksheets` e applica le stesse `PdfSaveOptions` quando salvi ogni foglio singolarmente, oppure imposta `OnePagePerSheet = true` nelle opzioni. | +| **Posso mantenere il formato numerico originale?** | Sì – imposta `PdfSaveOptions.AllColumnsInOnePage = true` e lascia che le regole di formattazione di Excel se ne occupino, ma ricorda che `SignificantDigits` sovrascriverà comunque la precisione numerica. | +| **Funziona con file .xlsx già esistenti?** | Assolutamente. Sostituisci `new Workbook()` con `new Workbook("input.xlsx")` e il resto del codice rimane invariato. | +| **E se il PDF è vuoto?** | Verifica che la workbook contenga effettivamente dati e che tu stia salvando in una directory scrivibile. Inoltre, assicurati che la licenza Aspose.Cells sia correttamente applicata; una versione di prova non licenziata può limitare l'output. | + +### Consiglio professionale + +Se hai bisogno di **save excel as pdf** con un'orientazione di pagina specifica, imposta `pdfSaveOptions.PageSetup.Orientation = PageOrientation.Landscape;` prima di chiamare `Save`. Questa piccola modifica spesso ti evita di dover regolare manualmente il PDF in seguito. + +--- + +## Varianti: Esportare più fogli o impostazioni di pagina personalizzate + +### Esporta tutti i fogli in una sola chiamata + +```csharp +PdfSaveOptions allSheetsOptions = new PdfSaveOptions +{ + SignificantDigits = 4, + OnePagePerSheet = true // Each worksheet gets its own page. +}; + +workbook.Save("AllSheets.pdf", allSheetsOptions); +``` + +### Esporta un singolo foglio come PDF + +Se vuoi solo **export worksheet to pdf** per un foglio specifico, usa il metodo `ToPdf` dell'oggetto `Worksheet`: + +```csharp +Worksheet sheet = workbook.Worksheets["Sheet2"]; +sheet.ToPdf("Sheet2.pdf", pdfSaveOptions); +``` + +### Regola i margini della pagina + +```csharp +pdfSaveOptions.PageSetup.TopMargin = 20; +pdfSaveOptions.PageSetup.BottomMargin = 20; +``` + +Queste modifiche ti permettono di perfezionare il documento finale senza post‑elaborazione. + +--- + +## Esempio completo funzionante + +Di seguito trovi il programma completo, pronto per il copia‑incolla, che incorpora tutto ciò di cui abbiamo parlato. Salvalo come `Program.cs` ed esegui `dotnet run`. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and select the first worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Insert a high‑precision number. + worksheet.Cells["A1"].PutValue(1234.56789); + + // 3️⃣ Set PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 + }; + + // 4️⃣ Save the workbook as PDF. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + + // Optional: Export another sheet with custom settings. + // Worksheet sheet2 = workbook.Worksheets.Add("Report"); + // sheet2.Cells["B2"].PutValue(9876.54321); + // sheet2.ToPdf("Report.pdf", pdfSaveOptions); + } +} +``` + +**Risultato:** Apri `SignificantDigits.pdf` – vedrai il valore arrotondato `1235`. La dimensione del file è contenuta e il layout corrisponde al foglio Excel originale. + +--- + +## Conclusione + +Ti abbiamo appena mostrato come **save workbook as pdf** usando Aspose.Cells, coprendo tutto, dalla configurazione di base alle opzioni avanzate come **export worksheet to pdf**, **how to export excel to pdf** e **create pdf from worksheet** con controllo numerico preciso. + +L'approccio è semplice, richiede solo poche righe di C# e funziona su tutte le versioni di .NET. Successivamente, potresti esplorare l'aggiunta di intestazioni/piedi pagina, l'inserimento di immagini o la generazione di PDF da modelli — ognuno dei quali si basa sulla base che ora possiedi. + +Hai un'idea particolare che vuoi provare? Forse devi proteggere il PDF con password o unire diversi PDF insieme. Sono estensioni naturali, e l'API di Aspose.Cells ti copre. Immergiti, sperimenta e lascia che la libreria faccia il lavoro pesante. + +*Buon coding! Se hai incontrato problemi, lascia un commento qui sotto e risolveremo insieme.* + +![save workbook as pdf screenshot](/images/save-workbook-as-pdf.png){alt="esempio di save workbook as pdf che mostra il file PDF generato"} + +{{< /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/italian/net/converting-excel-files-to-other-formats/_index.md b/cells/italian/net/converting-excel-files-to-other-formats/_index.md index 40c0bcbd1e..873758741f 100644 --- a/cells/italian/net/converting-excel-files-to-other-formats/_index.md +++ b/cells/italian/net/converting-excel-files-to-other-formats/_index.md @@ -56,6 +56,8 @@ Scopri come convertire file Excel in PDF/A-1a per scopi di archiviazione utilizz Scopri come convertire JSON in CSV programmaticamente in .NET utilizzando Aspose.Cells. Segui la nostra guida passo passo per garantire una trasformazione dei dati impeccabile. ### [Conversione di file Excel in PPTX tramite programmazione in .NET](./converting-excel-file-to-pptx/) Scopri come convertire un file Excel in una presentazione PowerPoint (PPTX) a livello di programmazione utilizzando Aspose.Cells per .NET con questa guida dettagliata. +### [Creare PowerPoint da Excel – Guida passo‑passo C#](./create-powerpoint-from-excel-step-by-step-c-guide/) +Scopri come creare una presentazione PowerPoint da un file Excel utilizzando Aspose.Cells per .NET in questa guida passo passo. ### [Specificare HTML CrossType nell'output HTML a livello di programmazione in .NET](./specifying-html-crosstype-in-output-html/) Scopri come specificare HTML CrossType in Aspose.Cells per .NET. Segui il nostro tutorial passo passo per convertire i file Excel in HTML con precisione. ### [Lettura di fogli di calcolo numerici in modo programmatico in .NET](./reading-numbers-spreadsheet/) diff --git a/cells/italian/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md b/cells/italian/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md new file mode 100644 index 0000000000..932ebdb790 --- /dev/null +++ b/cells/italian/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md @@ -0,0 +1,253 @@ +--- +category: general +date: 2026-03-30 +description: Crea PowerPoint da Excel rapidamente usando Aspose.Cells e Aspose.Slides. + Scopri come esportare il foglio di lavoro come immagine e salvare la presentazione + come PPTX in C#. +draft: false +keywords: +- create powerpoint from excel +- convert excel to powerpoint +- export worksheet as image +- save presentation as pptx +- export excel chart as picture +language: it +og_description: Crea PowerPoint da Excel in C# con Aspose. Esporta il foglio di lavoro + come immagine, mantieni le forme modificabili e salva il risultato come PPTX. +og_title: Crea PowerPoint da Excel – Tutorial completo C# +tags: +- Aspose +- C# +- Office Automation +title: Crea PowerPoint da Excel – Guida passo‑passo C# +url: /it/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crea PowerPoint da Excel – Tutorial Completo C# + +Ti è mai capitato di **creare PowerPoint da Excel** ma non eri sicuro quale libreria potesse mantenere i tuoi grafici modificabili? Non sei il solo. In molti scenari di reporting vorrai trasformare un foglio di calcolo in una presentazione senza perdere la possibilità di modificare le caselle di testo in seguito. Questa guida ti mostra esattamente come **convertire Excel in PowerPoint** usando Aspose.Cells e Aspose.Slides, coprendo anche come **esportare il foglio di lavoro come immagine** e infine **salvare la presentazione come PPTX**. + +Passeremo in rassegna ogni riga di codice, spiegheremo *perché* ogni impostazione è importante e discuteremo anche cosa fare se il tuo workbook contiene grafici complessi che preferisci esportare come immagine. Alla fine avrai un'app console C# pronta all'uso che prende `ShapesDemo.xlsx` e genera `Result.pptx` – il tutto con caselle di testo modificabili e immagini nitide. + +## Cosa ti servirà + +- .NET 6.0 o versioni successive (l'API funziona anche con .NET Framework, ma .NET 6 è l'opzione ideale). +- Pacchetti NuGet **Aspose.Cells** e **Aspose.Slides** (le licenze di prova gratuite funzionano per i test). +- Una conoscenza di base della sintassi C# – se sai scrivere un `Console.WriteLine`, sei pronto. + +Nessun interop COM aggiuntivo, nessun Office installato sul server e nessun copia‑incolla manuale di immagini. Tutto è gestito programmaticamente. + +--- + +## Crea PowerPoint da Excel – Carica il Workbook e Imposta le Opzioni di Esportazione + +La prima cosa che facciamo è aprire il file Excel e indicare ad Aspose.Cells come vogliamo che il foglio venga renderizzato. L'oggetto `ImageOrPrintOptions` è dove avviene la magia: abilitiamo `ExportShapes` e `ExportEditableTextBoxes` in modo che tutte le forme (inclusi i grafici) diventino parte della diapositiva **e** rimangano modificabili dopo la conversione. + +```csharp +using Aspose.Cells; +using Aspose.Slides; + +// 1️⃣ Load the Excel workbook +string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; +Workbook workbook = new Workbook(excelPath); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first sheet + +// 2️⃣ Configure image export – keep shapes editable +ImageOrPrintOptions imageOptions = new ImageOrPrintOptions +{ + OnePagePerSheet = true, // Export the whole sheet as one slide + ExportShapes = true, // Include shapes (charts, drawings) + ExportEditableTextBoxes = true // Make text boxes editable in PPTX +}; +``` + +**Perché queste impostazioni?** +- `OnePagePerSheet` impedisce che il foglio venga diviso in più diapositive – ottieni un'unica immagine a piena dimensione. +- `ExportShapes` indica ad Aspose.Cells di rasterizzare i grafici *e* le forme vettoriali, preservandone l'aspetto. +- `ExportEditableTextBoxes` è il segreto che ti permette di fare doppio clic su una casella di testo in PowerPoint e modificare il testo senza riaprire Excel. + +> **Consiglio:** Se ti serve solo un'immagine statica di un grafico, imposta `ExportShapes = false` e utilizza il metodo `ExportExcelChartAsPicture` più tardi (vedi la sezione finale). + +--- + +## Converti Excel in PowerPoint – Genera Immagine dal Foglio di Lavoro + +Con le opzioni pronte, ora trasformiamo il foglio di lavoro in un `System.Drawing.Image`. Il `WorksheetToImageConverter` si occupa del lavoro pesante, applicando le impostazioni appena definite. + +```csharp +// 3️⃣ Convert the worksheet to an image using the options above +WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); +System.Drawing.Image sheetImage = converter.ConvertToImage(0, imageOptions); +``` + +L'argomento `0` indica la prima pagina (ne abbiamo solo una grazie a `OnePagePerSheet`). L'`sheetImage` risultante mantiene il DPI originale, quindi la tua diapositiva non apparirà pixelata anche su display ad alta risoluzione. + +--- + +## Salva la Presentazione come PPTX – Inserisci Immagine in una Diapositiva + +Ora creiamo un nuovo file PowerPoint, aggiungiamo una diapositiva e inseriamo il bitmap. Aspose.Slides tratta l'immagine come una forma *picture frame*, che puoi successivamente ridimensionare o spostare come qualsiasi oggetto nativo di PowerPoint. + +```csharp +// 4️⃣ Create a new PowerPoint presentation +Presentation presentation = new Presentation(); +ISlide slide = presentation.Slides[0]; // The default blank slide + +// Add the Excel‑derived image as a picture frame +slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, // Simple rectangle container + 0, 0, // Top‑left corner (0,0) + sheetImage.Width, // Width of the picture + sheetImage.Height, // Height of the picture + sheetImage); // The bitmap we generated +``` + +> **E se l'immagine è più grande della dimensione della diapositiva?** +> PowerPoint ritaglierà automaticamente tutto ciò che supera le dimensioni della diapositiva. Una soluzione rapida è scalare l'immagine prima di inserirla: + +```csharp +float scale = Math.Min(presentation.SlideSize.Size.Width / (float)sheetImage.Width, + presentation.SlideSize.Size.Height / (float)sheetImage.Height); +int newWidth = (int)(sheetImage.Width * scale); +int newHeight = (int)(sheetImage.Height * scale); +``` + +Puoi quindi passare `newWidth` e `newHeight` a `AddPictureFrame`. + +--- + +## Esporta Foglio di Lavoro come Immagine – Salva il File PPTX + +Infine salviamo la presentazione su disco. Il flag `SaveFormat.Pptx` garantisce il moderno formato OpenXML, che funziona su tutte le versioni recenti di PowerPoint. + +```csharp +// 5️⃣ Save the presentation as a PPTX file +string pptxPath = "YOUR_DIRECTORY/Result.pptx"; +presentation.Save(pptxPath, SaveFormat.Pptx); +``` + +Quando apri `Result.pptx` vedrai una singola diapositiva che appare esattamente come il tuo foglio Excel, ma potrai comunque cliccare su qualsiasi casella di testo e modificarne il contenuto direttamente in PowerPoint. + +--- + +## Esporta Grafico Excel come Immagine – Quando Sono Preferibili le Immagini Raster + +A volte non servono forme modificabili; un PNG di alta qualità di un grafico è sufficiente. Aspose.Cells può esportare un grafico specifico in un'immagine senza convertire l'intero foglio: + +```csharp +// Example: Export the first chart on the sheet as a PNG +int chartIndex = 0; // Adjust if you have multiple charts +Chart chart = worksheet.Charts[chartIndex]; +ImageOrPrintOptions chartOptions = new ImageOrPrintOptions +{ + ImageFormat = ImageFormat.Png, + OnePagePerSheet = false +}; +chart.ToImage("chart.png", chartOptions); +``` + +Puoi quindi incorporare `chart.png` in una diapositiva nello stesso modo in cui abbiamo aggiunto `sheetImage`. Questo approccio riduce la dimensione del file PPTX ed è utile quando i dati circostanti non sono necessari nella diapositiva. + +--- + +## Problemi Comuni e Come Evitarli + +| Problema | Perché accade | Soluzione | +|----------|----------------|-----------| +| **Il testo appare sfocato** | Esportato a DPI basso (default 96). | Imposta `imageOptions.Dpi = 300;` prima della conversione. | +| **Le forme scompaiono** | `ExportShapes` impostato a `false`. | Assicurati che `ExportShapes = true` quando ti servono grafiche modificabili. | +| **Dimensioni della diapositiva non corrispondono** | Immagine più grande delle dimensioni della diapositiva. | Scala l'immagine (vedi snippet di codice) o cambia la dimensione della diapositiva tramite `presentation.SlideSize`. | +| **Eccezione di licenza** | Uso della versione di prova senza corretta attivazione. | Chiama `License license = new License(); license.SetLicense("Aspose.Total.lic");` all'inizio di `Main`. | + +--- + +## Esempio Completo Funzionante (Pronto per Copia‑Incolla) + +Di seguito trovi l'intero programma, pronto da inserire in un nuovo progetto console. Sostituisci `YOUR_DIRECTORY` con la cartella che contiene il tuo file Excel. + +```csharp +using System; +using Aspose.Cells; +using Aspose.Slides; +using System.Drawing; + +namespace ExcelToPowerPointDemo +{ + class Program + { + static void Main(string[] args) + { + // ----------------------------------------------------------------- + // 1️⃣ Load the Excel workbook + // ----------------------------------------------------------------- + string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; + Workbook workbook = new Workbook(excelPath); + Worksheet worksheet = workbook.Worksheets[0]; + + // ----------------------------------------------------------------- + // 2️⃣ Set up export options – keep shapes editable + // ----------------------------------------------------------------- + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + OnePagePerSheet = true, + ExportShapes = true, + ExportEditableTextBoxes = true, + Dpi = 300 // High‑resolution output + }; + + // ----------------------------------------------------------------- + // 3️⃣ Convert worksheet to an image + // ----------------------------------------------------------------- + WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); + Image sheetImage = converter.ConvertToImage(0, imageOptions); + + // ----------------------------------------------------------------- + // 4️⃣ Create PowerPoint and add the image as a slide + // ----------------------------------------------------------------- + Presentation presentation = new Presentation(); + ISlide slide = presentation.Slides[0]; + slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, + 0, 0, + sheetImage.Width, + sheetImage.Height, + sheetImage); + + // ----------------------------------------------------------------- + // 5️⃣ Save the PPTX file + // ----------------------------------------------------------------- + string pptxPath = "YOUR_DIRECTORY/Result.pptx"; + presentation.Save(pptxPath, SaveFormat.Pptx); + + Console.WriteLine("✅ PowerPoint created successfully at: " + pptxPath); + } + } +} +``` + +**Output previsto:** +Eseguendo il programma stampa `✅ PowerPoint created successfully at: YOUR_DIRECTORY/Result.pptx`. Aprendo il PPTX vedrai una singola diapositiva che rispecchia il foglio Excel originale, con caselle di testo modificabili. + +--- + +## Riepilogo e Prossimi Passi + +Ora sai come **creare PowerPoint da Excel** usando le potenti API di Aspose, come **esportare il foglio di lavoro come immagine**, e come **salvare la presentazione come PPTX** mantenendo la modificabilità. Lo stesso schema funziona per workbook con più fogli—basta iterare su `workbook.Worksheets` e aggiungere una nuova diapositiva per ciascuno. + +**Cosa esplorare dopo?** + +- **Conversione batch:** Scorri una cartella di file Excel e genera una presentazione per file. +- **Layout dinamici:** Usa `slide.LayoutSlide` per applicare template PowerPoint pre‑progettati. +- **Esportazione solo grafico:** Combina lo snippet “Export Excel chart as picture” con segnaposti diapositive per un deck più leggero. +- **Stile avanzato:** Applica sfondi personalizzati, transizioni o animazioni alle diapositive tramite Aspose.Slides. + +Sentiti libero di sperimentare—cambia il DPI, sostituisci `ShapeType.Ellipse` con un frame circolare, o anche incorpora più immagini per diapositiva. Il cielo è il limite quando hai il controllo programmatico su + +{{< /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/italian/net/document-properties/_index.md b/cells/italian/net/document-properties/_index.md index 93f372cd31..930c80203e 100644 --- a/cells/italian/net/document-properties/_index.md +++ b/cells/italian/net/document-properties/_index.md @@ -35,6 +35,8 @@ Scopri come accedere alle proprietà dei documenti in Excel utilizzando Aspose.C Scopri come accedere alle proprietà dei documenti in Excel utilizzando Aspose.Cells per .NET con la nostra guida passo passo. Gestisci i tuoi fogli di calcolo in modo efficiente. ### [Aggiunta di proprietà del documento in .NET](./adding-document-properties/) Scopri come aggiungere proprietà del documento in Excel utilizzando Aspose.Cells per .NET con questa guida dettagliata passo dopo passo. +### [Come salvare XLSB con proprietà personalizzate in C# – Guida passo‑passo](./how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/) +Scopri come salvare file XLSB includendo proprietà personalizzate usando Aspose.Cells per .NET in C# con una guida dettagliata passo dopo passo. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/italian/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md b/cells/italian/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md new file mode 100644 index 0000000000..035c00acc7 --- /dev/null +++ b/cells/italian/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md @@ -0,0 +1,234 @@ +--- +category: general +date: 2026-03-30 +description: Scopri come salvare un file XLSB in C# aggiungendo una proprietà personalizzata, + leggerla nuovamente e padroneggiare il salvataggio della cartella di lavoro come + XLSB usando Aspose.Cells. Codice completo incluso. +draft: false +keywords: +- how to save xlsb +- add custom property +- how to add property +- how to read property +- save workbook as xlsb +language: it +og_description: Come salvare XLSB in C#? Questo tutorial mostra come aggiungere una + proprietà personalizzata, leggerla nuovamente e salvare la cartella di lavoro come + XLSB con Aspose.Cells. +og_title: Come salvare un file XLSB con proprietà personalizzate in C# – Guida completa +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Come salvare un file XLSB con proprietà personalizzate in C# – Guida passo + passo +url: /it/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Come salvare XLSB con proprietà personalizzate in C# – Guida passo‑passo + +Ti sei mai chiesto **come salvare XLSB** mantenendo metadati aggiuntivi allegati a un foglio di lavoro? Non sei il solo. In molti scenari aziendali hai bisogno di un file Excel binario che conservi le tue coppie chiave/valore—ad esempio un ID contratto, un flag di elaborazione o un tag di versione. + +La buona notizia è che Aspose.Cells rende tutto questo un gioco da ragazzi. In questa guida vedrai esattamente come aggiungere una proprietà personalizzata, persisterla e poi leggerla, il tutto **salvando la cartella di lavoro come XLSB**. Nessun riferimento vago, solo un esempio completo e funzionante che puoi inserire nel tuo progetto subito. + +## Cosa otterrai + +- Un nuovo file `.xlsb` creato da zero. +- La possibilità di **aggiungere una proprietà personalizzata** a un foglio di lavoro. +- Codice che dimostra **come leggere la proprietà** dopo aver ricaricato il file. +- Suggerimenti sui problemi comuni quando **salvi la cartella di lavoro come XLSB**. + +> **Prerequisiti:** .NET 6+ (o .NET Framework 4.6+), Visual Studio (o qualsiasi IDE C#), e la libreria Aspose.Cells per .NET installata via NuGet. Nient’altro. + +--- + +## Passo 1: Configura il progetto e crea una nuova cartella di lavoro + +Prima di tutto—otteniamo un oggetto Workbook pulito. + +```csharp +using Aspose.Cells; +using System; + +// Initialize a new workbook; this will be an in‑memory Excel file. +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0) – it’s created automatically. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Perché è importante:* `Workbook` è il punto di ingresso per ogni operazione in Aspose.Cells. Partendo da un’istanza nuovissima eviti stati nascosti che potrebbero corrompere i tuoi metadati personalizzati in seguito. + +--- + +## Passo 2: **Aggiungere una proprietà personalizzata** al foglio di lavoro + +Ora collegheremo una coppia chiave/valore che vive solo su questo foglio. + +```csharp +// Add a user‑defined property called "MyProperty" with the value "CustomValue". +worksheet.CustomProperties.Add("MyProperty", "CustomValue"); +``` + +> **Consiglio esperto:** I nomi delle proprietà sono sensibili al maiuscolo/minuscolo. Se più tardi provi a recuperare `"myproperty"` otterrai una `KeyNotFoundException`. Adotta una convenzione di denominazione—camelCase o PascalCase—fin dall’inizio. + +--- + +## Passo 3: **Salvare la cartella di lavoro come XLSB** – Persistenza della proprietà + +La magia avviene quando scrivi la cartella di lavoro nel formato binario XLSB. + +```csharp +// Define the output path. Adjust the folder to something writable on your machine. +string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + +// Save the workbook; the custom property travels with the file. +workbook.Save(outputPath, SaveFormat.Xlsb); +``` + +*Cosa stai realmente facendo:* L’enumerazione `SaveFormat.Xlsb` indica ad Aspose.Cells di generare un file Excel binario (più veloce da aprire, più piccolo su disco). Tutte le proprietà personalizzate a livello di foglio vengono serializzate automaticamente—non servono passaggi aggiuntivi. + +--- + +## Passo 4: Ricarica il file e **come leggere la proprietà** + +Dimostriamo che la proprietà è sopravvissuta al round‑trip. + +```csharp +// Load the just‑saved XLSB file back into memory. +Workbook reloadedWorkbook = new Workbook(outputPath); + +// Access the same worksheet (index 0) and fetch the property value. +string customValue = reloadedWorkbook.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); +``` + +Se tutto è andato liscio, `customValue` ora contiene `"CustomValue"`. + +--- + +## Passo 5: Verifica il risultato – Rapida stampa su console + +Un piccolo controllo di sanità è utile durante lo sviluppo. + +```csharp +Console.WriteLine($"Custom property value: {customValue}"); +``` + +L’esecuzione del programma dovrebbe stampare: + +``` +Custom property value: CustomValue +``` + +Vedere quella riga significa che hai padroneggiato **come salvare XLSB**, **aggiungere una proprietà personalizzata** e **come leggere la proprietà**—tutto in un unico flusso ordinato. + +--- + +## Esempio completo funzionante (pronto da copiare‑incollare) + +Di seguito trovi l’intero programma. Incollalo in una nuova Console App, premi **F5** e osserva la console confermare il valore della proprietà. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // 1️⃣ Create a new workbook and get its first sheet + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // 2️⃣ Add a custom property (key/value) to the sheet + // ------------------------------------------------- + worksheet.CustomProperties.Add("MyProperty", "CustomValue"); + + // ------------------------------------------------- + // 3️⃣ Save the workbook as XLSB – the property is kept + // ------------------------------------------------- + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(outputPath, SaveFormat.Xlsb); + + // ------------------------------------------------- + // 4️⃣ Reload the saved file to demonstrate persistence + // ------------------------------------------------- + Workbook reloaded = new Workbook(outputPath); + + // ------------------------------------------------- + // 5️⃣ Retrieve the custom property's value + // ------------------------------------------------- + string customValue = reloaded.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); + + // ------------------------------------------------- + // 6️⃣ Display the retrieved value (optional) + // ------------------------------------------------- + Console.WriteLine($"Custom property value: {customValue}"); + } +} +``` + +> **Ricorda:** Modifica `outputPath` con una cartella in cui hai i permessi di scrittura. Se sei su Linux/macOS, usa un percorso come `"/tmp/WithCustomProp.xlsb"`. + +--- + +## Domande frequenti e casi particolari + +### E se la proprietà esiste già? +Chiamare `Add` con una chiave già presente genera un `ArgumentException`. Usa `ContainsKey` o avvolgi la chiamata in un `try/catch` se non sei sicuro. + +```csharp +if (!worksheet.CustomProperties.ContainsKey("MyProperty")) +{ + worksheet.CustomProperties.Add("MyProperty", "AnotherValue"); +} +``` + +### Posso memorizzare valori non stringa? +Assolutamente. La proprietà `Value` accetta qualsiasi `object`. Per numeri, date o booleani passa semplicemente il tipo appropriato—Aspose.Cells gestirà la conversione al momento della lettura. + +### La proprietà sopravvive alla conversione in XLSX? +Sì. Le proprietà personalizzate fanno parte della rappresentazione XML del foglio, quindi persistono nei formati XLSX, XLS e XLSB. + +### Come **aggiungere una proprietà** a più fogli? +Itera sulla collezione `Worksheets` e applica la stessa chiamata `CustomProperties.Add` a ciascun foglio necessario. + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + ws.CustomProperties.Add("ExportedBy", "MyApp"); +} +``` + +### Consiglio di performance quando **si salvano molte cartelle di lavoro come XLSB** +Se generi centinaia di file, riutilizza la stessa istanza `Workbook` e chiama `Clear` dopo ogni salvataggio per liberare memoria. Inoltre, imposta `Workbook.Settings.CalculateFormulaOnOpen = false` se non ti serve il ricalcolo delle formule al caricamento. + +--- + +## Conclusione + +Ora sai **come salvare XLSB** in C# incorporando e successivamente recuperando una proprietà personalizzata usando Aspose.Cells. La soluzione completa—creare la cartella di lavoro, aggiungere una proprietà, persisterla con **save workbook as XLSB**, ricaricare e leggere il valore—sta sotto le 50 righe di codice. + +Da qui potresti esplorare: + +- Aggiungere più proprietà personalizzate per foglio. +- Memorizzare oggetti complessi tramite stringhe JSON. +- Crittografare il file XLSB per maggiore sicurezza. + +Metti alla prova queste idee e diventerai rapidamente la figura di riferimento per l’automazione Excel nel tuo team. Hai domande o uno scenario complicato? Lascia un commento qui sotto, e buona programmazione! + +![Come salvare XLSB con proprietà personalizzata](/images/how-to-save-xlsb.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/italian/net/excel-copy-worksheet/_index.md b/cells/italian/net/excel-copy-worksheet/_index.md index ebc47a62ce..4c9276453a 100644 --- a/cells/italian/net/excel-copy-worksheet/_index.md +++ b/cells/italian/net/excel-copy-worksheet/_index.md @@ -42,6 +42,7 @@ Aspose.Cells per .NET offre potenti funzionalità per la manipolazione di file E | [Foglio di lavoro di copia Excel](./excel-copy-worksheet/) | Scopri come copiare un foglio di lavoro Excel utilizzando Aspose.Cells per .NET con questa guida passo passo facile da seguire. Ideale per gli sviluppatori .NET che desiderano automatizzare le attività di Excel. | | [Copia fogli di lavoro Excel tra cartelle di lavoro](./excel-copy-worksheets-between-workbooks/) | Scopri come copiare fogli di lavoro tra cartelle di lavoro Excel utilizzando Aspose.Cells per .NET. Una guida passo passo con esempi di codice per semplificare la gestione dei fogli di calcolo. | | [Foglio di lavoro di spostamento di Excel](./excel-move-worksheet/) | Impara a spostare fogli di lavoro in Excel usando Aspose.Cells per .NET nella nostra guida passo passo. Padroneggia l'arte della programmazione Excel. | +| [Come copiare un foglio di lavoro in C# con Aspose.Cells – Guida completa](./how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/) | Scopri come copiare un foglio di lavoro in C# usando Aspose.Cells con esempi dettagliati e consigli pratici. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/italian/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md b/cells/italian/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md new file mode 100644 index 0000000000..6851b44129 --- /dev/null +++ b/cells/italian/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md @@ -0,0 +1,289 @@ +--- +category: general +date: 2026-03-30 +description: Come copiare un foglio di lavoro in C# usando Aspose.Cells – guida passo‑passo + che copre la copia di un intervallo di celle, la copia di colonne tra fogli, la + copia della tabella pivot del foglio di lavoro e l'aggiunta di codice per un nuovo + foglio di lavoro. +draft: false +keywords: +- how to copy worksheet +- copy cell range +- copy columns between sheets +- copy worksheet pivot table +- add new worksheet code +language: it +og_description: Scopri come copiare un foglio di lavoro in C# con Aspose.Cells. Questa + guida mostra come copiare un intervallo di celle, preservare le tabelle pivot, copiare + colonne tra fogli e aggiungere il codice per un nuovo foglio di lavoro. +og_title: Come copiare un foglio di lavoro in C# – Tutorial completo di Aspose.Cells +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Come copiare un foglio di lavoro in C# con Aspose.Cells – Guida completa +url: /it/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Come Copiare un Foglio di Lavoro in C# con Aspose.Cells – Guida Completa + +Ti sei mai chiesto **come copiare un foglio di lavoro** in C# senza perdere nemmeno una tabella pivot o una formula? Non sei solo: molti sviluppatori si trovano in difficoltà quando devono duplicare un foglio mantenendo intatti tutti gli elementi. In questo tutorial percorreremo una soluzione pratica, end‑to‑end, che non solo copia i dati ma preserva anche la **copy worksheet pivot table**, gestisce **copy cell range** e mostra il **add new worksheet code** di cui avrai bisogno. + +Copriamo tutto, dal caricamento della cartella di lavoro di origine al salvataggio del file di destinazione, così potrai copiare colonne tra fogli, preservare gli oggetti e mantenere il codice pulito. Niente riferimenti vaghi, solo un esempio completo e funzionante da inserire subito nel tuo progetto. + +## Cosa Copre Questo Tutorial + +- Caricamento di un file Excel esistente con Aspose.Cells +- Utilizzo del **add new worksheet code** per creare un foglio di destinazione +- Definizione di un **copy cell range** che includa una tabella pivot +- Configurazione di **CopyOptions** per mantenere grafici, formule e tabelle pivot intatti +- Esecuzione di **copy columns between sheets** con precisione riga per riga +- Salvataggio del risultato e verifica che il foglio sia stato copiato correttamente + +Al termine di questa guida sarai in grado di rispondere con sicurezza alla domanda “how to copy worksheet”, sia che tu stia automatizzando report sia che tu stia costruendo un’interfaccia basata su fogli di calcolo. + +--- + +## Come Copiare un Foglio di Lavoro – Panoramica + +Prima di immergerci nel codice, delineiamo il flusso ad alto livello. Pensalo come una ricetta: + +1. **Load** la cartella di lavoro di origine (`Source.xlsx`). +2. **Add** un nuovo foglio per contenere la copia (`add new worksheet code`). +3. **Define** l’area che vuoi duplicare (`copy cell range`). +4. **Configure** le opzioni di copia affinché la tabella pivot sopravviva (`copy worksheet pivot table`). +5. **Copy** righe e colonne (`copy columns between sheets`). +6. **Save** la nuova cartella di lavoro (`Destination.xlsx`). + +Tutto qui—sei passaggi, nessuna magia. Ogni passaggio è spiegato di seguito con snippet di codice e la logica sottostante. + +--- + +## Passo 1 – Carica la Cartella di Lavoro di Origine + +Prima di tutto: ti serve un’istanza di `Workbook` che punti al file che vuoi duplicare. Questo passaggio è fondamentale perché Aspose.Cells lavora direttamente sul file system, non sull’interfaccia di Office. + +```csharp +using Aspose.Cells; + +// Path to the original file +string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; +string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + +// Load the workbook – this is the starting point for how to copy worksheet +Workbook workbook = new Workbook(sourcePath); +``` + +*Perché è importante:* Il caricamento del file crea una rappresentazione in memoria di ogni foglio, cella e oggetto. Senza di esso non c’è nulla da copiare, e qualsiasi tentativo di `add new worksheet code` in seguito fallirebbe perché i dati di origine non sono presenti. + +--- + +## Passo 2 – Aggiungi un Nuovo Foglio (add new worksheet code) + +Ora abbiamo bisogno di un luogo dove incollare i dati copiati. Qui entra in gioco il **add new worksheet code**. Puoi dare al foglio qualsiasi nome; in questo esempio lo chiamiamo `"Copy"`. + +```csharp +// Grab the first worksheet (the one we want to copy) +Worksheet sourceSheet = workbook.Worksheets[0]; + +// Add a fresh worksheet to receive the copy +Worksheet copySheet = workbook.Worksheets.Add("Copy"); +``` + +*Consiglio professionale:* Se prevedi di copiare più fogli, chiama `Worksheets.Add` all’interno di un ciclo e assegna a ciascun foglio un nome univoco. In questo modo eviti collisioni di nomi e mantieni ordinata la cartella di lavoro. + +--- + +## Passo 3 – Definisci il Copy Cell Range + +Un **copy cell range** indica ad Aspose.Cells esattamente quali righe e colonne duplicare. In molti scenari reali l’intervallo include una tabella pivot, quindi è necessario essere precisi. + +```csharp +// Define the area that contains the pivot table (A1:G20) +CellArea sourceRange = new CellArea +{ + StartRow = 0, // Row 1 (zero‑based) + StartColumn = 0, // Column A + EndRow = 19, // Row 20 + EndColumn = 6 // Column G +}; + +// Destination range – we start at the same top‑left corner +CellArea destinationRange = new CellArea +{ + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 +}; +``` + +*Perché è necessario:* Dichiarando esplicitamente l’intervallo eviti di copiare l’intero foglio (potrebbe essere inefficiente) e garantisci che la tabella pivot rimanga all’interno dell’area copiata. Questo è il fulcro di **how to copy worksheet** quando ti serve solo una parte del foglio. + +--- + +## Passo 4 – Imposta le Opzioni di Copia (preserve copy worksheet pivot table) + +Aspose.Cells offre un oggetto `CopyOptions` che controlla cosa viene incollato. Per mantenere la tabella pivot, i grafici e le formule, impostiamo `PasteType.All` e abilitiamo `PasteSpecial`. + +```csharp +CopyOptions copyOptions = new CopyOptions +{ + PasteType = PasteType.All, // Copy everything: values, formats, objects + PasteSpecial = true // Enable special paste to retain pivot tables +}; +``` + +*Spiegazione:* `PasteType.All` è l’opzione più inclusiva, mentre `PasteSpecial` indica al motore di trattare correttamente oggetti complessi—come le tabelle pivot. Saltare questo passaggio è un errore comune; il foglio copiato perderebbe le sue funzionalità interattive. + +--- + +## Passo 5 – Copia Righe e Colonne (copy columns between sheets) + +Ora arriva la parte più impegnativa: spostare effettivamente i dati. Useremo `CopyRows` e `CopyColumns` per gestire **copy columns between sheets**. Eseguire entrambi assicura che le celle unite e le larghezze delle colonne vengano preservate. + +```csharp +// Copy rows from the source to the destination sheet +sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + +// Copy columns from the source to the destination sheet +sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); +``` + +*Cosa succede:* `CopyRows` sposta i dati riga per riga, mentre `CopyColumns` fa lo stesso colonna per colonna. Eseguire entrambi garantisce che l’intero blocco rettangolare sia duplicato, cosa essenziale quando devi **copy columns between sheets** con larghezze o colonne nascoste differenti. + +--- + +## Passo 6 – Salva la Cartella di Lavoro + +Infine, scrivi le modifiche su disco. Questo passaggio completa il processo di **how to copy worksheet**. + +```csharp +// Save the workbook with the newly copied sheet +workbook.Save(destinationPath); +``` + +*Suggerimento di verifica:* Apri `Destination.xlsx` e controlla che il foglio `"Copy"` sia identico all’originale, che le tabelle pivot siano operative e che le larghezze delle colonne corrispondano. Se qualcosa non quadra, ricontrolla le impostazioni di `CopyOptions`. + +--- + +## Casi Limite e Varianti Comuni + +### Copia di Più Fogli di Lavoro + +Se devi duplicare diversi fogli, avvolgi la logica precedente in un ciclo `foreach`: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + Worksheet newWs = workbook.Worksheets.Add(ws.Name + "_Copy"); + // Re‑use sourceRange/destinationRange or calculate per sheet + // Then call CopyRows/CopyColumns as shown earlier +} +``` + +### Conservare le Formule tra Cartelle di Lavoro Diverse + +Quando le cartelle di lavoro di origine e destinazione hanno intervalli denominati diversi, imposta `copyOptions` su `PasteType.Formulas` oltre a `All`: + +```csharp +copyOptions.PasteType = PasteType.All | PasteType.Formulas; +``` + +### Grandi Intervalli e Prestazioni + +Per dataset massivi (centinaia di migliaia di righe), considera di usare solo `CopyRows` e saltare `CopyColumns` se le larghezze delle colonne non sono critiche. Questo può ridurre di qualche secondo i tempi di esecuzione. + +--- + +## Esempio Completo + +Di seguito trovi il programma completo, pronto per l’esecuzione, che racchiude tutto quanto discusso. Incollalo in una console app, adatta i percorsi dei file e premi **F5**. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // ---------- Step 1: Load the source workbook ---------- + string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; + string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + Workbook workbook = new Workbook(sourcePath); + + // ---------- Step 2: Add a new worksheet (add new worksheet code) ---------- + Worksheet sourceSheet = workbook.Worksheets[0]; + Worksheet copySheet = workbook.Worksheets.Add("Copy"); + + // ---------- Step 3: Define the copy cell range ---------- + CellArea sourceRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + CellArea destinationRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + + // ---------- Step 4: Set copy options (preserve copy worksheet pivot table) ---------- + CopyOptions copyOptions = new CopyOptions + { + PasteType = PasteType.All, + PasteSpecial = true + }; + + // ---------- Step 5: Copy rows and columns (copy columns between sheets) ---------- + sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + + sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); + + // ---------- Step 6: Save the workbook ---------- + workbook.Save(destinationPath); + } +} +``` + +**Risultato atteso:** Aprendo `Destination.xlsx` vedrai un foglio chiamato **Copy** che rispecchia il primo foglio di `Source.xlsx`—incluse tabelle pivot, formattazione e larghezze delle colonne. Il file originale rimane intatto. + +--- + +## Domande Frequenti + +**D: Funziona con file .xlsx creati da Excel 2019?** +R: Assolutamente. Aspose.Cells supporta tutti i formati Excel moderni, quindi lo stesso codice funziona per `.xlsx`, `.xlsm` e anche per i più vecchi file `.xls`. + +{{< /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/italian/net/excel-custom-number-date-formatting/_index.md b/cells/italian/net/excel-custom-number-date-formatting/_index.md index c68e86c9ff..bad5a72e39 100644 --- a/cells/italian/net/excel-custom-number-date-formatting/_index.md +++ b/cells/italian/net/excel-custom-number-date-formatting/_index.md @@ -36,6 +36,10 @@ Questo tutorial ti fornirà le competenze necessarie per importare i tuoi set di Scopri come confrontare i valori delle celle di Excel con formati numerici personalizzati utilizzando Aspose.Cells per .NET con questo tutorial passo passo. ### [Specificare i campi formula durante l'importazione di dati in un foglio Excel](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) In questo tutorial dettagliato scoprirai come importare dati in fogli Excel con campi formula specificati utilizzando Aspose.Cells per .NET. +### [Formattare i numeri con separatore in C# – Guida completa Aspose.Cells](./format-number-with-separator-in-c-complete-aspose-c-cells-guid/) +Scopri come formattare numeri con separatori di migliaia in C# usando Aspose.Cells, con esempi pratici passo passo. +### [Formattare data ISO da Excel – Guida completa C#](./format-date-iso-from-excel-complete-c-guide/) +Impara a convertire le date di Excel in formato ISO usando Aspose.Cells per .NET con esempi pratici in C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/italian/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md b/cells/italian/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..27fc52718c --- /dev/null +++ b/cells/italian/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md @@ -0,0 +1,218 @@ +--- +category: general +date: 2026-03-30 +description: Impara come formattare la data ISO mentre leggi i valori datetime di + Excel ed estrai i dati datetime di Excel usando Aspose.Cells in C#. +draft: false +keywords: +- format date iso +- read excel datetime +- extract datetime excel +- Aspose.Cells date parsing +- Japanese era dates +language: it +og_description: formattare la data ISO dai dati di Excel usando Aspose.Cells. Questa + guida mostra come leggere le date e gli orari di Excel, estrarre i valori datetime + di Excel e generare date ISO. +og_title: Formattare la data ISO da Excel – Tutorial C# passo passo +tags: +- C# +- Excel +- DateTime +- Aspose.Cells +title: Formattare data ISO da Excel – Guida completa C# +url: /it/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# formattare data iso da Excel – Guida completa C# + +Ti è mai capitato di **format date iso** quando estrai date da un foglio Excel? Forse stai gestendo date dell'era giapponese, o vuoi semplicemente una stringa `yyyy‑MM‑dd` pulita per un payload API. In questo tutorial vedrai esattamente come **read Excel datetime** celle, **extract datetime Excel** valori, e trasformarli in formato ISO‑8601—senza indovinare. + +Passeremo in rassegna un esempio reale che utilizza Aspose.Cells, spiega perché ogni riga è importante e ti mostra l'output finale che puoi copiare‑incollare nel tuo progetto. Alla fine, sarai in grado di gestire stringhe d'era particolari come “令和3年5月1日” e produrre una data ISO standard, pronta per database, JSON o qualsiasi altro contesto. + +## Prerequisiti + +- .NET 6.0 o versioni successive (il codice funziona anche con .NET Framework) +- Aspose.Cells per .NET (versione di prova gratuita o con licenza) +- Familiarità di base con C# e i concetti di Excel +- Visual Studio o qualsiasi editor C# a tua scelta + +Non sono necessari pacchetti NuGet aggiuntivi oltre a Aspose.Cells, quindi la configurazione è abbastanza semplice. + +--- + +## Passo 1: Creare un Workbook e puntare al primo Worksheet + +La prima cosa da fare è creare un nuovo oggetto `Workbook`. Questo ti fornisce una rappresentazione in memoria di un file Excel, che puoi poi manipolare o leggere da. + +```csharp +using Aspose.Cells; +using System.Globalization; + +// Step 1: Initialize a new workbook and grab the first worksheet +Workbook workbook = new Workbook(); // creates an empty .xlsx +Worksheet worksheet = workbook.Worksheets[0]; // the default sheet is "Sheet1" +``` + +*Perché è importante:* +Creare il workbook programmaticamente ti consente di evitare di gestire file fisici durante i test. Inoltre garantisce che il riferimento al worksheet sia sempre valido—nessuna sorpresa di null‑reference più tardi quando provi a **read Excel datetime** valori. + +--- + +## Passo 2: Scrivere una stringa di data dell'era giapponese in una cella + +Il nostro obiettivo è dimostrare il parsing di una data non gregoriana. Inseriremo la stringa dell'era direttamente nella cella **A1**. + +```csharp +// Step 2: Insert a Japanese era date string into cell A1 +worksheet.Cells["A1"].PutValue("令和3年5月1日"); +``` + +*Consiglio professionale:* Se stai estraendo dati da un workbook esistente, salteresti la chiamata `PutValue` e semplicemente faresti riferimento alla cella che contiene già la data. L'importante è che la cella contenga una **string** che rappresenta una data nel calendario lunisolare giapponese. + +--- + +## Passo 3: Configurare una Culture che comprende il calendario lunisolare giapponese + +La classe `CultureInfo` di .NET ti consente di specificare come le date devono essere interpretate. Sostituendo il calendario gregoriano predefinito con `JapaneseLunisolarCalendar`, fornisci al parser il contesto necessario. + +```csharp +// Step 3: Set up a culture using the Japanese lunisolar calendar +CultureInfo japaneseCulture = new CultureInfo("ja-JP"); +japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); +``` + +*Perché lo facciamo:* +Se provi a fare il parsing di “令和3年5月1日” con la culture predefinita, .NET genererebbe una `FormatException`. Sostituendo con il calendario lunisolare, il runtime sa esattamente come mappare “令和3年” (il 3° anno dell'era Reiwa) all'anno gregoriano 2021. + +--- + +## Passo 4: Analizzare il valore della cella come `DateTime` usando la Culture configurata + +Ora arriva il cuore dell'operazione—convertire quella stringa dell'era in un oggetto `DateTime` corretto. Aspose.Cells fornisce un overload conveniente di `GetDateTime` che accetta un `CultureInfo`. + +```csharp +// Step 4: Retrieve the cell value as a DateTime, respecting the Japanese culture +DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); +``` + +*Cosa succede dietro le quinte:* +`GetDateTime` legge la stringa grezza, applica le regole del calendario della culture fornita, e restituisce un `DateTime` che rappresenta lo stesso momento nel calendario gregoriano. Questo è il momento in cui **extract datetime Excel** dati in una forma con cui puoi lavorare in .NET. + +--- + +## Passo 5: Restituire la data analizzata in formato ISO 8601 + +Infine, formattiamo il `DateTime` come stringa ISO—`yyyy‑MM‑dd`—che è universalmente accettata da API, database e framework front‑end. + +```csharp +// Step 5: Print the date in ISO format (e.g., 2021-05-01) +Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // Output: 2021-05-01 +``` + +*Perché ISO?* +ISO 8601 elimina l'ambiguità. “05/01/2021” potrebbe essere il 1 maggio o il 5 gennaio a seconda della locale. `2021-05-01` è cristallino, ed è per questo che **format date iso** in quasi tutti gli scenari di integrazione. + +--- + +## Esempio completo funzionante + +Di seguito trovi il programma completo, pronto per l'esecuzione. Copialo in un progetto console app, aggiungi il riferimento Aspose.Cells, e premi **F5**. + +```csharp +using Aspose.Cells; +using System; +using System.Globalization; + +class Program +{ + static void Main() + { + // 1️⃣ Create workbook and select the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("令和3年5月1日"); + + // 3️⃣ Set up Japanese lunisolar culture + CultureInfo japaneseCulture = new CultureInfo("ja-JP"); + japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); + + // 4️⃣ Parse the cell value as DateTime using the culture + DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); + + // 5️⃣ Output the date in ISO format + Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // 2021-05-01 + } +} +``` + +**Output previsto** + +``` +2021-05-01 +``` + +Eseguilo una volta, e vedrai la data formattata in ISO stampata sulla console. Questo è l'intero flusso da **read Excel datetime** a **format date iso**. + +--- + +## Gestione dei casi limite comuni + +### 1. Celle contenenti numeri di data reali di Excel + +A volte Excel memorizza le date come numeri seriali (ad esempio `44204`). In tal caso, non è necessaria una culture; basta chiamare `GetDateTime()` senza parametri: + +```csharp +DateTime serialDate = worksheet.Cells["B2"].GetDateTime(); // B2 holds a numeric date +Console.WriteLine(serialDate.ToString("yyyy-MM-dd")); +``` + +### 2. Celle vuote o non valide + +Se una cella è vuota o contiene una stringa non analizzabile, `GetDateTime` genererà un'eccezione. Avvolgi la chiamata in un `try/catch` o verifica prima `IsDateTime`: + +```csharp +if (worksheet.Cells["C3"].Type == CellValueType.IsDateTime) +{ + DateTime safeDate = worksheet.Cells["C3"].GetDateTime(); + Console.WriteLine(safeDate.ToString("yyyy-MM-dd")); +} +else +{ + Console.WriteLine("Cell C3 does not contain a valid date."); +} +``` + +### 3. Formati di era diversi + +Altre ere giapponesi (Heisei, Showa) seguono lo stesso schema. Lo stesso `JapaneseLunisolarCalendar` le gestirà automaticamente, quindi non serve logica aggiuntiva—basta fornire la stringa. + +--- + +## Consigli professionali & Avvertenze + +- **Performance:** Quando elabori fogli di calcolo di grandi dimensioni, riutilizza una singola istanza di `CultureInfo` invece di crearne una nuova all'interno di un ciclo. +- **Sicurezza dei thread:** Gli oggetti `CultureInfo` sono di sola lettura dopo aver impostato il calendario, quindi sono sicuri da condividere tra thread. +- **Licenza Aspose.Cells:** Se stai usando la versione di prova gratuita, ricorda che alcune funzionalità potrebbero essere limitate dopo la scadenza del periodo di prova. Il parsing delle date mostrato qui funziona bene sia in modalità trial che con licenza. +- **Fusi orari:** Il `DateTime` ottenuto è **unspecified** (senza fuso orario). Se ti serve UTC, chiama `DateTime.SpecifyKind(parsedDate, DateTimeKind.Utc)` o converti usando `TimeZoneInfo`. + +--- + +## Conclusione + +Abbiamo coperto tutto ciò di cui hai bisogno per **format date iso** da un workbook Excel usando C#. Partendo da una stringa grezza dell'era giapponese, abbiamo **read Excel datetime**, configurato la culture corretta, **extract datetime excel** dati, e infine prodotto una stringa ISO‑8601 pulita. L'approccio funziona per qualsiasi rappresentazione di data che Excel possa fornire, sia che si tratti di un numero seriale, di una stringa specifica per locale o di un formato di era tradizionale. + +Passi successivi? Prova a iterare su un'intera colonna di date, scrivi i risultati ISO in un nuovo foglio, o inviali direttamente in un payload JSON per un servizio web. Se sei curioso di altri sistemi di calendario (ebreo, islamico), Aspose.Cells e il `CultureInfo` di .NET rendono quegli esperimenti altrettanto semplici. + +Hai domande o un formato di data difficile da decifrare? Lascia un commento qui sotto, e buona programmazione! + +{{< /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/italian/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md b/cells/italian/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md new file mode 100644 index 0000000000..737e230d9c --- /dev/null +++ b/cells/italian/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md @@ -0,0 +1,237 @@ +--- +category: general +date: 2026-03-30 +description: Impara come formattare i numeri con separatore usando Aspose.Cells in + C#. Include impostare un formato numerico personalizzato, aggiungere il separatore + delle migliaia, formattare le cifre decimali e come formattare la cella. +draft: false +keywords: +- format number with separator +- set custom number format +- add thousands separator +- format decimal places +- how to format cell +language: it +og_description: Formattare i numeri con separatore in C#. Questa guida mostra come + impostare un formato numerico personalizzato, aggiungere il separatore delle migliaia, + formattare le cifre decimali e come formattare una cella usando Aspose.Cells. +og_title: Formattare i numeri con separatore in C# – Tutorial Aspose.Cells +tags: +- C# +- Aspose.Cells +- Number Formatting +title: Formattare i numeri con separatore in C# – Guida completa ad Aspose.Cells +url: /it/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Formattare i Numeri con Separatore in C# – Guida Completa ad Aspose.Cells + +Hai mai avuto bisogno di **formattare numeri con separatore** in un foglio di calcolo ma non eri sicuro di quale chiamata API utilizzare? Non sei il solo—gli sviluppatori lottano costantemente con i separatori delle migliaia, le cifre decimali e i modelli personalizzati quando esportano dati. + +Buone notizie: Aspose.Cells lo rende un gioco da ragazzi. In questo tutorial vedremo un esempio reale che **imposta un formato numerico personalizzato**, **aggiunge un separatore delle migliaia**, **formatta le cifre decimali**, e mostra **come formattare la cella** per l'output come stringa. Alla fine avrai uno snippet pronto da eseguire che potrai inserire in qualsiasi progetto .NET. + +## Cosa Copre Questa Guida + +* Il pacchetto NuGet esatto di cui hai bisogno e come installarlo. +* Codice passo‑passo che crea una cartella di lavoro, scrive un valore numerico e applica un formato personalizzato. +* Perché `ExportTableOptions.ExportAsString` è il metodo consigliato per recuperare un valore formattato. +* Problemi comuni—come dimenticare di abilitare `ExportAsString` o usare il mask di formato sbagliato. +* Come modificare il mask di formato se ti servono un diverso numero di cifre decimali o uno stile di separatore differente. + +Non sono necessari link a documentazione esterna; tutto ciò che ti serve è qui. Immergiamoci. + +--- + +## Prerequisiti + +| Requisito | Motivo | +|-------------|--------| +| .NET 6.0 o successivo | Aspose.Cells 23.10+ target .NET Standard 2.0+, quindi .NET 6 è sicuro e attuale. | +| Visual Studio 2022 (o qualsiasi IDE C#) | Rende il debug e la gestione dei pacchetti senza problemi. | +| Pacchetto NuGet Aspose.Cells per .NET | Fornisce le classi `Workbook`, `Worksheet` e `ExportTableOptions` che utilizzeremo. | + +Puoi installare il pacchetto tramite la Console di Gestione Pacchetti: + +```powershell +Install-Package Aspose.Cells +``` + +È tutto—nessun DLL aggiuntivo, nessun interop COM, solo un singolo riferimento NuGet. + +--- + +## Passo 1: Inizializzare una Nuova Cartella di Lavoro (Come Formattare una Cella) + +La prima cosa che facciamo è creare una nuova istanza di `Workbook`. Pensala come un file Excel vuoto pronto a ricevere dati. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Create a new workbook – this is where we’ll format the cell. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Perché è importante:** `Workbook` è il punto di ingresso per ogni operazione in Aspose.Cells. Prelevando il primo foglio di lavoro (`Worksheets[0]`) otteniamo una tela pulita senza dover nominare un foglio. + +## Passo 2: Scrivere un Valore Numerico nella Cella di Destinazione + +Successivamente, inseriamo un numero grezzo nella cella **A1**. Il valore stesso non è ancora formattato—è semplicemente un double. + +```csharp + // Step 2: Insert a raw numeric value. + worksheet.Cells["A1"].PutValue(12345.6789); +``` + +> **Consiglio professionale:** usa `PutValue` invece di `PutString` quando intendi applicare in seguito una formattazione numerica. Questo preserva il tipo di dato sottostante, consentendo calcoli compatibili con Excel. + +## Passo 3: Impostare un Formato Numerico Personalizzato (Aggiungere Separatore delle Migliaia & Formattare le Cifre Decimali) + +Ora arriva il cuore del tutorial: definire una maschera di formato che indica ad Aspose.Cells come visualizzare il numero. La maschera `#,##0.00` fa tre cose: + +1. **`#,##0`** – aggiunge un separatore delle migliaia (virgola per impostazione predefinita). +2. **`.00`** – forza esattamente due cifre decimali. + +Se ti servono un numero diverso di decimali, basta cambiare il numero di `0` dopo il punto decimale. + +```csharp + // Step 3: Configure the custom number format. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, // Return the value as a formatted string. + NumberFormat = "#,##0.00" // Add thousands separator and fix to 2 decimals. + }; +``` + +> **Perché usiamo `ExportAsString`**: per impostazione predefinita, `ExportString` restituisce il valore grezzo. Impostare `ExportAsString = true` costringe l'API ad applicare la maschera `NumberFormat` prima di convertire in testo. Questo è fondamentale quando ti serve la rappresentazione stringa esatta per report, payload JSON o visualizzazioni UI. + +## Passo 4: Esportare il Testo Formattato (Come Formattare una Cella) + +Con le opzioni pronte, chiamiamo `ExportString` sulla stessa cella. Il metodo rispetta la maschera appena definita e restituisce una stringa ben formattata. + +```csharp + // Step 4: Export the formatted value. + string formattedCellText = worksheet.Cells["A1"].ExportString(exportOptions); + + // Step 5: Show the result. + Console.WriteLine(formattedCellText); // Expected output: 12,345.68 + } +} +``` + +Eseguendo il programma stampa **`12,345.68`** sulla console—esattamente il formato richiesto. + +> **Caso limite:** se il numero di origine ha più di due cifre decimali, la maschera lo arrotonda. Se ti serve il troncamento invece dell'arrotondamento, dovrai pre‑processare il valore con `Math.Truncate` prima di chiamare `PutValue`. + +## Passo 5: Regolare il Formato – Variazioni Comuni + +### 5.1 Cambiare la Precisione Decimale + +Vuoi tre cifre decimali? Basta sostituire la maschera: + +```csharp +NumberFormat = "#,##0.000" // → 12,345.679 +``` + +### 5.2 Usare un Separatore delle Migliaia Differente + +Alcune impostazioni locali preferiscono uno spazio o un punto. Puoi inserire il carattere direttamente: + +```csharp +NumberFormat = "# ##0.00" // Uses a non‑breaking space as separator. +``` + +Oppure affidarti alle impostazioni culturali della cartella di lavoro: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("de-DE"); +NumberFormat = "#.##0,00"; // German style: 12.345,68 +``` + +### 5.3 Prefisso o Suffisso (Valuta, Percentuale) + +Aggiungi un simbolo di dollaro o di percentuale direttamente nella maschera: + +```csharp +NumberFormat = "$#,##0.00"; // → $12,345.68 +NumberFormat = "0.00%"; // → 1,234,568.00% +``` + +> **Nota:** la maschera è sensibile al maiuscolo/minuscolo. `$` e `%` sono simboli letterali; non influenzano il valore numerico sottostante. + +## Passo 6: Esempio Completo Funzionante (Pronto per Copia‑Incolla) + +Di seguito trovi il programma completo che puoi copiare in una nuova app console. Include tutti i passaggi, i commenti e la verifica dell'output finale. + +```csharp +using System; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write raw numeric value to A1. + worksheet.Cells["A1"].PutValue(12345.6789); + + // 3️⃣ Define custom format: thousands separator + two decimals. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + NumberFormat = "#,##0.00" + }; + + // 4️⃣ Export the formatted string. + string result = worksheet.Cells["A1"].ExportString(exportOptions); + + // 5️⃣ Display the outcome. + Console.WriteLine(result); // Output: 12,345.68 + + // Optional: keep console open. + Console.WriteLine("Press any key to exit..."); + Console.ReadKey(); + } +} +``` + +Esegui il programma (`dotnet run` dal terminale o premi F5 in Visual Studio) e vedrai il numero formattato stampato esattamente come mostrato. + +## Domande Frequenti (FAQ) + +**D: Funziona con versioni più vecchie di Excel?** +R: Sì. La maschera di formato segue la sintassi nativa dei numeri di Excel, quindi qualsiasi versione che riconosce `#,##0.00` renderizzerà la stessa stringa. + +**D: E se devo formattare un intervallo di celle?** +R: Itera sull'intervallo desiderato e applica lo stesso `ExportTableOptions` a ogni cella, oppure imposta la proprietà `Style.Custom` sull'intervallo e poi chiama `ExportString` su una singola cella. + +**D: Posso esportare direttamente in CSV con questi formati applicati?** +R: Assolutamente. Usa `Workbook.Save("output.csv", SaveFormat.CSV);` dopo aver impostato il formato su ogni cella. Aspose.Cells rispetta lo `Style` della cella quando genera il CSV. + +## Conclusione + +Abbiamo appena mostrato come **formattare numeri con separatore** in C# usando Aspose.Cells, coprendo tutto, da **impostare un formato numerico personalizzato** ad **aggiungere un separatore delle migliaia**, **formattare le cifre decimali**, e l'essenziale **come formattare una cella** per l'esportazione come stringa. Il codice è completamente autonomo, funziona con .NET 6+ e può essere adattato a qualsiasi impostazione locale o requisito di precisione. + +Successivamente, potresti esplorare: + +* Applicare la stessa tecnica a date e orari (`NumberFormat = "dd‑MMM‑yyyy"`). +* Automatizzare esportazioni di massa dove ogni colonna necessita di una maschera diversa. +* Integrare le stringhe formattate in report PDF con Aspose.Words. + +Prova queste, e diventerai rapidamente la persona di riferimento per la formattazione dei fogli di calcolo nel tuo team. Buon coding! (Image: ![Screenshot showing formatted number with separator in Aspose.Cells](image-placeholder.png){alt="Formatted number with separator displayed in Aspose.Cells output"} ) + +{{< /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/italian/net/excel-data-import-export/_index.md b/cells/italian/net/excel-data-import-export/_index.md index 02dd663b50..32564bd122 100644 --- a/cells/italian/net/excel-data-import-export/_index.md +++ b/cells/italian/net/excel-data-import-export/_index.md @@ -32,6 +32,10 @@ Il prossimo passo è un'altra sfida comune: inserire righe di una tabella dati i Scopri come importare dati in Excel con formattazione DB Num personalizzata utilizzando Aspose.Cells per .NET in questo tutorial semplice da seguire. ### [Sposta la prima riga verso il basso quando inserisci righe di DataTable in Excel](./shift-first-row-down-when-inserting-cells-datatable-rows-in-excel/) Impara a inserire righe di DataTable in Excel senza spostare la prima riga verso il basso utilizzando Aspose.Cells per .NET. Guida passo passo per un'automazione senza sforzo. +### [Crea cartella di lavoro Excel C# – Inserisci JSON e salva come XLSX](./create-excel-workbook-c-insert-json-and-save-as-xlsx/) +Scopri come creare una cartella di lavoro Excel in C#, inserire dati JSON e salvarla come file XLSX usando Aspose.Cells per .NET. +### [Crea cartella di lavoro Excel C# – Applica formato valuta e importa DataTable](./create-excel-workbook-c-apply-currency-format-and-import-dat/) +Scopri come creare una cartella di lavoro Excel in C#, applicare il formato valuta e importare un DataTable usando Aspose.Cells per .NET. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/italian/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md b/cells/italian/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md new file mode 100644 index 0000000000..7ee596017c --- /dev/null +++ b/cells/italian/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md @@ -0,0 +1,285 @@ +--- +category: general +date: 2026-03-30 +description: Crea una cartella di lavoro Excel in C# con formattazione valuta. Scopri + come importare un DataTable, aggiungere il formato numerico in Excel e applicare + il formato valuta a una colonna in pochi minuti. +draft: false +keywords: +- create excel workbook c# +- format cells currency +- import datatable to excel +- add number format excel +- apply currency format column +language: it +og_description: Crea un workbook Excel in C# e formatta immediatamente le celle come + valuta. Questo tutorial passo‑passo mostra come importare una DataTable in Excel + e aggiungere il formato numerico Excel per una colonna. +og_title: Crea cartella di lavoro Excel C# – Guida alla formattazione della valuta +tags: +- Aspose.Cells +- C# +- Excel automation +title: Crea cartella di lavoro Excel C# – Applica formato valuta e importa DataTable +url: /it/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Creare un Workbook Excel in C# – Applicare il Formato Valuta e Importare DataTable + +Hai mai dovuto **creare un workbook Excel in C#** che abbia già l’aspetto di un report rifinito? Forse stai estraendo i dati di vendita da un database e vuoi che la colonna prezzo venga mostrata in dollari senza dover intervenire manualmente su Excel. Ti suona familiare? Non sei l’unico: la maggior parte degli sviluppatori incappa in questo ostacolo al primo tentativo di automatizzare le esportazioni Excel. + +In questa guida percorreremo passo‑passo una soluzione completa, pronta all’uso, che **crea un workbook Excel in C#**, importa un `DataTable` e **formatta la colonna Price come valuta**. Alla fine avrai un file chiamato `StyledTable.xlsx` che potrai aprire e vedere numeri formattati correttamente. Nessun post‑processing aggiuntivo necessario. + +> **Cosa imparerai** +> - Come configurare Aspose.Cells in un progetto .NET +> - Come **importare datatable in excel** con un array di stili +> - Come **aggiungere formato numero excel** per una colonna specifica +> - Suggerimenti per gestire più colonne o impostazioni locali diverse + +> **Prerequisiti** +> - .NET 6+ (o .NET Framework 4.6+) installato +> - Pacchetto NuGet Aspose.Cells per .NET (`Install-Package Aspose.Cells`) +> - Familiarità di base con C# e DataTables + +--- + +## Step 1: Prepare the DataTable (import datatable to excel) + +Per prima cosa, servono dei dati di esempio. In un’app reale probabilmente riempirai questa tabella con una query al DB, ma un esempio hard‑coded mantiene le cose semplici. + +```csharp +using System.Data; + +// Create a DataTable with two columns: Product (string) and Price (double) +DataTable dataTable = new DataTable(); +dataTable.Columns.Add("Product", typeof(string)); +dataTable.Columns.Add("Price", typeof(double)); + +// Add a few rows – you can add as many as you like +dataTable.Rows.Add("Apple", 1.23); +dataTable.Rows.Add("Banana", 0.78); +dataTable.Rows.Add("Cherry", 2.50); +``` + +*Perché è importante*: il `DataTable` è il ponte tra i tuoi dati di business e il file Excel. Aspose.Cells può importarlo direttamente, preservando nomi delle colonne e tipi di dato. + +--- + +## Step 2: Spin Up a New Workbook (create excel workbook c#) + +Ora creiamo l’oggetto file Excel vero e proprio. Pensalo come la tela vuota su cui dipingere. + +```csharp +using Aspose.Cells; + +// Instantiate a fresh workbook – this is the core of create excel workbook c# +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0). You could also add more sheets later. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Consiglio:** Se ti servono più fogli, chiama `workbook.Worksheets.Add()` e assegna a ciascuno un nome significativo. + +--- + +## Step 3: Define a Currency Style (format cells currency) + +Aspose.Cells ti permette di creare un oggetto `Style` che descrive l’aspetto delle celle. Per la valuta usiamo l’ID formato numero integrato 164 (`"$#,##0.00"`). + +```csharp +// Create a new style object for the price column +Style priceStyle = workbook.CreateStyle(); +priceStyle.Number = 164; // Built‑in currency format "$#,##0.00" +``` + +*Perché non impostare direttamente la stringa di formato?* Usare l’ID integrato garantisce compatibilità tra le versioni di Excel ed evita stranezze legate alle impostazioni locali. + +--- + +## Step 4: Build the Style Array (apply currency format column) + +Quando importi un `DataTable`, puoi passare un array di oggetti `Style`—uno per colonna. `null` significa “usa lo stile predefinito”. Qui applichiamo `priceStyle` solo alla seconda colonna. + +```csharp +// Column 0 (Product) gets the default style, Column 1 (Price) gets the currency style +Style[] columnStyles = { null, priceStyle }; +``` + +Se in seguito aggiungi altre colonne, estendi semplicemente l’array. La lunghezza di `columnStyles` deve corrispondere al numero di colonne che stai importando, altrimenti Aspose lancerà un’eccezione. + +--- + +## Step 5: Import the DataTable with Styles (import datatable to excel) + +Ora avviene la magia: il nostro `DataTable` viene inserito nel foglio di lavoro e la colonna prezzo appare subito formattata come valuta. + +```csharp +// Parameters: +// - dataTable: source data +// - true: include column headers +// - startRow: 0 (top of sheet) +// - startColumn: 0 (first column) +// - columnStyles: style array defined above +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +*Cosa succede se hai più di due colonne?* Basta ampliare `columnStyles` in modo che ogni colonna ottenga lo stile appropriato (o `null` per quello predefinito). Questo è il modo più pulito per **aggiungere formato numero excel** in modo selettivo. + +--- + +## Step 6: Save the Workbook (create excel workbook c#) + +Infine, scriviamo il file su disco. Scegli qualsiasi cartella in cui hai permessi di scrittura. + +```csharp +// Save the workbook as an XLSX file +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +Apri `StyledTable.xlsx` in Excel e dovresti vedere: + +| Product | Price | +|---------|-------| +| Apple | $1.23 | +| Banana | $0.78 | +| Cherry | $2.50 | + +La colonna **Price** è già formattata come valuta—nessun passaggio aggiuntivo necessario. + +--- + +## Edge Cases & Variations + +### More Columns, Different Formats + +Se devi **formattare celle valuta** per più colonne (ad esempio Cost, Tax, Total), crea uno `Style` separato per ciascuna e popola `columnStyles` di conseguenza: + +```csharp +Style costStyle = workbook.CreateStyle(); +costStyle.Number = 164; // currency + +Style taxStyle = workbook.CreateStyle(); +taxStyle.Number = 164; + +// Assuming columns: Product, Cost, Tax, Total +Style[] styles = { null, costStyle, taxStyle, priceStyle }; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, styles); +``` + +### Locale‑Specific Currency + +Per Euro o Sterlina, usa ID integrati diversi (ad esempio 165 per `€#,##0.00`). In alternativa, imposta una stringa di formato personalizzata: + +```csharp +priceStyle.Custom = "€#,##0.00"; +``` + +### Large Data Sets + +Aspose.Cells può gestire milioni di righe, ma il consumo di memoria cresce con gli oggetti stile. Riutilizza una singola istanza di `Style` per tutte le colonne valuta per mantenere basso l’ingombro. + +### Missing Styles + +Se `columnStyles` è più corto del numero di colonne, Aspose applicherà lo stile predefinito alle colonne rimanenti. Questo è utile quando ti interessano solo poche colonne. + +--- + +## Full Working Example (All Steps Combined) + +Di seguito trovi il programma completo da copiare‑incollare in una console app. Include tutti i pezzi discussi, più qualche commento utile. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // Step 1: Build sample DataTable (import datatable to excel) + // ------------------------------------------------- + DataTable dataTable = new DataTable(); + dataTable.Columns.Add("Product", typeof(string)); + dataTable.Columns.Add("Price", typeof(double)); + dataTable.Rows.Add("Apple", 1.23); + dataTable.Rows.Add("Banana", 0.78); + dataTable.Rows.Add("Cherry", 2.50); + // You can add as many rows as you like here. + + // ------------------------------------------------- + // Step 2: Create a new workbook (create excel workbook c#) + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // Step 3: Define a currency style (format cells currency) + // ------------------------------------------------- + Style priceStyle = workbook.CreateStyle(); + priceStyle.Number = 164; // "$#,##0.00" – built‑in currency format + + // ------------------------------------------------- + // Step 4: Build the style array (apply currency format column) + // ------------------------------------------------- + // First column gets default style (null), second column uses priceStyle. + Style[] columnStyles = { null, priceStyle }; + + // ------------------------------------------------- + // Step 5: Import the DataTable with the style array + // ------------------------------------------------- + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // ------------------------------------------------- + // Step 6: Save the workbook to disk + // ------------------------------------------------- + string outputPath = @"YOUR_DIRECTORY\StyledTable.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } +} +``` + +**Risultato atteso:** Aprendo `StyledTable.xlsx` vedrai la colonna `Price` con il simbolo del dollaro e due cifre decimali, esattamente come richiesto dall’istruzione **format cells currency**. + +--- + +## Frequently Asked Questions + +**D: Funziona con .NET Core?** +R: Assolutamente. Aspose.Cells è conforme a .NET‑standard, quindi puoi puntare a .NET 5, .NET 6 o versioni successive senza modifiche. + +**D: E se il mio DataTable ha 10 colonne ma voglio formattare solo la colonna 5?** +R: Crea un `Style[]` di lunghezza 10, riempi le posizioni 0‑4 e 6‑9 con `null`, e inserisci lo stile personalizzato all’indice 4 (zero‑based). Aspose rispetterà ogni voce. + +**D: Posso nascondere la riga di intestazione?** +R: Dopo l’importazione, imposta `worksheet.Cells.Rows[0].Hidden = true;` oppure passa `false` per il parametro `includeColumnNames` in `ImportDataTable`. + +--- + +## Conclusion + +Abbiamo appena **creato un workbook Excel in C#**, importato un `DataTable` e **applicato un formato valuta a una colonna** usando Aspose.Cells. I passaggi principali—preparare i dati, definire uno stile, costruire un array di stili, importare con `ImportDataTable` e salvare—coprono il nucleo della maggior parte dei compiti di automazione Excel. + +Da qui potresti esplorare: + +- **aggiungere formato numero excel** per date o percentuali +- Esportare più fogli in un unico file +- Usare **format cells currency** con simboli specifici per locale +- Automatizzare la creazione di grafici basati sugli stessi dati + +Provali e diventerai presto il punto di riferimento per i report Excel nel tuo team. Hai un trucco da condividere? Lascia un commento qui sotto—buona programmazione! + +![create excel workbook c# screenshot](image.png "create excel workbook c#") + +{{< /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/italian/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md b/cells/italian/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md new file mode 100644 index 0000000000..421aed55b5 --- /dev/null +++ b/cells/italian/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md @@ -0,0 +1,234 @@ +--- +category: general +date: 2026-03-30 +description: Crea rapidamente un workbook Excel in C# inserendo dati JSON e salvando + il file come XLSX. Scopri come generare Excel da JSON, scrivere JSON in Excel e + inserire JSON in Excel. +draft: false +keywords: +- create excel workbook c# +- save workbook as xlsx +- generate excel from json +- write json to excel +- insert json into excel +language: it +og_description: Crea rapidamente un workbook Excel in C# inserendo dati JSON e salvando + il workbook come XLSX. Segui questa guida passo‑passo per generare Excel da JSON. +og_title: Crea cartella di lavoro Excel in C# – Inserisci JSON e salva come XLSX +tags: +- Aspose.Cells +- C# +- Excel automation +title: Crea cartella di lavoro Excel C# – Inserisci JSON e salva come XLSX +url: /it/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crea Excel Workbook C# – Inserisci JSON e Salva come XLSX + +Hai mai avuto bisogno di **create Excel workbook C#** e inserire del JSON direttamente in una cella? Non sei l'unico—gli sviluppatori spesso si trovano di fronte allo stesso problema quando hanno payload API o file di configurazione che devono finire in un foglio di calcolo per report o condivisione. + +La buona notizia è che con Aspose.Cells puoi farlo in poche righe, **save workbook as XLSX**, e mantenere l'intero processo type‑safe. In questo tutorial **generate Excel from JSON**, **write JSON to Excel**, e ti mostreremo i passaggi esatti per **insert JSON into Excel** senza concatenazioni di stringhe complicate. + +## Cosa Copre Questa Guida + +We'll walk through: + +1. Configurare una nuova cartella di lavoro. +2. Aggiungere uno Smart Marker che si aspetta JSON. +3. Fornire un array JSON al marker. +4. Regolare `SmartMarkerOptions` affinché il JSON rimanga in una singola cella. +5. Salvare il file come cartella di lavoro XLSX. + +Alla fine avrai un file `JsonSingleCell.xlsx` pronto all'uso e un modello solido che potrai riutilizzare per qualsiasi scenario JSON‑to‑Excel. Nessun servizio esterno, solo C# puro e la libreria Aspose.Cells. + +**Prerequisiti** + +- .NET 6+ (or .NET Framework 4.6+). +- Visual Studio 2022 o qualsiasi IDE compatibile con C#. +- Pacchetto NuGet `Aspose.Cells` (versione di prova gratuita o licenziata). + +Se li hai, immergiamoci—nessuna configurazione aggiuntiva richiesta. + +--- + +## Passo 1: Crea una Nuova Cartella di Lavoro in C# + +La prima cosa di cui hai bisogno è un oggetto workbook vuoto. Pensalo come un nuovo file Excel in attesa di dati. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is your empty Excel file +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; +``` + +**Perché è importante:** +`Workbook` è il punto di ingresso per tutte le operazioni Excel. Creandolo per primo, ti assicuri che la successiva chiamata **save workbook as xlsx** abbia un oggetto concreto da serializzare. + +> **Suggerimento:** Se prevedi di lavorare con più fogli, puoi aggiungerli ora con `workbook.Worksheets.Add()`. + +## Passo 2: Inserisci uno Smart Marker che Si Aspetta JSON + +Gli Smart Markers sono segnaposti che Aspose.Cells sostituisce a runtime. Qui gli diciamo di cercare una stringa JSON chiamata `data`. + +```csharp +// Put a Smart Marker in cell A1 – {{data:json}} tells Aspose to expect JSON +worksheet.Cells["A1"].PutValue("{{data:json}}"); +``` + +**Perché è importante:** +Il suffisso `:json` indica al motore che il valore in ingresso è JSON, non testo semplice. Questo è fondamentale per **write json to excel** senza parsing manuale. + +## Passo 3: Definisci l'Array JSON + +Ora creiamo il JSON che vogliamo inserire. Per dimostrazione useremo una semplice lista di persone. + +```csharp +// Sample JSON array – could come from an API, file, or DB +string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; +``` + +**Caso limite:** +Se il tuo JSON contiene virgolette doppie, assicurati che siano escape (come mostrato) o usa una stringa verbatim (`@"..."`) per evitare errori di compilazione. + +## Passo 4: Configura le Opzioni Smart Marker – Mantieni l'Array Intero + +Per impostazione predefinita, Aspose cercherebbe di espandere l'array su più righe. Vogliamo che l'intera stringa JSON rimanga all'interno di una singola cella, il che è perfetto per scenari **insert json into excel** in cui il consumatore parserà il JSON in seguito. + +```csharp +SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions +{ + // Treat the whole array as a single cell value + ArrayAsSingle = true +}; +``` + +**Perché è importante:** +`ArrayAsSingle = true` impedisce l'espansione delle righe, fornendoti un blob JSON pulito in una singola cella. Questo è essenziale quando il foglio di calcolo è un formato di trasporto piuttosto che un report. + +## Passo 5: Processa lo Smart Marker con i Dati JSON + +Ora associamo il JSON al marker e lasciamo che Aspose faccia il lavoro pesante. + +```csharp +// Process the marker – the anonymous object maps "data" to our JSON string +worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); +``` + +**Cosa succede dietro le quinte:** +Aspose valuta il segnaposto `{{data:json}}`, serializza la stringa `jsonData` e la scrive nella cella A1 rispettando le opzioni impostate. + +## Passo 6: Salva la Cartella di Lavoro come File XLSX + +Infine, scriviamo la cartella di lavoro su disco. È qui che entra in gioco **save workbook as xlsx**. + +```csharp +// Save the workbook – the extension determines the format (XLSX here) +workbook.Save("JsonSingleCell.xlsx"); +``` + +**Risultato:** +Apri `JsonSingleCell.xlsx` in Excel e vedrai l'array JSON esattamente come lo abbiamo definito, posizionato ordinatamente nella cella A1. + +## Esempio Completo, Eseguibile + +Di seguito trovi il programma completo che puoi copiare‑incollare in un'app console. Include tutti i passaggi sopra e funziona subito (supponendo che il pacchetto NuGet Aspose.Cells sia installato). + +```csharp +using System; +using Aspose.Cells; + +namespace JsonToExcelDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add a Smart Marker that expects JSON + worksheet.Cells["A1"].PutValue("{{data:json}}"); + + // 3️⃣ Define the JSON array + string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; + + // 4️⃣ Configure options – keep array as a single cell value + SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions + { + ArrayAsSingle = true + }; + + // 5️⃣ Process the marker with the JSON payload + worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); + + // 6️⃣ Save the workbook as XLSX + workbook.Save("JsonSingleCell.xlsx"); + + Console.WriteLine("Excel file created successfully! Check JsonSingleCell.xlsx."); + } + } +} +``` + +**Output previsto in Excel** + +| A | +|---| +| `[{"Name":"John","Age":30},{"Name":"Jane","Age":28}]` | + +Quella singola cella ora contiene un array JSON perfettamente valido pronto per l'elaborazione a valle. + +## Domande Frequenti & Casi Limite + +### E se ho bisogno che il JSON sia distribuito su più righe? + +Imposta `ArrayAsSingle = false` (il valore predefinito). Aspose creerà una riga per ogni elemento dell'array, mappando le proprietà dell'oggetto alle colonne. È utile quando vuoi una vista tabellare invece di una stringa JSON grezza. + +### Posso usare un file JSON invece di una stringa hard‑coded? + +Assolutamente. Leggi il file in una stringa: + +```csharp +string jsonData = File.ReadAllText("people.json"); +``` + +Quindi passa `jsonData` alla stessa chiamata `Process`. Il resto della pipeline rimane invariato. + +### Funziona con payload JSON di grandi dimensioni? + +Sì, ma tieni d'occhio l'uso della memoria. Per array molto grandi, considera lo streaming dei dati o la scrittura diretta su righe (`ArrayAsSingle = false`) per evitare una singola cella gigantesca che Excel potrebbe faticare a gestire. + +### Il file XLSX generato è compatibile con versioni più vecchie di Excel? + +Il formato `.xlsx` è basato su Office Open XML e funziona con Excel 2007 in poi. Se ti serve il formato legacy `.xls`, modifica la chiamata di salvataggio: + +```csharp +workbook.Save("JsonSingleCell.xls", SaveFormat.Excel97To2003); +``` + +## Suggerimenti Pro per Lavorare con JSON e Excel + +- **Valida prima il JSON** – usa `System.Text.Json.JsonDocument.Parse(jsonData)` per rilevare input malformato subito. +- **Escapa i caratteri speciali** – se il tuo JSON contiene interruzioni di riga, appariranno come `\n` letterali nella cella; puoi sostituirle con `Environment.NewLine` prima del processing. +- **Riutilizza gli Smart Markers** – puoi inserire più marker nello stesso foglio, ognuno puntante a una diversa proprietà JSON. +- **Combina con formule** – una volta che il JSON è in una cella, puoi usare `FILTERXML` di Excel (nelle versioni più recenti) per analizzarlo al volo. + +## Conclusione + +Ora sai come **create excel workbook c#**, incorporare un payload JSON e **save workbook as xlsx** usando Aspose.Cells. Questo modello ti permette di **generate excel from json**, **write json to excel**, e **insert json into excel** con poche righe di codice, rendendo lo scambio di dati tra servizi e analisti indolore. + +Pronto per il passo successivo? Prova a convertire l'array JSON in una tabella appropriata (imposta `ArrayAsSingle = false`) o esplora lo styling del foglio dopo l'inserimento. Lo stesso approccio funziona per CSV, XML o anche oggetti personalizzati—basta regolare il tipo di Smart Marker. + +Buon coding, e sentiti libero di sperimentare! Se incontri problemi, lascia un commento qui sotto o consulta la documentazione ufficiale di Aspose per approfondimenti sui Smart Markers. + +{{< /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/italian/net/excel-workbook/_index.md b/cells/italian/net/excel-workbook/_index.md index a13de5a9c9..ca6e32b5c0 100644 --- a/cells/italian/net/excel-workbook/_index.md +++ b/cells/italian/net/excel-workbook/_index.md @@ -86,6 +86,7 @@ Perché non cogliere l'occasione per migliorare le tue competenze in Excel? Ogni | [Anteprima di stampa della cartella di lavoro](./workbook-print-preview/) | Scopri come creare anteprime di stampa per file Excel utilizzando Aspose.Cells per .NET. Scopri i passaggi di codifica in un tutorial dettagliato e facile da seguire. | | [Lavorare con le proprietà del tipo di contenuto](./working-with-content-type-properties/) | Scopri come utilizzare Aspose.Cells per .NET per gestire le proprietà del tipo di contenuto e migliorare la gestione dei metadati di Excel. Segui questa semplice guida passo passo. | | [Supporto per la firma Xades](./xades-signature-support/) | Scopri come aggiungere firme Xades ai file Excel utilizzando Aspose.Cells per .NET con questa guida passo passo. Proteggi i tuoi documenti. | +| [Crea foglio master in C# – Guida completa Aspose.Cells](./create-master-sheet-in-c-complete-aspose-cells-guide/) | Scopri come creare un foglio master in C# utilizzando Aspose.Cells con questa guida completa passo passo. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/italian/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md b/cells/italian/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md new file mode 100644 index 0000000000..715648e98d --- /dev/null +++ b/cells/italian/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md @@ -0,0 +1,228 @@ +--- +category: general +date: 2026-03-30 +description: Crea un foglio master usando Aspose.Cells in C#. Scopri come creare una + cartella di lavoro Excel in C#, consentire nomi di foglio duplicati e salvare la + cartella di lavoro come XLSX in pochi passaggi. +draft: false +keywords: +- create master sheet +- create excel workbook c# +- save workbook as xlsx +- allow duplicate sheet names +language: it +og_description: Crea foglio master con Aspose.Cells in C#. Questa guida mostra come + creare una cartella di lavoro Excel in C#, consentire nomi di foglio duplicati e + salvare la cartella di lavoro come XLSX. +og_title: Crea foglio master in C# – Guida completa ad Aspose.Cells +tags: +- Aspose.Cells +- C# +- Excel automation +title: Crea foglio master in C# – Guida completa a Aspose.Cells +url: /it/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crea foglio master in C# – Guida completa ad Aspose.Cells + +Ti è mai capitato di dover **creare un foglio master** in un file Excel ma non eri sicuro di come gestire una serie di fogli di dettaglio che condividono lo stesso nome di base? Non sei solo. In molti scenari di reporting ti ritrovi con decine di schede di dettaglio, e il comportamento predefinito della maggior parte delle librerie è lanciare un'eccezione quando due fogli dovessero avere lo stesso nome. + +Fortunatamente, Aspose.Cells rende un gioco da ragazzi **creare un foglio master**, configurare il motore per **consentire nomi di foglio duplicati**, e poi **salvare la cartella di lavoro come XLSX**—tutto da codice C# pulito. In questo tutorial percorreremo un esempio completamente eseguibile, spiegheremo perché ogni riga è importante e ti forniremo una serie di consigli che potrai copiare direttamente nei tuoi progetti. + +> **Cosa imparerai** +> * Come **creare una cartella di lavoro Excel in stile C#** usando Aspose.Cells. +> * Come incorporare uno smart‑marker che genera un foglio di dettaglio per ogni riga di dati. +> * Come impostare `DetailSheetNewName = DuplicateAllowed` in modo che la libreria aggiunga automaticamente un suffisso numerico. +> * Come **salvare la cartella di lavoro come XLSX** su disco senza passaggi aggiuntivi. + +Nessuna documentazione esterna necessaria—tutto ciò che ti serve è qui. + +--- + +## Prerequisiti + +Prima di immergerci, assicurati di avere: + +| Requirement | Why it matters | +|-------------|----------------| +| .NET 6.0 or later (or .NET Framework 4.7+) | Aspose.Cells 23.x+ è destinato a questi runtime. | +| Visual Studio 2022 (or any C# IDE) | Per una facile creazione del progetto e il debug. | +| Aspose.Cells for .NET NuGet package (`Install-Package Aspose.Cells`) | La libreria che alimenta tutta la magia degli smart‑marker. | +| Basic C# knowledge | Capirai la sintassi senza un corso intensivo. | + +Se ti manca qualcuno di questi, aggiungili subito—non ha senso continuare con un ambiente a metà. + +## Passo 1: Crea foglio master con Aspose.Cells + +La prima cosa che facciamo è **creare una cartella di lavoro Excel in stile C#** istanziando un oggetto `Workbook`. Questo oggetto contiene già un foglio di lavoro predefinito, che rinomineremo in “Master” e tratteremo come modello per tutte le pagine di dettaglio. + +```csharp +using Aspose.Cells; + +// Step 1: Initialise a new workbook – this automatically gives us one sheet +Workbook workbook = new Workbook(); + +// Grab the first (and only) worksheet that comes with a fresh workbook +Worksheet masterSheet = workbook.Worksheets[0]; + +// Give it a meaningful name – this will be our master sheet +masterSheet.Name = "Master"; +``` + +*Perché rinominare il foglio?* +Un nome predefinito come “Sheet1” non trasmette l'intento, e più tardi, quando esaminerai il file, vorrai che la scheda master sia immediatamente riconoscibile. Dare un nome impedisce anche collisioni accidentali quando aggiungerai altri fogli. + +## Passo 2: Prepara lo smart‑marker che genererà i fogli di dettaglio + +Gli smart‑marker sono segnaposto che Aspose.Cells sostituisce con i dati a runtime. Inserendo `{{#detail:DataSheetName}}` nella cella **A1**, diciamo al motore: “Per ogni record nella fonte dati, crea un nuovo foglio il cui nome proviene dal campo `DataSheetName`.” + +```csharp +// Step 2: Insert a smart‑marker into cell A1. +// The marker #detail tells Aspose.Cells to generate a new sheet per data row. +masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); +``` + +Considera il marcatore come una piccola scheda istruttiva attaccata al foglio di lavoro. Quando il processore viene eseguito, legge la scheda, estrae il valore appropriato dalla fonte dati e quindi clona il foglio master in una nuova scheda. + +## Passo 3: Costruisci la fonte dati – nomi di foglio duplicati di proposito + +Nella vita reale potresti prelevare questi dati da un database, ma per la dimostrazione useremo un array in‑memory di oggetti anonimi. Nota che entrambi gli elementi usano lo stesso nome di base `"Detail"`; questo è lo scenario in cui **consentire nomi di foglio duplicati** diventa cruciale. + +```csharp +// Step 3: Create a data source with two items that share the same base sheet name. +var dataSource = new[] +{ + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } +}; +``` + +Se provassi questo senza opzioni speciali, Aspose.Cells solleverebbe un'eccezione alla seconda iterazione perché esiste già un foglio chiamato “Detail”. Ecco perché il passo successivo è importante. + +## Passo 4: Abilita i nomi di foglio duplicati + +Aspose.Cells espone `SmartMarkerOptions.DetailSheetNewName`. Impostandolo su `DetailSheetNewName.DuplicateAllowed` si indica al motore di aggiungere automaticamente un suffisso numerico (ad es., “Detail_1”) ogni volta che si verifica un conflitto di nomi. + +```csharp +// Step 4: Configure SmartMarker options to permit duplicate sheet names. +var smartMarkerOptions = new SmartMarkerOptions +{ + // This makes the library rename clashes to "Detail_1", "Detail_2", etc. + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed +}; +``` + +*Perché non assegnare manualmente a ogni riga un nome unico?* +Perché spesso i dati di origine non garantiscono l'unicità, specialmente quando gli utenti inseriscono testo libero. Lasciare che la libreria gestisca il suffisso elimina un'intera classe di bug. + +## Passo 5: Processa gli smart‑marker e genera i fogli di dettaglio + +Ora chiamiamo `SmartMarkers.Process`, passando sia la fonte dati sia le opzioni appena configurate. Il metodo scorre ogni elemento, clona il foglio master e rinomina il clone in base al campo `DataSheetName` (aggiungendo un suffisso se necessario). + +```csharp +// Step 5: Run the smart‑marker processor – this creates the detail sheets. +masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); +``` + +Dopo l'esecuzione di questa riga avrai tre schede nella cartella di lavoro: + +1. **Master** – il modello originale. +2. **Detail** – primo foglio generato (senza suffisso). +3. **Detail_1** – secondo foglio generato (suffisso aggiunto automaticamente). + +Puoi verificare aprendo il file in Excel; vedrai i due fogli di dettaglio affiancati. + +## Passo 6: Salva la cartella di lavoro come file XLSX + +Infine, salviamo il file su disco. Il metodo `Save` sceglie automaticamente il formato XLSX quando gli fornisci un'estensione `.xlsx`. + +```csharp +// Step 6: Persist the workbook – this is the moment we finally “save workbook as XLSX”. +string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; +workbook.Save(outputPath); +``` + +**Consiglio professionale:** Se devi inviare il file direttamente a una risposta web (ad es., ASP.NET Core), usa `workbook.Save(stream, SaveFormat.Xlsx)` invece di un percorso file. + +## Esempio completo funzionante + +Di seguito trovi il programma completo, pronto per l'esecuzione. Copialo e incollalo in un'app console, premi F5 e apri il file generato per vedere il risultato. + +```csharp +using System; +using Aspose.Cells; + +namespace MasterSheetDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook and rename the default sheet to "Master" + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert a smart‑marker that will generate a detail sheet per data row + masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); + + // 3️⃣ Prepare a data source where two rows share the same sheet name + var dataSource = new[] + { + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } + }; + + // 4️⃣ Allow duplicate sheet names – the library will add "_1", "_2", … + var smartMarkerOptions = new SmartMarkerOptions + { + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed + }; + + // 5️⃣ Process the smart‑markers; this creates the detail sheets + masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); + + // 6️⃣ Save the workbook as an XLSX file + string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Risultato atteso:** Apri `DuplicateDetailSheets.xlsx` e vedrai tre fogli di lavoro—`Master`, `Detail` e `Detail_1`. Ogni foglio di dettaglio è una copia esatta del master, pronta per essere riempita con i dati specifici della riga in seguito. + +## Domande comuni e casi limite + +### E se ho bisogno di più di due fogli duplicati? + +Nessun problema. La stessa impostazione `DuplicateAllowed` continuerà ad aggiungere numeri incrementali (`Detail_2`, `Detail_3`, …) finché ogni riga avrà la sua scheda. + +### Posso personalizzare il formato del suffisso? + +Di default, Aspose.Cells utilizza un underscore seguito da un indice numerico. Se ti serve un pattern diverso (ad es., “Detail‑A”, “Detail‑B”), dovrai post‑processare la cartella di lavoro dopo l'esecuzione di `Process`, iterando su `workbook.Worksheets` e rinominando come preferisci. + +### Questo approccio funziona con set di dati di grandi dimensioni (centinaia di righe)? + +Sì, ma tieni d'occhio l'uso della memoria. Ogni foglio generato è una copia completa del master, quindi un numero enorme di righe può gonfiare rapidamente le dimensioni del file. Se ti servono solo poche righe per foglio, considera di usare `SmartMarkerOptions.RemoveEmptyRows = true` per eliminare le celle in eccesso. + +### Il file generato è davvero un file XLSX? + +Assolutamente. Il metodo `Save` scrive il pacchetto Open XML che Excel si aspetta. Puoi anche aprire il file con LibreOffice o Google Sheets senza alcuna conversione. + +## Consigli per codice pronto alla produzione + +| Tip | Why it matters | +|-----|----------------| +| **Dispose `Workbook + +{{< /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/italian/net/formulas-functions/_index.md b/cells/italian/net/formulas-functions/_index.md index b4819682af..9c394e9c46 100644 --- a/cells/italian/net/formulas-functions/_index.md +++ b/cells/italian/net/formulas-functions/_index.md @@ -40,7 +40,7 @@ Con questi tutorial imparerai come: ## Tutorial su formule e funzioni ### [Estrarre il testo della formula nelle cartelle di lavoro .NET utilizzando Aspose.Cells](./aspose-cells-formula-text-net) -Scopri come estrarre programmaticamente il testo delle formule dai file Excel utilizzando Aspose.Cells in .NET. Perfetto per il controllo e la documentazione della logica delle formule incorporata nei fogli di calcolo. +Scopri come estrarre programmaticamente il testo delle formule dai file Excel utilizzando Aspose.Cells in .NET. Perfetto per il controllo e la documentazione della logica delle formule incorporate nei fogli di calcolo. ### [Automatizzare le attività di Excel utilizzando Aspose.Cells .NET: impostare le formule negli intervalli](./aspose-cells-net-set-formulas-ranges) Scopri come automatizzare l'impostazione di formule negli intervalli con Aspose.Cells per .NET. Semplifica i flussi di lavoro di Excel in modo efficiente utilizzando C# applicando la stessa formula a più celle contemporaneamente. @@ -102,6 +102,9 @@ Scopri come specificare la lingua dei tuoi file Excel utilizzando Aspose.Cells . ### [Aggiornare le formule di Excel Power Query con Aspose.Cells .NET](./update-power-query-formulas-aspose-cells-net) Scopri come aggiornare a livello di codice le formule di Power Query nelle cartelle di lavoro di Excel utilizzando Aspose.Cells per .NET. Gestione delle origini dati master per il reporting dinamico. +### [Creare una cartella di lavoro Excel C# – Guida a Lambda, SEQUENCE e EXPAND](./create-excel-workbook-c-lambda-sequence-expand-guide/) +Scopri come creare cartelle di lavoro Excel in C# sfruttando le funzioni Lambda, SEQUENCE ed EXPAND di Aspose.Cells per .NET. + ## Comprensione dei tipi di formule di Excel Le formule di Excel si presentano in varie forme, ciascuna con caratteristiche uniche che Aspose.Cells può gestire: diff --git a/cells/italian/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md b/cells/italian/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md new file mode 100644 index 0000000000..a7151115f7 --- /dev/null +++ b/cells/italian/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-30 +description: Crea una cartella di lavoro Excel in C# usando Aspose.Cells. Impara ad + applicare la funzione lambda in Excel, la funzione sequence in Excel, l'espansione + di array in Excel e a salvare la cartella di lavoro come xlsx. +draft: false +keywords: +- create excel workbook c# +- lambda function excel +- save workbook as xlsx +- sequence function excel +- expand array excel +language: it +og_description: Crea rapidamente una cartella di lavoro Excel in C#. Questa guida + mostra come utilizzare la funzione lambda di Excel, la funzione sequenza di Excel, + l'espansione di array di Excel e salvare la cartella di lavoro come xlsx. +og_title: Crea un workbook Excel in C# – Guida a Lambda, SEQUENCE e EXPAND +tags: +- Aspose.Cells +- C# +- Excel automation +title: Crea cartella di lavoro Excel in C# – Guida a Lambda, SEQUENCE e EXPAND +url: /it/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crea Cartella di Lavoro Excel C# – Guida a Lambda, SEQUENCE & EXPAND + +Ti è mai capitato di **creare una cartella di lavoro Excel C#** per un report automatizzato, ma non sapevi quali chiamate API utilizzare? Non sei solo: molti sviluppatori incontrano lo stesso ostacolo al loro primo approccio alla generazione programmatica di Excel. In questa guida vedrai un esempio completo e funzionante che copre tutto, dalla nuova **funzione SEQUENCE di Excel** alla potente **funzione LAMBDA di Excel**, e anche come **espandere i risultati di un array in Excel**. + +Ti mostreremo anche i passaggi esatti per **salvare la cartella di lavoro come xlsx** così potrai consegnare il file a chiunque utilizzi Excel. Alla fine di questo tutorial avrai uno snippet solido, pronto per la produzione, da inserire in qualsiasi progetto .NET. Niente link vaghi tipo “vedi la documentazione”—solo codice che funziona oggi. + +## Cosa ti serve + +- **.NET 6.0 o successivo** – l’esempio è mirato a .NET 6, ma funziona con qualsiasi versione recente. +- **Aspose.Cells per .NET** – installalo via NuGet (`Install-Package Aspose.Cells`). +- Una conoscenza di base della sintassi C# (variabili, oggetti ed espressioni lambda). +- Un IDE con cui ti trovi a tuo agio (Visual Studio, Rider o VS Code). + +Questo è tutto. Nessun COM interop aggiuntivo, nessun Office installato sul server—Aspose.Cells gestisce tutto in memoria. + +## Crea Cartella di Lavoro Excel C# – Implementazione Passo‑per‑Passo + +Di seguito suddividiamo il processo in passaggi di piccole dimensioni. Ogni passo ha un’intestazione chiara, un breve estratto di codice e una spiegazione del **perché** lo facciamo. Sentiti libero di copiare il blocco completo alla fine e di eseguirlo come app console. + +### Passo 1 – Inizializza una Nuova Cartella di Lavoro + +Prima di tutto: ci serve un oggetto workbook vuoto che rappresenta il file Excel in memoria. + +```csharp +using Aspose.Cells; + +// Step 1: Create a new workbook and get the first worksheet +Workbook workbook = new Workbook(); // empty workbook +Worksheet sheet = workbook.Worksheets[0]; // default first sheet +``` + +*Perché è importante:* `Workbook` è il punto di ingresso per tutte le operazioni di Aspose.Cells. Prelevando il primo `Worksheet` otteniamo una tela su cui scrivere formule, valori o formattazioni. + +> **Consiglio:** Se ti servono più fogli, chiama semplicemente `workbook.Worksheets.Add()` e conserva un riferimento a ciascuno. + +### Passo 2 – Usa la funzione SEQUENCE di Excel per Generare Dati + +La **sequence function excel** crea un array dinamico di numeri senza VBA. Lo inseriremo nella cella `A1` e lasceremo che Excel lo espanda automaticamente. + +```csharp +// Step 2: Generate a 5‑row, 1‑column array from a SEQUENCE +sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; // 1..3 padded with blanks +``` + +*Perché è importante:* `SEQUENCE(3)` restituisce `[1,2,3]`. Avvolgendola con `EXPAND` forziamo il risultato in un intervallo di 5 righe, riempiendo le righe extra con celle vuote. Questo dimostra sia **sequence function excel** sia **expand array excel** in un unico passo. + +### Passo 3 – Aggrega Numeri con la funzione LAMBDA di Excel + +Ora mostriamo la capacità della **lambda function excel**. Sommiamo i numeri da 1 a 5 usando la nuova funzione `REDUCE`, che internamente si basa su una lambda. + +```csharp +// Step 3: Aggregate a sequence (sum 1..5) using REDUCE/LAMBDA +sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; // result = 15 +``` + +*Perché è importante:* `REDUCE` itera sull’array prodotto da `SEQUENCE(5)`, passando ogni elemento (`b`) alla lambda insieme all’accumulatore (`a`). La lambda `a+b` li somma, lasciando `15` in `B1`. È un modo pulito, basato solo su formule, per eseguire riduzioni senza cicli in C#. + +### Passo 4 – Applica Funzioni Trigonometriche Direttamente nelle Celle + +Le funzioni matematiche integrate di Excel sono utili per calcoli rapidi. Inseriremo una cotangente e una cotangente iperbolica in celle adiacenti. + +```csharp +// Step 4: Trigonometric functions directly in Excel cells +sheet["C1"].Formula = "COT(PI()/4)"; // evaluates to 1 +sheet["D1"].Formula = "COTH(1)"; // hyperbolic cotangent of 1 +``` + +*Perché è importante:* Dimostra che puoi mescolare le funzioni matematiche classiche con le nuove formule a array dinamico. Non è necessario calcolare questi valori in C# a meno di avere un motivo specifico legato alle prestazioni. + +### Passo 5 – Calcola Tutte le Formule + +Aspose.Cells non valuta automaticamente le formule quando le imposti. Devi chiedere esplicitamente di calcolarle. + +```csharp +// Step 5: Force calculation so that cells store the results +workbook.CalculateFormula(); +``` + +*Perché è importante:* Dopo questa chiamata, la proprietà `Value` di ogni cella contiene il risultato valutato, pronto per essere salvato o letto nuovamente. + +### Passo 6 – Salva la Cartella di Lavoro come Xlsx + +Infine, persistiamo la cartella di lavoro su disco usando il pattern **save workbook as xlsx**. + +```csharp +// Step 6: Save the workbook to an Excel file (XLSX format) +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + +workbook.Save(outputPath); +Console.WriteLine($"Workbook saved to: {outputPath}"); +``` + +*Perché è importante:* Il metodo `Save` rileva automaticamente l’estensione del file. Specificando “.xlsx” garantiamo la compatibilità con le versioni moderne di Excel. Il percorso punta al desktop per un facile accesso durante i test. + +### Esempio Completo Funzionante + +Di seguito trovi il programma completo da incollare in un nuovo progetto console. Include tutti i passaggi sopra, più un piccolo blocco di verifica che stampa i valori calcolati sulla console. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialize workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + + // SEQUENCE + EXPAND + sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; + + // REDUCE with LAMBDA + sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; + + // Trig functions + sheet["C1"].Formula = "COT(PI()/4)"; + sheet["D1"].Formula = "COTH(1)"; + + // Calculate formulas + workbook.CalculateFormula(); + + // Verify results (optional) + Console.WriteLine("A1‑A5 (expanded SEQUENCE):"); + for (int i = 0; i < 5; i++) + { + Console.WriteLine($" Row {i + 1}: {sheet.Cells[i, 0].Value ?? "blank"}"); + } + Console.WriteLine($"B1 (sum 1‑5): {sheet["B1"].Value}"); + Console.WriteLine($"C1 (cot(π/4)): {sheet["C1"].Value}"); + Console.WriteLine($"D1 (coth(1)): {sheet["D1"].Value}"); + + // Save workbook + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + workbook.Save(outputPath); + Console.WriteLine($"Workbook saved to: {outputPath}"); + } +} +``` + +**Output previsto nella console** + +``` +A1‑A5 (expanded SEQUENCE): + Row 1: 1 + Row 2: 2 + Row 3: 3 + Row 4: blank + Row 5: blank +B1 (sum 1‑5): 15 +C1 (cot(π/4)): 1 +D1 (coth(1)): 1.31303528549933 +Workbook saved to: C:\Users\YourName\Desktop\NewFunctions.xlsx +``` + +E quando apri *NewFunctions.xlsx* vedrai gli stessi numeri disposti nelle prime quattro colonne. + +![crea cartella di lavoro excel c# screenshot del foglio di calcolo risultante](/images/create-excel-workbook-csharp.png) + +## Casi Limite, Suggerimenti e Domande Frequenti + +- **E se ho bisogno di più di un foglio?** + Basta chiamare `workbook.Worksheets.Add()` e ripetere le assegnazioni di formula su ogni nuovo oggetto `Worksheet`. + +- **Posso usare versioni più vecchie di Excel?** + Le funzioni a array dinamico (`SEQUENCE`, `EXPAND`, `REDUCE`) richiedono Excel 365 o Excel 2021+. Se devi supportare versioni più vecchie, utilizza formule classiche o calcola i valori in C# prima di scriverli. + +- **Problemi di prestazioni?** + Per migliaia di righe, impostare le formule su un intervallo e poi chiamare `CalculateFormula` è solitamente più veloce rispetto a iterare e assegnare valori uno‑per‑uno. + +- **Salvare su uno stream invece che su file?** + `work + +{{< /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/italian/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md b/cells/italian/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md new file mode 100644 index 0000000000..ece4b71367 --- /dev/null +++ b/cells/italian/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md @@ -0,0 +1,214 @@ +--- +category: general +date: 2026-03-30 +description: Impara come usare WRAPCOLS in C# per creare una cartella di lavoro Excel, + aggiungere dati in Excel e forzare il calcolo delle formule, utilizzando anche WRAPROWS. +draft: false +keywords: +- how to use wrapcols +- create excel workbook c# +- add data to excel +- force formula calculation +- how to use wraprows +language: it +og_description: Scopri come utilizzare WRAPCOLS in C# per creare una cartella di lavoro + Excel, aggiungere dati, forzare il calcolo delle formule e sfruttare WRAPROWS per + le formule array. +og_title: Come usare WRAPCOLS in C# – Guida completa +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Come usare WRAPCOLS in C# – Creare una cartella di lavoro Excel con le funzioni + di avvolgimento +url: /it/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Come usare WRAPCOLS in C# – Creare una cartella di lavoro Excel con le funzioni Wrap + +Ti sei mai chiesto **how to use WRAPCOLS** quando automatizzi Excel con C#? Non sei solo—molti sviluppatori si trovano in difficoltà quando devono trasformare un intervallo orizzontale in un array verticale senza scrivere una montagna di codice. La buona notizia è che Aspose.Cells lo rende un gioco da ragazzi. + +In questo tutorial percorreremo un esempio completo e eseguibile che mostra **how to use WRAPCOLS**, come **create Excel workbook C#**‑style, come **add data to Excel**, e persino come **force formula calculation** affinché i risultati appaiano immediatamente. Inseriremo anche **how to use WRAPROWS** per la trasformazione opposta. Alla fine avrai un programma pronto da eseguire e una chiara comprensione del motivo per cui ogni passaggio è importante. + +--- + +![How to use WRAPCOLS in C# example](alt="Screenshot showing Excel workbook after using WRAPCOLS in C#") + +## Cosa copre questa guida + +* Impostare una nuova cartella di lavoro con Aspose.Cells. +* Popolare le celle programmaticamente (**add data to Excel**). +* Applicare la funzione `WRAPCOLS` per trasformare una riga in una colonna. +* Usare `WRAPROWS` per trasformare una colonna in una riga (**how to use wraprows**). +* Forzare il motore a valutare le formule immediatamente (**force formula calculation**). +* Salvare il file e verificare l'output. + +Non è necessaria alcuna documentazione esterna—tutto ciò di cui hai bisogno è qui. + +--- + +## Come usare WRAPCOLS in C# – Implementazione passo‑passo + +Di seguito trovi il file sorgente completo. Sentiti libero di copiarlo‑incollarlo in un nuovo progetto console, aggiungere il pacchetto NuGet Aspose.Cells e premere **F5**. + +```csharp +// ------------------------------------------------------------ +// How to Use WRAPCOLS in C# – Complete Example +// ------------------------------------------------------------ +using System; +using Aspose.Cells; + +namespace WrapFunctionsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a fresh workbook (this is how we **create excel workbook c#** style) + Workbook workbook = new Workbook(); + + // 2️⃣ Grab the first worksheet – it's created by default + Worksheet sheet = workbook.Worksheets[0]; + + // 3️⃣ **Add data to Excel**: place two numbers side‑by‑side + sheet.Cells["A1"].PutValue(1); // first value + sheet.Cells["B1"].PutValue(2); // second value + + // 4️⃣ **How to use WRAPCOLS** – turn the horizontal range A1:B1 into a vertical array + // The second argument (1) tells WRAPCOLS to create 1 column per element. + sheet["C1"].Formula = "WRAPCOLS(A1:B1, 1)"; + + // 5️⃣ **How to use WRAPROWS** – the opposite; turn the same range into a horizontal array + // Here we ask for 2 rows per element, which produces a single row with both values. + sheet["C2"].Formula = "WRAPROWS(A1:B1, 2)"; + + // 6️⃣ **Force formula calculation** so the workbook reflects the results immediately + workbook.CalculateFormula(); + + // 7️⃣ Save the workbook to disk – change the path to a folder you own + string outputPath = @"WrapFunctions.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + Console.WriteLine("Check cells C1 and C2 for the WRAPCOLS / WRAPROWS results."); + } + } +} +``` + +### Perché ogni riga è importante + +| Passo | Spiegazione | +|------|-------------| +| **1️⃣ Crea una nuova cartella di lavoro** | Questa è la base. Aspose.Cells tratta un oggetto `Workbook` come l'intero file Excel, quindi stai effettivamente **creating an Excel workbook C#**‑style. | +| **2️⃣ Ottieni il primo foglio di lavoro** | Una nuova cartella di lavoro contiene sempre almeno un foglio di lavoro (`Worksheets[0]`). Accedervi subito evita sorprese di riferimento nullo. | +| **3️⃣ Aggiungi dati a Excel** | Usando `PutValue` **add data to Excel** senza preoccuparsi della formattazione delle celle. I numeri `1` e `2` sono i nostri dati di test per le funzioni wrap. | +| **4️⃣ Come usare WRAPCOLS** | `WRAPCOLS(A1:B1, 1)` indica a Excel di prendere l'intervallo `A1:B1` e di distribuire i suoi valori verticalmente, uno per riga. Il risultato viene collocato in `C1` e si estende verso il basso (`C1`, `C2`, …). | +| **5️⃣ Come usare WRAPROWS** | `WRAPROWS(A1:B1, 2)` fa l'opposto: crea una distribuzione orizzontale, inserendo i due valori in una singola riga a partire da `C2`. | +| **6️⃣ Forza il calcolo delle formule** | Per impostazione predefinita, Aspose.Cells può posticipare il calcolo fino a quando il file non viene aperto in Excel. Chiamare `CalculateFormula()` **forces formula calculation** così puoi leggere i risultati immediatamente dopo il salvataggio. | +| **7️⃣ Salva la cartella di lavoro** | L'ultimo passaggio scrive tutto su disco. Apri il file risultante `WrapFunctions.xlsx` per vedere il risultato. | + +--- + +## Creare una cartella di lavoro Excel C# – Configurare l'ambiente + +Prima di eseguire il codice, assicurati di avere gli strumenti giusti: + +1. **.NET 6.0+** – La versione LTS più recente funziona al meglio. +2. **Visual Studio 2022** (o VS Code con l'estensione C#). +3. **Aspose.Cells for .NET** – Installa tramite NuGet: + ```bash + dotnet add package Aspose.Cells + ``` +4. Una cartella scrivibile per il file di output. + +Questi prerequisiti sono minimi; non è necessario alcun interop COM o installazione di Office, motivo per cui Aspose.Cells è una scelta popolare per la generazione di Excel lato server. + +--- + +## Aggiungere dati a Excel – Migliori pratiche + +Quando **add data to Excel** programmaticamente, considera questi consigli: + +* **Use `PutValue`** per numeri grezzi o stringhe; rileva automaticamente il tipo di dato. +* **Avoid hard‑coding cell addresses** in large projects—usa cicli o intervalli denominati per la scalabilità. +* **Set cell styles sparingly**; ogni cambiamento di stile comporta un overhead. Se hai bisogno di formattazione, crea un unico oggetto stile e applicalo a più celle. + +Nel nostro piccolo esempio inseriamo solo due numeri, ma lo stesso schema scala a migliaia di righe. + +--- + +## Come usare WRAPROWS – Esempio di array orizzontale + +Se ti serve l'opposto di `WRAPCOLS`, `WRAPROWS` è la tua soluzione. La sintassi è: + +``` +WRAPROWS(source_range, [rows_per_item]) +``` + +* `source_range` – l'intervallo che vuoi trasformare. +* `rows_per_item` – opzionale; indica a Excel quante righe occupa ogni elemento. Nel nostro demo abbiamo usato `2` per forzare entrambi i valori su una singola riga. + +Puoi sperimentare cambiando il secondo argomento: + +```csharp +// Example: split each value into its own column, three rows per item +sheet["D1"].Formula = "WRAPROWS(A1:B1, 3)"; +``` + +Apri la cartella di lavoro e vedrai i valori distribuiti su tre colonne, ciascuna colonna contenente i numeri originali ripetuti secondo necessità. + +--- + +## Forzare il calcolo delle formule – Quando e perché + +Potresti chiederti, “Devo davvero chiamare `CalculateFormula()`?” La risposta è **sì**, se: + +* Hai intenzione di leggere i valori calcolati **programmatically** dopo il salvataggio. +* Vuoi garantire che il file si apra in Excel con i risultati corretti già visualizzati. +* Stai eseguendo in un **headless environment** (ad esempio, un'API web) dove nessun utente attiverà manualmente un ricalcolo. + +Saltare questo passaggio non romperà la cartella di lavoro, ma le celle mostreranno il testo della formula (`=WRAPCOLS(...)`) invece dei valori calcolati finché Excel non ricalcola. + +--- + +## Output previsto – Cosa cercare + +Dopo aver eseguito il programma e aperto `WrapFunctions.xlsx`: + +| Cella | Formula | Valore visualizzato | +|------|---------|---------------------| +| **C1** | `=WRAPCOLS(A1:B1, 1)` | `1` (in C1) e `2` (in C2) – un elenco verticale | +| **C2** | `=WRAPROWS(A1:B1, 2)` | `1` in C2 e `2` in D2 – un elenco orizzontale | + +Quindi vedrai una colonna di valori che inizia da **C1** e una riga di valori che inizia da **C2**. Questo conferma che entrambe le funzioni wrap hanno funzionato come previsto. + +--- + +## Casi limite e variazioni + +| Scenario | Cosa cambia? | Suggerimento | +|----------|---------------|--------------| +| **Large range (A1:Z1)** | Più valori da distribuire verticalmente | Aumenta il secondo argomento di `WRAPCOLS` se desideri più colonne per gruppo. | +| **Non‑numeric data** | Le stringhe sono gestite allo stesso modo | Nessuna modifica al codice; `PutValue` accetta qualsiasi oggetto. | +| **Dynamic range** | Non conosci la dimensione al momento della compilazione | Usa `sheet.Cells.MaxDataColumn` e `MaxDataRow` per costruire la stringa dell'indirizzo. | +| **Multiple worksheets** | È necessario applicare le funzioni wrap su fogli diversi | Riferisci il foglio di lavoro corretto (`workbook.Worksheets["Sheet2"]`). | + +Prevedendo queste variazioni, puoi adattare il modello di base a quasi qualsiasi scenario di automazione. + +--- + +## Consigli professionali dal campo + +* **Pro tip:** Avvolgi la creazione della cartella di lavoro in un blocco `using` se stai puntando a .NET Core 3.1+ per garantire che tutte le risorse vengano rilasciate prontamente. +* **Watch out for:** Impostare la stessa formula in un ampio intervallo senza chiamare `CalculateFormula()` può causare colli di bottiglia nelle prestazioni. Elabora le formule in batch quando possibile. +* **Tip:** Se hai bisogno di leggere nuovamente i valori calcolati nel codice, chiama ` + +{{< /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/italian/net/tables-and-lists/_index.md b/cells/italian/net/tables-and-lists/_index.md index c2f6f1409b..54bbb5589e 100644 --- a/cells/italian/net/tables-and-lists/_index.md +++ b/cells/italian/net/tables-and-lists/_index.md @@ -51,6 +51,8 @@ Converti facilmente le tabelle in intervalli in Excel utilizzando Aspose.Cells p Sfrutta la potenza di Aspose.Cells per .NET. Impara a leggere e scrivere tabelle con origini dati di query in questa guida dettagliata passo dopo passo. ### [Imposta commento di tabella o elenco in Excel](./setting-comment-of-table-or-list/) Scopri come impostare commenti per le tabelle in Excel utilizzando Aspose.Cells per .NET con la nostra semplice guida passo passo. +### [Crea una tabella da un intervallo in C# – Tutorial completo Aspose.Cells](./create-table-from-range-in-c-complete-aspose-cells-tutorial/) +Scopri come creare una tabella Excel a partire da un intervallo usando Aspose.Cells per .NET con un tutorial passo passo. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/italian/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md b/cells/italian/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md new file mode 100644 index 0000000000..1fb6aaf804 --- /dev/null +++ b/cells/italian/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md @@ -0,0 +1,231 @@ +--- +category: general +date: 2026-03-30 +description: Crea tabella da intervallo in C# con Aspose.Cells – aggiungi dati alle + celle, converti l'intervallo in ListObject e salva Excel senza filtro. +draft: false +keywords: +- create table from range +- create excel workbook c# +- add data to cells +- convert range to listobject +- save excel without filter +language: it +og_description: Crea una tabella da un intervallo in C# con Aspose.Cells. Scopri come + aggiungere dati alle celle, convertire un intervallo in un ListObject e salvare + Excel senza filtro. +og_title: Crea tabella da intervallo in C# – Tutorial completo di Aspose.Cells +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Crea tabella da intervallo in C# – Tutorial completo di Aspose.Cells +url: /it/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Creare una tabella da un intervallo in C# – Tutorial completo su Aspose.Cells + +Ti è mai capitato di dover **create table from range** in C# ma non sapevi come trasformare un semplice blocco di dati in una tabella Excel completa? Non sei l’unico. Che tu stia automatizzando report, generando schede punteggio o semplicemente pulendo i dati per analisi successive, padroneggiare questo piccolo trucco può farti risparmiare molto lavoro manuale. + +In questa guida percorreremo l’intero processo: **create excel workbook c#**, **add data to cells**, **convert range to ListObject** e infine **save excel without filter**. Alla fine avrai uno snippet pronto all’uso che potrai inserire in qualsiasi progetto .NET che fa riferimento ad Aspose.Cells. + +--- + +## Prerequisiti + +- .NET 6+ (o .NET Framework 4.7.2+) installato +- Aspose.Cells per .NET (pacchetto NuGet `Aspose.Cells`) – l’ultima versione al momento della stesura (23.10) funziona perfettamente. +- Una comprensione di base della sintassi C# – non è necessario avere conoscenze approfondite di interop Excel. + +Se li hai, cominciamo. + +--- + +## Passo 1: Creare una cartella di lavoro Excel in C# + +Per prima cosa abbiamo bisogno di un nuovo oggetto workbook. Pensalo come il file Excel vuoto che conterrà alla fine la nostra tabella. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is equivalent to opening a blank .xlsx file. +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (default) worksheet. +``` + +> **Pro tip:** `Workbook()` senza argomenti crea una cartella di lavoro con un foglio di lavoro predefinito, perfetto per dimostrazioni rapide. Se ti servono più fogli, puoi aggiungerli in seguito con `workbook.Worksheets.Add()`. + +--- + +## Passo 2: Aggiungere dati alle celle + +Ora popoleremo il foglio con un piccolo set di dati – due colonne (Name, Score) e tre righe di valori. Questo dimostra **add data to cells** in modo chiaro e leggibile. + +```csharp +// Header row +worksheet.Cells["A1"].PutValue("Name"); +worksheet.Cells["B1"].PutValue("Score"); + +// Data rows +worksheet.Cells["A2"].PutValue("Alice"); +worksheet.Cells["B2"].PutValue(85); +worksheet.Cells["A3"].PutValue("Bob"); +worksheet.Cells["B3"].PutValue(92); +``` + +Perché usare `PutValue`? Rileva automaticamente il tipo di dato (stringa vs. numerico) e formatta la cella di conseguenza, risparmiandoti di dover manipolare oggetti `Style` per scenari semplici. + +> **Output previsto:** Dopo questo passo, se apri la cartella di lavoro in Excel vedrai una griglia a due colonne con le intestazioni “Name” e “Score”, seguite da due righe di dati. + +--- + +## Passo 3: Convertire l’intervallo in un ListObject (Tabella) + +Ecco dove avviene la magia: trasformare quell’intervallo semplice in una tabella Excel (chiamata **ListObject** nell’API Aspose.Cells). Questo non solo aggiunge uno stile visivo, ma abilita anche funzionalità integrate come ordinamento, filtraggio e riferimenti strutturati. + +```csharp +// Define the range boundaries. +// startRow and startColumn are zero‑based indexes. +// rowCount includes the header row. +int startRow = 0; // Row 1 in Excel +int startColumn = 0; // Column A +int rowCount = 3; // Header + 2 data rows +int columnCount = 2; // Two columns: Name & Score + +// Add a ListObject to the worksheet and retrieve the object. +int listIndex = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); +ListObject table = worksheet.ListObjects[listIndex]; + +// Turn on the UI filter dropdowns so users can interact with the table. +table.ShowAutoFilter = true; +``` + +> **Perché usare un ListObject?** +> - **Riferimenti strutturati**: le formule possono fare riferimento alle colonne per nome. +> - **Interfaccia di auto‑filtro**: gli utenti ottengono frecce a discesa per filtrare rapidamente. +> - **Stile**: puoi applicare stili di tabella predefiniti con una singola riga in seguito. + +--- + +## Passo 4: Rimuovere l’interfaccia AutoFilter (Salvare Excel senza filtro) + +A volte è necessario un foglio pulito senza frecce di filtro – ad esempio, quando la cartella di lavoro è un report finale. Aspose.Cells 23.10 ha introdotto un modo semplice per rimuovere completamente l’interfaccia di filtro. + +```csharp +// Remove the filter UI completely. +table.AutoFilter = null; // Clears the underlying filter object. +table.ShowAutoFilter = false; // Hides the dropdown arrows. +``` + +Nota che non stiamo eliminando i dati; stiamo solo disattivando i controlli visivi del filtro. Questo soddisfa il requisito **save excel without filter**. + +--- + +## Passo 5: Salvare la cartella di lavoro + +Infine, scrivi la cartella di lavoro su disco. Il file conterrà la tabella ma senza alcuna interfaccia di filtro. + +```csharp +// Choose a folder you have write access to. +string outputPath = @"C:\Temp\NoAutoFilter.xlsx"; +workbook.Save(outputPath); +``` + +Apri `NoAutoFilter.xlsx` in Excel – vedrai la tabella formattata con lo stile predefinito, ma senza frecce di filtro. I dati sono intatti e il file è pronto per la distribuzione. + +--- + +![Screenshot che mostra la creazione di una tabella da un intervallo in Excel usando Aspose.Cells](image.png "Screenshot della creazione di una tabella da un intervallo") + +*Image alt text:* **Screenshot che mostra la creazione di una tabella da un intervallo in Excel usando Aspose.Cells** – prova visiva che la tabella esiste senza menu a discesa di filtro. + +--- + +## Esempio completo, eseguibile + +Di seguito trovi il programma completo che puoi copiare‑incollare in un’app console. Include tutti i passaggi sopra, più un paio di commenti aggiuntivi per chiarezza. + +```csharp +using System; +using Aspose.Cells; + +namespace AsposeTableDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add data to cells – this is the “add data to cells” part. + worksheet.Cells["A1"].PutValue("Name"); + worksheet.Cells["B1"].PutValue("Score"); + worksheet.Cells["A2"].PutValue("Alice"); + worksheet.Cells["B2"].PutValue(85); + worksheet.Cells["A3"].PutValue("Bob"); + worksheet.Cells["B3"].PutValue(92); + + // 3️⃣ Convert the range into a ListObject (i.e., create table from range). + int startRow = 0, startColumn = 0, rowCount = 3, columnCount = 2; + int listIdx = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); + ListObject table = worksheet.ListObjects[listIdx]; + table.ShowAutoFilter = true; // optional UI filter + + // 4️⃣ Remove the AutoFilter UI – “save excel without filter”. + table.AutoFilter = null; + table.ShowAutoFilter = false; + + // 5️⃣ Save the workbook. + string filePath = @"C:\Temp\NoAutoFilter.xlsx"; + workbook.Save(filePath); + + Console.WriteLine($"Workbook saved to {filePath}"); + } + } +} +``` + +Esegui il programma, poi apri `C:\Temp\NoAutoFilter.xlsx`. Vedrai una tabella ben formattata, senza frecce di filtro, e i dati che abbiamo inserito. Questo è l’intero flusso di lavoro **create excel workbook c#** in meno di 60 righe di codice. + +--- + +## Domande frequenti e casi limite + +**Q: E se il mio intervallo di dati non è contiguo?** +A: Aspose.Cells richiede un intervallo rettangolare per `ListObjects.Add`. Se hai dati non contigui, crea prima un intervallo temporaneo (ad esempio, copia le parti in un nuovo foglio) e poi converti quell’intervallo. + +**Q: Posso applicare uno stile di tabella personalizzato?** +A: Assolutamente. Dopo aver creato il `ListObject`, imposta `table.TableStyleType = TableStyleType.TableStyleMedium9;` (o uno dei 65 stili predefiniti). Questo è un buon modo per far corrispondere la tabella al branding aziendale. + +**Q: Come posso mantenere il filtro ma nascondere le frecce?** +A: La logica del filtro risiede in `table.AutoFilter`. Impostare `ShowAutoFilter = false` nasconde solo l’interfaccia; il filtro sottostante rimane. Quindi puoi ancora filtrare le righe programmaticamente in seguito. + +**Q: E per set di dati di grandi dimensioni (10k+ righe)?** +A: La stessa API funziona, ma considera di disattivare i calcoli automatici (`workbook.CalcEngine = false`) prima di inserimenti massivi per migliorare le prestazioni, quindi riattivalo dopo. + +--- + +## Conclusioni + +Abbiamo appena coperto come **create table from range** in C# usando Aspose.Cells, passo dopo passo — da **create excel workbook c#**, passando per **add data to cells**, fino a **convert range to ListObject**, e infine **save excel without filter**. Il codice è completo, eseguibile e pronto per la produzione. + +Successivamente, potresti voler esplorare: + +- Aggiungere formattazione condizionale per evidenziare i punteggi più alti. +- Esportare la cartella di lavoro in PDF con `workbook.Save("Report.pdf", SaveFormat.Pdf);`. +- Usare `table.Columns["Score"].DataBodyRange.Sort` per ordinare programmaticamente la tabella. + +Sentiti libero di sperimentare con diversi set di dati, stili di tabella o anche più fogli di lavoro. L’API è sufficientemente flessibile da gestire qualsiasi cosa, da una piccola classifica a un enorme registro finanziario. + +Hai domande o incontri un problema? Lascia un commento qui sotto o contattami su GitHub. Buona programmazione e divertiti a trasformare intervalli grezzi in tabelle Excel rifinite! + +{{< /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/japanese/net/conversion-to-pdf/_index.md b/cells/japanese/net/conversion-to-pdf/_index.md index ac063784aa..6947d80225 100644 --- a/cells/japanese/net/conversion-to-pdf/_index.md +++ b/cells/japanese/net/conversion-to-pdf/_index.md @@ -34,6 +34,8 @@ Aspose.Cells for .NETは、Excelファイルを扱う方にとってまさに宝 Aspose.Cells for .NET を使えば、Excel スプレッドシートを簡単に PDF に変換できます。ステップバイステップのガイドに従って、スムーズに操作してください。 ### [.NET でチャートを PDF に変換する](./convert-chart-to-pdf/) このステップバイステップガイドで、Aspose.Cells を使用して .NET で Excel グラフを PDF に変換する方法を学びましょう。あらゆるレベルのプログラマーに最適です。 +### [Aspose.Cells を使用してワークブックを PDF に保存 – 完全ステップバイステップガイド](./save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/) +Aspose.Cells を使って Excel ワークブックを PDF に変換する手順を詳しく解説します。初心者でも簡単に実装可能です。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/japanese/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md b/cells/japanese/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md new file mode 100644 index 0000000000..bbec1d030c --- /dev/null +++ b/cells/japanese/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md @@ -0,0 +1,243 @@ +--- +category: general +date: 2026-03-30 +description: Aspose.Cells を使用してブックを PDF として保存する方法を学びます。このチュートリアルでは、ワークシートを PDF にエクスポートする方法、Excel + を PDF にエクスポートする方法、ワークシートから PDF を作成する方法も取り上げています。 +draft: false +keywords: +- save workbook as pdf +- export worksheet to pdf +- how to export excel to pdf +- save excel as pdf +- create pdf from worksheet +language: ja +og_description: ブックを簡単にPDFとして保存します。このガイドでは、ワークシートをPDFにエクスポートする方法、ExcelをPDFにエクスポートする方法、そしてC#を使用してワークシートからPDFを作成する方法を紹介します。 +og_title: Aspose.CellsでワークブックをPDFとして保存する – 完全ガイド +tags: +- Aspose.Cells +- C# +- PDF generation +title: Aspose.CellsでワークブックをPDFとして保存する – 完全ステップバイステップガイド +url: /ja/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# ワークブックを pdf として保存 – 完全ステップバイステップガイド + +Ever needed to **save workbook as pdf** but weren't sure which library would keep your numbers intact? You're not alone. In many projects we have to turn Excel data into a polished PDF, and doing it the right way saves hours of debugging. + +このチュートリアルでは、Aspose.Cells を使用して **save workbook as pdf** に必要な正確なコードを順に解説し、さらに **export worksheet to pdf** の方法を示し、*how to export excel to pdf* に関する質問に答え、カスタム精度設定で **create pdf from worksheet** を行うクリーンな方法を実演します。 + +ガイドの最後までに、実行可能な C# コンソールアプリが完成し、関心のある有効数字だけを含む PDF を生成できるようになります。余計なものはなく、堅牢で本番環境向けのソリューションです。 + +--- + +## 学べること + +- 新しい `Workbook` を設定し、最初のワークシートを対象にする方法。 +- 数値の精度を保ったまま **save workbook as pdf** を行う正確な方法。 +- `SignificantDigits` プロパティが **export worksheet to pdf** 時に重要な理由。 +- **how to export excel to pdf** を試みる際の一般的な落とし穴と回避方法。 +- さまざまなページオプションで **save excel as pdf** する迅速な方法と、プログラムで **create pdf from worksheet** する方法。 + +### 前提条件 + +- .NET 6.0 以降(コードは .NET Framework 4.5+ でも動作します)。 +- 有効な Aspose.Cells ライセンス(またはテスト用の無料一時ライセンス)。 +- Visual Studio 2022 または任意の C# 対応 IDE。 + +これらの基本が整っていれば、さっそく始めましょう。 + +--- + +## ステップ 1 – Aspose.Cells のインストールと Workbook の初期化 + +まず最初に、Aspose.Cells の NuGet パッケージが必要です。プロジェクトフォルダーでターミナルを開き、次のコマンドを実行します: + +```bash +dotnet add package Aspose.Cells +``` + +パッケージがインストールされたら、新しい `Workbook` オブジェクトを作成します。これが最終的に **save workbook as pdf** するオブジェクトです。 + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialise a fresh workbook – think of it as a blank Excel file. + Workbook workbook = new Workbook(); + + // Grab the first worksheet (index 0). This is where we’ll put our data. + Worksheet worksheet = workbook.Worksheets[0]; +``` + +*このステップの理由* +Workbook を作成することでクリーンなキャンバスが得られ、最初のワークシートを選択することで既知の場所で作業できることが保証されます。この手順を省略すると、後で **export worksheet to pdf** を試みた際に *null reference* エラーが発生する可能性があります。 + +--- + +## ステップ 2 – 高精度データの挿入 + +ここでは、PDF に表示したい桁数よりも多くの小数点以下を持つ数値を入力します。これにより `SignificantDigits` 設定が出力をどのように切り詰めるかが示されます。 + +```csharp + // Place a high‑precision number in cell A1. + worksheet.Cells["A1"].PutValue(1234.56789); +``` + +プログラムを実行し、単に `workbook.Save("output.pdf")` を呼び出すと、PDF には完全な `1234.56789` が表示されます。これは一部のケースでは問題ありませんが、特に財務レポートでは特定の有効数字に丸める必要があります。 + +--- + +## ステップ 3 – PDF 保存オプションの構成 + +Aspose.Cells は `PdfSaveOptions` を通じて細かな制御を提供します。ここで重要なのは `SignificantDigits` プロパティです。これを `4` に設定すると、**save workbook as pdf** 時にエンジンは4桁の有効数字だけを保持します。 + +```csharp + // Configure PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 // This trims the number to 1235 in the PDF. + }; +``` + +*`SignificantDigits` を使用する理由* +**create pdf from worksheet** を行う際、規制上の丸め規則に従う必要があることが多いです。このオプションが自動で丸めを行うため、各セルを手動で書式設定する必要がなくなります。 + +--- + +## ステップ 4 – オプションを使用してワークシートを PDF にエクスポート + +いよいよ本番です。先ほど定義したオプションを使用して **save workbook as pdf** を実行します。 + +```csharp + // Save the workbook as a PDF using the configured options. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + } +} +``` + +プログラムを実行すると、プロジェクトの出力フォルダーに `SignificantDigits.pdf` というファイルが生成されます。開くとセル A1 に `1235` が表示されます――数値は4桁の有効数字に丸められています。 + +*重要ポイント*:`Save` メソッドはファイルパスと `PdfSaveOptions` の両方を受け取ります。オプションを省略するとデフォルト動作に戻り、精度要件を満たさない可能性があります。 + +--- + +## ステップ 5 – 出力の検証と一般的な問題のトラブルシューティング + +### 期待される結果 + +- `SignificantDigits.pdf` という名前の1ページの PDF。 +- セル A1 に `1235`(4桁の有効数字)が表示される。 +- 余分なワークシートや非表示コンテンツは表示されない。 + +### よくある質問 + +| Question | Answer | +|----------|--------| +| **複数のワークシートが必要な場合はどうすればいいですか?** | `workbook.Worksheets` をループし、各シートを個別に保存する際に同じ `PdfSaveOptions` を適用するか、オプションで `OnePagePerSheet = true` を設定します。 | +| **元の数値書式を保持できますか?** | はい。`PdfSaveOptions.AllColumnsInOnePage = true` を設定し、Excel の書式設定ルールに任せますが、`SignificantDigits` は数値の精度を上書きすることに注意してください。 | +| **既存の .xlsx ファイルでも動作しますか?** | もちろんです。`new Workbook()` を `new Workbook("input.xlsx")` に置き換えるだけで、残りのコードは同じままです。 | +| **PDF が空白になる場合はどうすればいいですか?** | ワークブックに実際にデータが含まれているか、書き込み可能なディレクトリに保存しているかを確認してください。また、Aspose.Cells のライセンスが正しく適用されていることを確認してください。未ライセンスのトライアルでは出力が制限される場合があります。 | + +### プロのコツ + +特定のページ向きで **save excel as pdf** が必要な場合、`Save` を呼び出す前に `pdfSaveOptions.PageSetup.Orientation = PageOrientation.Landscape;` を設定します。この小さな調整により、後で PDF を手動で調整する手間が省けることが多いです。 + +--- + +## バリエーション: 複数シートのエクスポートまたはカスタムページ設定 + +### 1 回の呼び出しで全シートをエクスポート + +```csharp +PdfSaveOptions allSheetsOptions = new PdfSaveOptions +{ + SignificantDigits = 4, + OnePagePerSheet = true // Each worksheet gets its own page. +}; + +workbook.Save("AllSheets.pdf", allSheetsOptions); +``` + +### 単一シートを PDF としてエクスポート + +特定のシートだけを **export worksheet to pdf** したい場合は、`Worksheet` オブジェクトの `ToPdf` メソッドを使用します: + +```csharp +Worksheet sheet = workbook.Worksheets["Sheet2"]; +sheet.ToPdf("Sheet2.pdf", pdfSaveOptions); +``` + +### ページ余白の調整 + +```csharp +pdfSaveOptions.PageSetup.TopMargin = 20; +pdfSaveOptions.PageSetup.BottomMargin = 20; +``` + +これらの調整により、後処理なしで最終ドキュメントを細かく調整できます。 + +--- + +## 完全な動作例 + +以下は、これまで説明したすべてを組み込んだ、コピー&ペースト可能な完全プログラムです。`Program.cs` として保存し、`dotnet run` を実行してください。 + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and select the first worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Insert a high‑precision number. + worksheet.Cells["A1"].PutValue(1234.56789); + + // 3️⃣ Set PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 + }; + + // 4️⃣ Save the workbook as PDF. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + + // Optional: Export another sheet with custom settings. + // Worksheet sheet2 = workbook.Worksheets.Add("Report"); + // sheet2.Cells["B2"].PutValue(9876.54321); + // sheet2.ToPdf("Report.pdf", pdfSaveOptions); + } +} +``` + +**結果**: `SignificantDigits.pdf` を開くと、丸められた値 `1235` が表示されます。ファイルサイズは控えめで、レイアウトは元の Excel シートと一致しています。 + +--- + +## 結論 + +ここでは、Aspose.Cells を使用して **save workbook as pdf** を行う方法を示しました。基本的なセットアップから、**export worksheet to pdf**、**how to export excel to pdf**、**create pdf from worksheet** といった高度なオプションまで、数値の精度を正確に制御する方法を網羅しています。 + +このアプローチはシンプルで、C# の数行だけで済み、.NET のバージョンを問わず動作します。次のステップとして、ヘッダー/フッターの追加、画像の埋め込み、テンプレートからの PDF 生成などを検討でき、いずれも今回の基礎の上に構築できます。 + +試してみたいアイデアはありますか?例えば PDF にパスワードを設定したり、複数の PDF を結合したりする場合です。これらは自然な拡張であり、Aspose.Cells API がサポートしています。ぜひ挑戦し、ライブラリに重い作業を任せてみてください。 + +*コーディングを楽しんでください!問題が発生したら、下にコメントを残してください。一緒にトラブルシューティングします。* + +![save workbook as pdf スクリーンショット](/images/save-workbook-as-pdf.png){alt="生成された PDF ファイルを示す save workbook as 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/japanese/net/converting-excel-files-to-other-formats/_index.md b/cells/japanese/net/converting-excel-files-to-other-formats/_index.md index d90421e8a9..87ff767db3 100644 --- a/cells/japanese/net/converting-excel-files-to-other-formats/_index.md +++ b/cells/japanese/net/converting-excel-files-to-other-formats/_index.md @@ -56,6 +56,8 @@ Aspose.Cells for .NET を使用して、Excel ファイルをアーカイブ用 Aspose.Cellsを使用して、.NETでプログラム的にJSONをCSVに変換する方法を学びましょう。ステップバイステップガイドに従って、シームレスなデータ変換を実現しましょう。 ### [.NET でプログラム的に Excel ファイルを PPTX に変換する](./converting-excel-file-to-pptx/) このステップバイステップ ガイドでは、Aspose.Cells for .NET を使用してプログラムによって Excel ファイルを PowerPoint プレゼンテーション (PPTX) に変換する方法を学習します。 +### [.NET でプログラム的に Excel から PowerPoint を作成する](./create-powerpoint-from-excel-step-by-step-c-guide/) +Aspose.Cells for .NET を使用して、Excel データから PowerPoint プレゼンテーションを C# で自動生成する手順を解説します。 ### [.NET でプログラム的に出力 HTML に HTML CrossType を指定する](./specifying-html-crosstype-in-output-html/) Aspose.Cells for .NETでHTML CrossTypeを指定する方法を学びましょう。ステップバイステップのチュートリアルに従って、ExcelファイルをHTMLに正確に変換しましょう。 ### [.NET でプログラム的に数値スプレッドシートを読み取る](./reading-numbers-spreadsheet/) diff --git a/cells/japanese/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md b/cells/japanese/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md new file mode 100644 index 0000000000..97182e58c1 --- /dev/null +++ b/cells/japanese/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-03-30 +description: Aspose.Cells と Aspose.Slides を使用して、Excel から PowerPoint を素早く作成します。ワークシートを画像としてエクスポートし、C# + でプレゼンテーションを PPTX として保存する方法を学びましょう。 +draft: false +keywords: +- create powerpoint from excel +- convert excel to powerpoint +- export worksheet as image +- save presentation as pptx +- export excel chart as picture +language: ja +og_description: Aspose を使用して C# で Excel から PowerPoint を作成します。ワークシートを画像としてエクスポートし、シェイプは編集可能なままにして、結果を + PPTX として保存します。 +og_title: ExcelからPowerPointを作成 – 完全C#チュートリアル +tags: +- Aspose +- C# +- Office Automation +title: Excel から PowerPoint を作成する – ステップバイステップ C# ガイド +url: /ja/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-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 を作成する必要があったが、どのライブラリがチャートを編集可能なままにできるか分からなかったことはありませんか? あなたは一人ではありません。多くのレポートシナリオでは、スプレッドシートをスライドデッキに変換し、後でテキストボックスを調整できる機能を失いたくありません。このガイドでは、Aspose.Cells と Aspose.Slides を使用して **Excel を PowerPoint に変換** を正確に行う方法を示し、さらに **ワークシートを画像としてエクスポート** と最終的に **プレゼンテーションを PPTX として保存** についてもカバーします。 + +コードの各行を順に解説し、各設定がなぜ重要かを説明します。また、ワークブックに複雑なチャートが含まれていて、画像としてエクスポートしたい場合の対処法も議論します。最後までに、`ShapesDemo.xlsx` を受け取り `Result.pptx` を出力する、すぐに実行できる C# コンソールアプリが手に入ります – すべて編集可能なテキストボックスと鮮明な画像が保持されます。 + +## 必要なもの + +- .NET 6.0 以降 (API は .NET Framework でも動作しますが、.NET 6 が最適です)。 +- **Aspose.Cells** と **Aspose.Slides** の NuGet パッケージ (無料トライアル ライセンスでテスト可能)。 +- C# の構文に基本的に慣れていること – `Console.WriteLine` が書ければ問題ありません。 + +追加の COM インタープロ、サーバーに Office をインストールする必要はなく、画像の手動コピー&ペーストも不要です。すべてプログラムで処理されます。 + +--- + +## Excel から PowerPoint を作成 – ワークブックの読み込みとエクスポートオプションの設定 + +最初に行うのは Excel ファイルを開き、Aspose.Cells にシートの描画方法を指示することです。`ImageOrPrintOptions` オブジェクトが魔法の場所で、`ExportShapes` と `ExportEditableTextBoxes` を有効にすることで、すべてのシェイプ(チャートを含む)がスライドの一部となり、変換後も編集可能なままになります。 + +```csharp +using Aspose.Cells; +using Aspose.Slides; + +// 1️⃣ Load the Excel workbook +string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; +Workbook workbook = new Workbook(excelPath); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first sheet + +// 2️⃣ Configure image export – keep shapes editable +ImageOrPrintOptions imageOptions = new ImageOrPrintOptions +{ + OnePagePerSheet = true, // Export the whole sheet as one slide + ExportShapes = true, // Include shapes (charts, drawings) + ExportEditableTextBoxes = true // Make text boxes editable in PPTX +}; +``` + +**これらのフラグの理由は?** +- `OnePagePerSheet` はシートが複数のスライドに分割されるのを防ぎ、単一のフルサイズ画像を取得します。 +- `ExportShapes` は Aspose.Cells にチャートとベクターシェイプをラスタライズさせ、外観を保持します。 +- `ExportEditableTextBoxes` は、PowerPoint でテキストボックスをダブルクリックして、Excel を再度開かずにテキストを編集できる秘密の要素です。 + +> **プロのコツ:** チャートの静的画像だけが必要な場合は `ExportShapes = false` に設定し、後で `ExportExcelChartAsPicture` メソッドを使用してください(最終セクション参照)。 + +--- + +## Excel を PowerPoint に変換 – ワークシートから画像を生成 + +オプションが準備できたら、ワークシートを `System.Drawing.Image` に変換します。`WorksheetToImageConverter` が重い処理を担当し、先ほど定義した設定を適用します。 + +```csharp +// 3️⃣ Convert the worksheet to an image using the options above +WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); +System.Drawing.Image sheetImage = converter.ConvertToImage(0, imageOptions); +``` + +`0` 引数は最初のページを示します(`OnePagePerSheet` のためページは1枚だけです)。結果として得られる `sheetImage` は元の DPI を保持するので、高解像度ディスプレイでもスライドがピクセル化しません。 + +--- + +## プレゼンテーションを PPTX として保存 – スライドに画像を挿入 + +ここで新しい PowerPoint ファイルを作成し、スライドを追加してビットマップを貼り付けます。Aspose.Slides は画像を *ピクチャーフレーム* シェイプとして扱うため、後で任意の PowerPoint オブジェクトと同様にサイズ変更や移動が可能です。 + +```csharp +// 4️⃣ Create a new PowerPoint presentation +Presentation presentation = new Presentation(); +ISlide slide = presentation.Slides[0]; // The default blank slide + +// Add the Excel‑derived image as a picture frame +slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, // Simple rectangle container + 0, 0, // Top‑left corner (0,0) + sheetImage.Width, // Width of the picture + sheetImage.Height, // Height of the picture + sheetImage); // The bitmap we generated +``` + +> **画像がスライドサイズより大きい場合は?** +> PowerPoint はスライドの寸法を超える部分を自動的にクリップします。簡単な対策は、挿入前に画像をスケーリングすることです: + +```csharp +float scale = Math.Min(presentation.SlideSize.Size.Width / (float)sheetImage.Width, + presentation.SlideSize.Size.Height / (float)sheetImage.Height); +int newWidth = (int)(sheetImage.Width * scale); +int newHeight = (int)(sheetImage.Height * scale); +``` + +その後、`newWidth` と `newHeight` を `AddPictureFrame` に渡すことができます。 + +--- + +## ワークシートを画像としてエクスポート – PPTX ファイルを保存 + +最後にプレゼンテーションをディスクに保存します。`SaveFormat.Pptx` フラグは最新の OpenXML 形式を保証し、すべての最近の PowerPoint バージョンで動作します。 + +```csharp +// 5️⃣ Save the presentation as a PPTX file +string pptxPath = "YOUR_DIRECTORY/Result.pptx"; +presentation.Save(pptxPath, SaveFormat.Pptx); +``` + +`Result.pptx` を開くと、Excel シートと全く同じ外観の単一スライドが表示されますが、任意のテキストボックスをクリックして PowerPoint 上で直接内容を編集できます。 + +--- + +## Excel のチャートを画像としてエクスポート – ラスタ画像が好まれる場合 + +場合によっては編集可能なシェイプは不要で、チャートの高品質 PNG だけで十分なことがあります。Aspose.Cells はシート全体を変換せずに特定のチャートを画像としてエクスポートできます: + +```csharp +// Example: Export the first chart on the sheet as a PNG +int chartIndex = 0; // Adjust if you have multiple charts +Chart chart = worksheet.Charts[chartIndex]; +ImageOrPrintOptions chartOptions = new ImageOrPrintOptions +{ + ImageFormat = ImageFormat.Png, + OnePagePerSheet = false +}; +chart.ToImage("chart.png", chartOptions); +``` + +その後、`chart.png` を `sheetImage` を追加したのと同様にスライドに埋め込むことができます。この方法は PPTX ファイルサイズを削減し、スライドに周囲のデータが不要な場合に有用です。 + +--- + +## よくある落とし穴と回避策 + +| 問題 | 発生理由 | 対策 | +|------|----------|------| +| **テキストがぼやける** | 低 DPI(デフォルト 96)でエクスポートされたため。 | `imageOptions.Dpi = 300;` を変換前に設定します。 | +| **シェイプが消える** | `ExportShapes` が `false` のままになっているため。 | 編集可能なグラフィックが必要な場合は `ExportShapes = true` にしてください。 | +| **スライドサイズの不一致** | 画像がスライドの寸法より大きい。 | 画像をスケーリング(コードスニペット参照)するか、`presentation.SlideSize` でスライドサイズを変更します。 | +| **ライセンス例外** | 適切にアクティベートされていないトライアル版を使用しているため。 | `Main` の冒頭で `License license = new License(); license.SetLicense("Aspose.Total.lic");` を呼び出します。 | + +--- + +## 完全動作例(コピー&ペースト可能) + +以下は全プログラムです。新しいコンソールプロジェクトに貼り付けてすぐに使用できます。`YOUR_DIRECTORY` を Excel ファイルが格納されているフォルダーに置き換えてください。 + +```csharp +using System; +using Aspose.Cells; +using Aspose.Slides; +using System.Drawing; + +namespace ExcelToPowerPointDemo +{ + class Program + { + static void Main(string[] args) + { + // ----------------------------------------------------------------- + // 1️⃣ Load the Excel workbook + // ----------------------------------------------------------------- + string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; + Workbook workbook = new Workbook(excelPath); + Worksheet worksheet = workbook.Worksheets[0]; + + // ----------------------------------------------------------------- + // 2️⃣ Set up export options – keep shapes editable + // ----------------------------------------------------------------- + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + OnePagePerSheet = true, + ExportShapes = true, + ExportEditableTextBoxes = true, + Dpi = 300 // High‑resolution output + }; + + // ----------------------------------------------------------------- + // 3️⃣ Convert worksheet to an image + // ----------------------------------------------------------------- + WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); + Image sheetImage = converter.ConvertToImage(0, imageOptions); + + // ----------------------------------------------------------------- + // 4️⃣ Create PowerPoint and add the image as a slide + // ----------------------------------------------------------------- + Presentation presentation = new Presentation(); + ISlide slide = presentation.Slides[0]; + slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, + 0, 0, + sheetImage.Width, + sheetImage.Height, + sheetImage); + + // ----------------------------------------------------------------- + // 5️⃣ Save the PPTX file + // ----------------------------------------------------------------- + string pptxPath = "YOUR_DIRECTORY/Result.pptx"; + presentation.Save(pptxPath, SaveFormat.Pptx); + + Console.WriteLine("✅ PowerPoint created successfully at: " + pptxPath); + } + } +} +``` + +**期待される出力:** +プログラムを実行すると `✅ PowerPoint created successfully at: YOUR_DIRECTORY/Result.pptx` が表示されます。PPTX を開くと、元の Excel シートを鏡像した単一スライドが表示され、テキストボックスは編集可能です。 + +--- + +## まとめと次のステップ + +これで、Aspose の強力な API を使用して **Excel から PowerPoint を作成** する方法、**ワークシートを画像としてエクスポート** する方法、そして **プレゼンテーションを PPTX として保存** しながら編集可能性を保持する方法が分かりました。同じパターンは複数シートのブックでも機能します – `workbook.Worksheets` をループし、各シートごとに新しいスライドを追加するだけです。 + +**次に探求すべきことは?** + +- **バッチ変換:** フォルダー内の Excel ファイルをループし、ファイルごとにスライドデッキを生成します。 +- **動的レイアウト:** `slide.LayoutSlide` を使用して事前にデザインされた PowerPoint テンプレートを適用します。 +- **チャートのみエクスポート:** “Export Excel chart as picture” スニペットとスライドプレースホルダーを組み合わせて、より軽量なデッキを作ります。 +- **高度なスタイリング:** Aspose.Slides を使ってカスタムスライド背景、トランジション、アニメーションを適用します。 + +自由に試してみてください—DPI を変更したり、`ShapeType.Ellipse` を円形のピクチャーフレームに置き換えたり、スライドに複数の画像を埋め込んだりできます。プログラムで制御できる限り、可能性は無限です。 + +{{< /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/japanese/net/document-properties/_index.md b/cells/japanese/net/document-properties/_index.md index e39aa39417..85c516a1e6 100644 --- a/cells/japanese/net/document-properties/_index.md +++ b/cells/japanese/net/document-properties/_index.md @@ -35,6 +35,8 @@ Aspose.Cells for .NET を使用して Excel のドキュメントプロパティ Aspose.Cells for .NET を使用して Excel のドキュメントプロパティにアクセスする方法を、ステップバイステップガイドで学習しましょう。スプレッドシートを効率的に管理できます。 ### [.NET でのドキュメント プロパティの追加](./adding-document-properties/) この詳細なステップバイステップ ガイドでは、Aspose.Cells for .NET を使用して Excel にドキュメント プロパティを追加する方法を学習します。 +### [C# でカスタム プロパティ付き XLSB を保存する方法 – ステップバイステップ ガイド](./how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/) +Aspose.Cells for .NET を使用して、カスタム プロパティを含む XLSB ファイルを C# で保存する手順を学びます。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/japanese/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md b/cells/japanese/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md new file mode 100644 index 0000000000..2fcb85d667 --- /dev/null +++ b/cells/japanese/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md @@ -0,0 +1,235 @@ +--- +category: general +date: 2026-03-30 +description: C#でXLSBを保存しながらカスタムプロパティを追加し、読み戻す方法と、Aspose.Cellsを使用してワークブックをXLSBとして保存するマスター手法を学びましょう。完全なコードが含まれています。 +draft: false +keywords: +- how to save xlsb +- add custom property +- how to add property +- how to read property +- save workbook as xlsb +language: ja +og_description: C#でXLSBを保存する方法は?このチュートリアルでは、カスタムプロパティの追加方法と取得方法、そして Aspose.Cells を使用してブックを + XLSB として保存する手順を示します。 +og_title: C#でカスタムプロパティ付きXLSBを保存する方法 – 完全ガイド +tags: +- Aspose.Cells +- C# +- Excel Automation +title: C#でカスタムプロパティ付きXLSBを保存する方法 – ステップバイステップガイド +url: /ja/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# でカスタム プロパティ付き XLSB を保存する方法 – ステップバイステップ ガイド + +ワークシートに余分なメタデータを付けたまま **XLSB を保存する方法** を考えたことはありますか? あなただけではありません。多くのエンタープライズシナリオでは、バイナリ Excel ファイルでありながら独自のキー/バリュー ペア(たとえば契約 ID、処理フラグ、バージョン タグ)を保持する必要があります。 + +良いニュースは、Aspose.Cells がこれを簡単にしてくれることです。このガイドでは、カスタム プロパティを追加し、永続化し、そして **ワークブックを XLSB として保存** しながらそれを読み戻す方法を正確に示します。曖昧な説明はなく、すぐにプロジェクトに組み込める完全な実行可能サンプルです。 + +## 本チュートリアルで得られるもの + +- 最初から作成した新しい `.xlsb` ファイル。 +- ワークシートに **カスタム プロパティを追加** する機能。 +- ファイルを再読み込みした後に **プロパティを読み取る方法** を示すコード。 +- **ワークブックを XLSB として保存** する際に遭遇し得る落とし穴に関するヒント。 + +> **前提条件:** .NET 6 以上(または .NET Framework 4.6 以上)、Visual Studio(または任意の C# IDE)、そして NuGet 経由でインストールした Aspose.Cells for .NET ライブラリ。その他は不要です。 + +--- + +## ステップ 1: プロジェクトを設定し新しい Workbook を作成する + +まずは基本から—クリーンな Workbook オブジェクトを用意しましょう。 + +```csharp +using Aspose.Cells; +using System; + +// Initialize a new workbook; this will be an in‑memory Excel file. +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0) – it’s created automatically. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +*この重要性:* `Workbook` は Aspose.Cells のすべての操作のエントリーポイントです。新しいインスタンスから開始することで、後でカスタム メタデータを破壊する可能性のある隠れた状態を回避できます。 + +--- + +## ステップ 2: ワークシートに **カスタム プロパティを追加** + +これから、このシートだけに存在するキー/バリュー ペアを付与します。 + +```csharp +// Add a user‑defined property called "MyProperty" with the value "CustomValue". +worksheet.CustomProperties.Add("MyProperty", "CustomValue"); +``` + +> **プロのコツ:** プロパティ名は大文字小文字を区別します。後で `"myproperty"` を取得しようとすると `KeyNotFoundException` がスローされます。最初から camelCase または PascalCase などの命名規則に従いましょう。 + +--- + +## ステップ 3: **ワークブックを XLSB として保存** – プロパティの永続化 + +ワークブックをバイナリ XLSB 形式で書き出すときに魔法が起きます。 + +```csharp +// Define the output path. Adjust the folder to something writable on your machine. +string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + +// Save the workbook; the custom property travels with the file. +workbook.Save(outputPath, SaveFormat.Xlsb); +``` + +*実際に行っていること:* `SaveFormat.Xlsb` 列挙体は Aspose.Cells にバイナリ Excel ファイルを出力させます(開く速度が速く、ディスク上のサイズも小さくなります)。ワークシートレベルのカスタム プロパティは自動的にシリアライズされるため、追加の手順は不要です。 + +--- + +## ステップ 4: ファイルを再読み込みし **プロパティの読み取り方法** + +プロパティが往復しても保持されていることを確認しましょう。 + +```csharp +// Load the just‑saved XLSB file back into memory. +Workbook reloadedWorkbook = new Workbook(outputPath); + +// Access the same worksheet (index 0) and fetch the property value. +string customValue = reloadedWorkbook.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); +``` + +すべてが順調にいけば、`customValue` には `"CustomValue"` が格納されています。 + +--- + +## ステップ 5: 結果の検証 – コンソール出力の簡易チェック + +開発中に役立つ小さな妥当性チェックです。 + +```csharp +Console.WriteLine($"Custom property value: {customValue}"); +``` + +プログラムを実行すると次のように出力されます: + +``` +Custom property value: CustomValue +``` + +その行が表示されれば、**XLSB の保存方法**、**カスタム プロパティの追加**、そして **プロパティの読み取り方法** をすべて一連の流れでマスターしたことになります。 + +--- + +## 完全動作サンプル(コピー&ペースト可能) + +以下が全プログラムです。新しいコンソール アプリに貼り付け、**F5** を押すと、コンソールにプロパティ値が表示されます。 + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // 1️⃣ Create a new workbook and get its first sheet + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // 2️⃣ Add a custom property (key/value) to the sheet + // ------------------------------------------------- + worksheet.CustomProperties.Add("MyProperty", "CustomValue"); + + // ------------------------------------------------- + // 3️⃣ Save the workbook as XLSB – the property is kept + // ------------------------------------------------- + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(outputPath, SaveFormat.Xlsb); + + // ------------------------------------------------- + // 4️⃣ Reload the saved file to demonstrate persistence + // ------------------------------------------------- + Workbook reloaded = new Workbook(outputPath); + + // ------------------------------------------------- + // 5️⃣ Retrieve the custom property's value + // ------------------------------------------------- + string customValue = reloaded.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); + + // ------------------------------------------------- + // 6️⃣ Display the retrieved value (optional) + // ------------------------------------------------- + Console.WriteLine($"Custom property value: {customValue}"); + } +} +``` + +> **注意:** `outputPath` を書き込み可能なフォルダーに変更してください。Linux/macOS を使用している場合は `"/tmp/WithCustomProp.xlsb"` のようなパスを使用します。 + +--- + +## よくある質問とエッジケース + +### プロパティがすでに存在する場合は? + +`Add` を既存のキーで呼び出すと `ArgumentException` がスローされます。確信がない場合は `ContainsKey` を使用するか、`try/catch` でラップしてください。 + +```csharp +if (!worksheet.CustomProperties.ContainsKey("MyProperty")) +{ + worksheet.CustomProperties.Add("MyProperty", "AnotherValue"); +} +``` + +### 非文字列値も保存できますか? + +もちろんです。`Value` プロパティは任意の `object` を受け取ります。数値、日付、ブール値の場合は適切な型を渡すだけで、Aspose.Cells が読み戻す際に変換を行います。 + +### XLSX に変換してもプロパティは保持されますか? + +はい。カスタム プロパティはワークシートの XML 表現の一部であるため、XLSX、XLS、XLSB の各形式で保持されます。 + +### 複数シートに **プロパティを追加**する方法は? + +`Worksheets` コレクションをループし、必要な各シートに対して同じ `CustomProperties.Add` 呼び出しを適用します。 + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + ws.CustomProperties.Add("ExportedBy", "MyApp"); +} +``` + +### 大量に **ワークブックを XLSB として保存** する際のパフォーマンスヒント + +数百ファイルを生成する場合は、同じ `Workbook` インスタンスを再利用し、保存後に `Clear` を呼び出してメモリを解放します。また、ロード時に数式を評価する必要がなければ `Workbook.Settings.CalculateFormulaOnOpen = false` を設定してください。 + +--- + +## 結論 + +これで、Aspose.Cells を使用して C# で **XLSB を保存** しながらカスタム プロパティを埋め込み、後で取得する方法が分かりました。ワークブックの作成、プロパティの追加、**ワークブックを XLSB として保存** での永続化、再読み込み、値の取得という一連の手順は、コード 50 行未満で実装できます。 + +ここからは以下のようなことを検討できます: + +- シートごとに複数のカスタム プロパティを追加する。 +- JSON 文字列で複雑なオブジェクトを保存する。 +- 追加のセキュリティのために XLSB ファイルを暗号化する。 + +これらのアイデアを試してみれば、チーム内で Excel 自動化の頼りになる存在になるでしょう。質問や難しいシナリオがあれば、下にコメントを残してください。ハッピーコーディング! + +![XLSB をカスタム プロパティで保存する方法](/images/how-to-save-xlsb.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/japanese/net/excel-copy-worksheet/_index.md b/cells/japanese/net/excel-copy-worksheet/_index.md index e5727e9ec3..a8caf5ae94 100644 --- a/cells/japanese/net/excel-copy-worksheet/_index.md +++ b/cells/japanese/net/excel-copy-worksheet/_index.md @@ -42,6 +42,7 @@ Aspose.Cells for .NET は、スプレッドシートのコピーを含む、Exce | [Excel ワークシートのコピー](./excel-copy-worksheet/) Aspose.Cells for .NET を使用して Excel ワークシートをコピーする方法を、分かりやすいステップバイステップガイドで学びましょう。Excel タスクの自動化を目指す .NET 開発者に最適です。 | | [Excel ワークブック間でワークシートをコピーする](./excel-copy-worksheets-between-workbooks/) Aspose.Cells for .NET を使用して Excel ブック間でワークシートをコピーする方法を学びましょう。スプレッドシート管理を効率化するためのコード例を交えたステップバイステップガイドです。 | | [Excel ワークシートの移動](./excel-move-worksheet/) ステップバイステップガイドで、Aspose.Cells for .NET を使用して Excel のワークシートを移動する方法を学びましょう。Excel プログラミングの技術をマスターしましょう。 | +| [C#でAspose.Cellsを使用したワークシートのコピー方法 – 完全ガイド](./how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/) Aspose.Cells for .NET を使い、C# でワークシートをコピーする手順をステップバイステップで解説します。 | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/japanese/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md b/cells/japanese/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md new file mode 100644 index 0000000000..cb5c551b59 --- /dev/null +++ b/cells/japanese/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md @@ -0,0 +1,357 @@ +--- +category: general +date: 2026-03-30 +description: Aspose.Cells を使用した C# でのワークシートのコピー方法 – セル範囲のコピー、シート間の列のコピー、ワークシートのピボットテーブルのコピー、そして新しいワークシートを追加するコードを網羅したステップバイステップガイド。 +draft: false +keywords: +- how to copy worksheet +- copy cell range +- copy columns between sheets +- copy worksheet pivot table +- add new worksheet code +language: ja +og_description: Aspose.Cells を使用した C# でのワークシートのコピー方法を学びましょう。このガイドでは、セル範囲のコピー、ピボットテーブルの保持、シート間の列のコピー、そして新しいワークシートの追加コードを紹介します。 +og_title: C#でワークシートをコピーする方法 – 完全なAspose.Cellsチュートリアル +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Aspose.Cells を使用した C# でのワークシートのコピー方法 – 完全ガイド +url: /ja/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#でAspose.Cellsを使用してワークシートをコピーする方法 – 完全ガイド + +Ever wondered **how to copy worksheet** in C# without losing a single pivot table or formula? You're not alone—many developers hit a wall when they need to duplicate a sheet while keeping all the goodies intact. In this tutorial we’ll walk through a practical, end‑to‑end solution that not only copies the data but also preserves the **copy worksheet pivot table**, handles **copy cell range**, and shows the **add new worksheet code** you’ll need. + +C#で**ワークシートのコピー方法**を、ピボットテーブルや数式を一つも失わずに行う方法を考えたことがありますか? あなたは一人ではありません—シートを複製しながらすべての要素を保持したい開発者は多く壁にぶつかります。このチュートリアルでは、データをコピーするだけでなく、**copy worksheet pivot table**を保持し、**copy cell range**を処理し、必要な**add new worksheet code**を示す実用的なエンドツーエンドのソリューションを解説します。 + +We'll cover everything from loading the source workbook to saving the destination file, so you can copy columns between sheets, preserve objects, and keep your code clean. No vague references, just a complete, runnable example you can drop into your project today. + +ソースワークブックの読み込みから宛先ファイルの保存まで、すべてをカバーします。これによりシート間で列をコピーしたり、オブジェクトを保持したり、コードをすっきり保つことができます。曖昧な説明はなく、すぐにプロジェクトに組み込める完全な実行可能サンプルを提供します。 + +## This Tutorial Covers + +## このチュートリアルでカバーする内容 + +- Loading an existing Excel file with Aspose.Cells +- Using **add new worksheet code** to create a target sheet +- Defining a **copy cell range** that includes a pivot table +- Setting up **CopyOptions** to keep charts, formulas, and pivot tables intact +- Executing **copy columns between sheets** with row‑wise precision +- Saving the result and verifying that the worksheet was copied correctly + +- Aspose.Cells を使用した既存 Excel ファイルの読み込み +- **add new worksheet code** を使用してターゲットシートを作成 +- ピボットテーブルを含む **copy cell range** の定義 +- **CopyOptions** を設定してチャート、数式、ピボットテーブルをそのまま保持 +- 行単位の精度で **copy columns between sheets** を実行 +- 結果を保存し、ワークシートが正しくコピーされたことを検証 + +By the end of this guide you’ll be able to answer the question “how to copy worksheet” confidently, whether you’re automating reports or building a spreadsheet‑driven UI. + +このガイドを終える頃には、レポートの自動化やスプレッドシート駆動の UI の構築に関わらず、自信を持って「**how to copy worksheet**」という質問に答えられるようになります。 + +--- + +## How to Copy Worksheet – Overview + +## ワークシートのコピー方法 – 概要 + +Before we dive into code, let’s outline the high‑level flow. Think of it as a recipe: + +コードに入る前に、全体の流れを概観しましょう。レシピのように考えてください: + +1. **Load** the source workbook (`Source.xlsx`). +2. **Add** a fresh worksheet to hold the copy (`add new worksheet code`). +3. **Define** the area you want to duplicate (`copy cell range`). +4. **Configure** copy options so the pivot table survives (`copy worksheet pivot table`). +5. **Copy** rows and columns (`copy columns between sheets`). +6. **Save** the new workbook (`Destination.xlsx`). + +1. **Load** ソースワークブック (`Source.xlsx`) を読み込む。 +2. **Add** コピー先となる新しいワークシートを作成する (`add new worksheet code`)。 +3. **Define** 複製したい領域を指定する (`copy cell range`)。 +4. **Configure** ピボットテーブルが残るようにコピーオプションを設定する (`copy worksheet pivot table`)。 +5. **Copy** 行と列をコピーする (`copy columns between sheets`)。 +6. **Save** 新しいワークブックを保存する (`Destination.xlsx`)。 + +That’s it—six steps, no magic. Each step is explained below with code snippets and the reasoning behind it. + +以上です—6 つのステップだけで、特別な魔法は不要です。各ステップは以下でコードスニペットとその背後にある考え方とともに説明します。 + +--- + +## Step 1 – Load the Source Workbook + +## ステップ 1 – ソースワークブックのロード + +First things first: you need a `Workbook` instance pointing at the file you want to duplicate. This step is essential because Aspose.Cells works directly with the file system, not with the Office UI. + +まず最初に、複製したいファイルを指す `Workbook` インスタンスが必要です。このステップは重要です。Aspose.Cells は Office UI ではなく、直接ファイルシステムとやり取りするためです。 + +```csharp +using Aspose.Cells; + +// Path to the original file +string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; +string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + +// Load the workbook – this is the starting point for how to copy worksheet +Workbook workbook = new Workbook(sourcePath); +``` + +*Why this matters:* Loading the file creates an in‑memory representation of every sheet, cell, and object. Without this, there’s nothing to copy, and any attempt to `add new worksheet code` later would fail because the source data isn’t present. + +*Why this matters:* ファイルを読み込むことで、すべてのシート、セル、オブジェクトがメモリ上に表現されます。これがなければコピーするものがなく、後で `add new worksheet code` を試みても、ソースデータが存在しないため失敗します。 + +## Step 2 – Add a New Worksheet (add new worksheet code) + +## ステップ 2 – 新しいワークシートの追加 (add new worksheet code) + +Now we need a place to paste the copied data. This is where the **add new worksheet code** shines. You can name the sheet anything you like; here we call it `"Copy"`. + +次に、コピーしたデータを貼り付ける場所が必要です。ここで **add new worksheet code** が活躍します。シート名は好きなものに設定できます。ここでは `"Copy"` としています。 + +```csharp +// Grab the first worksheet (the one we want to copy) +Worksheet sourceSheet = workbook.Worksheets[0]; + +// Add a fresh worksheet to receive the copy +Worksheet copySheet = workbook.Worksheets.Add("Copy"); +``` + +*Pro tip:* If you plan to copy multiple sheets, call `Worksheets.Add` inside a loop and give each sheet a unique name. That way you avoid name collisions and keep your workbook tidy. + +*Pro tip:* 複数のシートをコピーする場合は、ループ内で `Worksheets.Add` を呼び出し、各シートに固有の名前を付けてください。これにより名前の衝突を防ぎ、ワークブックを整理された状態に保てます。 + +## Step 3 – Define the Copy Cell Range + +## ステップ 3 – コピーセル範囲の定義 + +A **copy cell range** tells Aspose.Cells exactly which rows and columns to duplicate. In many real‑world scenarios the range includes a pivot table, so we must be precise. + +**copy cell range** は、Aspose.Cells に対して正確にどの行と列を複製するかを指示します。実務ではこの範囲にピボットテーブルが含まれることが多く、正確さが求められます。 + +```csharp +// Define the area that contains the pivot table (A1:G20) +CellArea sourceRange = new CellArea +{ + StartRow = 0, // Row 1 (zero‑based) + StartColumn = 0, // Column A + EndRow = 19, // Row 20 + EndColumn = 6 // Column G +}; + +// Destination range – we start at the same top‑left corner +CellArea destinationRange = new CellArea +{ + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 +}; +``` + +*Why we need this:* By explicitly stating the range, you avoid copying the entire sheet (which can be wasteful) and you guarantee that the pivot table lives inside the copied area. This is the core of **how to copy worksheet** when you only need part of the sheet. + +*Why we need this:* 範囲を明示的に指定することで、シート全体をコピーする無駄を防ぎ、ピボットテーブルがコピー領域内に確実に含まれることを保証します。シートの一部だけが必要な場合の **how to copy worksheet** の核心です。 + +## Step 4 – Set Copy Options (preserve copy worksheet pivot table) + +## ステップ 4 – コピーオプションの設定 (preserve copy worksheet pivot table) + +Aspose.Cells offers a `CopyOptions` object that controls what gets pasted. To keep the pivot table, charts, and formulas, we set `PasteType.All` and enable `PasteSpecial`. + +Aspose.Cells は貼り付け対象を制御する `CopyOptions` オブジェクトを提供します。ピボットテーブル、チャート、数式を保持するために `PasteType.All` を設定し、`PasteSpecial` を有効にします。 + +```csharp +CopyOptions copyOptions = new CopyOptions +{ + PasteType = PasteType.All, // Copy everything: values, formats, objects + PasteSpecial = true // Enable special paste to retain pivot tables +}; +``` + +*Explanation:* `PasteType.All` is the most inclusive option, while `PasteSpecial` tells the engine to treat complex objects—like pivot tables—properly. Skipping this step is a common pitfall; the copied sheet would lose its interactive features. + +*Explanation:* `PasteType.All` は最も包括的なオプションで、`PasteSpecial` はエンジンにピボットテーブルのような複雑なオブジェクトを正しく扱うよう指示します。このステップを省くと、コピーされたシートがインタラクティブ機能を失うという一般的な落とし穴があります。 + +## Step 5 – Copy Rows and Columns (copy columns between sheets) + +## ステップ 5 – 行と列のコピー (copy columns between sheets) + +Now comes the heavy lifting: actually moving the data. We’ll use `CopyRows` and `CopyColumns` to handle **copy columns between sheets**. Doing both ensures that merged cells and column widths are preserved. + +いよいよ本格的な処理です。データを実際に移動します。`CopyRows` と `CopyColumns` を使用して **copy columns between sheets** を実現します。両方を実行することで、結合セルや列幅が保持されます。 + +```csharp +// Copy rows from the source to the destination sheet +sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + +// Copy columns from the source to the destination sheet +sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); +``` + +*What’s happening:* `CopyRows` moves the data row‑by‑row, while `CopyColumns` does the same column‑by‑column. Running both guarantees that the entire rectangular block is duplicated, which is essential when you need to **copy columns between sheets** that have different column widths or hidden columns. + +*What’s happening:* `CopyRows` はデータを行単位で、`CopyColumns` は列単位で移動します。両方を実行することで、矩形領域全体が正確に複製され、列幅が異なる、または非表示列があるシート間で **copy columns between sheets** が必要な場合に不可欠です。 + +## Step 6 – Save the Workbook + +## ステップ 6 – ワークブックの保存 + +Finally, write the changes back to disk. This step completes the **how to copy worksheet** process. + +最後に、変更をディスクに書き戻します。このステップで **how to copy worksheet** のプロセスが完了します。 + +```csharp +// Save the workbook with the newly copied sheet +workbook.Save(destinationPath); +``` + +*Verification tip:* Open `Destination.xlsx` and check that the `"Copy"` sheet looks identical to the original, pivot tables are functional, and column widths match. If anything looks off, revisit the `CopyOptions` settings. + +*Verification tip:* `Destination.xlsx` を開き、 `"Copy"` シートが元のシートと同一に見えるか、ピボットテーブルが機能しているか、列幅が一致しているかを確認してください。何か違和感があれば、`CopyOptions` の設定を見直しましょう。 + +## Edge Cases & Common Variations + +## エッジケースと一般的なバリエーション + +### Copying Multiple Worksheets + +### 複数のワークシートのコピー + +If you need to duplicate several sheets, wrap the above logic in a `foreach` loop: + +複数のシートを複製する必要がある場合は、上記ロジックを `foreach` ループで囲んでください: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + Worksheet newWs = workbook.Worksheets.Add(ws.Name + "_Copy"); + // Re‑use sourceRange/destinationRange or calculate per sheet + // Then call CopyRows/CopyColumns as shown earlier +} +``` + +### Preserving Formulas Across Different Workbooks + +### 異なるワークブック間での数式の保持 + +When the source and destination workbooks have different named ranges, set `copyOptions` to `PasteType.Formulas` in addition to `All`: + +ソースと宛先のワークブックで名前付き範囲が異なる場合は、`copyOptions` に `PasteType.All` に加えて `PasteType.Formulas` を設定します: + +```csharp +copyOptions.PasteType = PasteType.All | PasteType.Formulas; +``` + +### Large Ranges and Performance + +### 大規模範囲とパフォーマンス + +For massive datasets (hundreds of thousands of rows), consider using `CopyRows` only and skipping `CopyColumns` if column widths are not critical. This can shave off a few seconds. + +数十万行規模の大規模データセットの場合、列幅が重要でなければ `CopyRows` のみを使用し、`CopyColumns` を省くことを検討してください。これにより数秒の短縮が期待できます。 + +## Full Working Example + +## 完全な動作例 + +Below is the complete, ready‑to‑run program that embodies everything we’ve discussed. Paste it into a console app, adjust the file paths, and hit **F5**. + +以下に、ここまで説明したすべてを網羅した完全な実行可能プログラムを示します。コンソールアプリに貼り付け、ファイルパスを調整して **F5** を押すだけです。 + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // ---------- Step 1: Load the source workbook ---------- + string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; + string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + Workbook workbook = new Workbook(sourcePath); + + // ---------- Step 2: Add a new worksheet (add new worksheet code) ---------- + Worksheet sourceSheet = workbook.Worksheets[0]; + Worksheet copySheet = workbook.Worksheets.Add("Copy"); + + // ---------- Step 3: Define the copy cell range ---------- + CellArea sourceRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + CellArea destinationRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + + // ---------- Step 4: Set copy options (preserve copy worksheet pivot table) ---------- + CopyOptions copyOptions = new CopyOptions + { + PasteType = PasteType.All, + PasteSpecial = true + }; + + // ---------- Step 5: Copy rows and columns (copy columns between sheets) ---------- + sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + + sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); + + // ---------- Step 6: Save the workbook ---------- + workbook.Save(destinationPath); + } +} +``` + +**Expected result:** Opening `Destination.xlsx` shows a sheet named **Copy** that mirrors the first sheet of `Source.xlsx`—including any pivot tables, formatting, and column widths. The original file remains untouched. + +**Expected result:** `Destination.xlsx` を開くと、**Copy** という名前のシートが `Source.xlsx` の最初のシートと同一に表示されます—ピボットテーブル、書式設定、列幅すべてがコピーされています。元のファイルは変更されません。 + +## Frequently Asked Questions + +## よくある質問 + +**Q: Does this work with .xlsx files created by Excel 2019?** +A: Absolutely. Aspose.Cells supports all modern Excel formats, so the same code works for `.xlsx`, `.xlsm`, and even older `.xls` files + +**Q: Does this work with .xlsx files created by Excel 2019?** +A: Absolutely. Aspose.Cells supports all modern Excel formats, so the same code works for `.xlsx`, `.xlsm`, and even older `.xls` files + +{{< /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/japanese/net/excel-custom-number-date-formatting/_index.md b/cells/japanese/net/excel-custom-number-date-formatting/_index.md index a3345de06d..690d3ece1b 100644 --- a/cells/japanese/net/excel-custom-number-date-formatting/_index.md +++ b/cells/japanese/net/excel-custom-number-date-formatting/_index.md @@ -36,6 +36,9 @@ このステップバイステップのチュートリアルでは、Aspose.Cells for .NET を使用して、Excel セルの値をカスタム数値形式と照合する方法を学習します。 ### [Excelシートにデータをインポートするときに数式フィールドを指定する](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) この詳細なチュートリアルでは、Aspose.Cells for .NET を使用して、指定された数式フィールドを持つ Excel シートにデータをインポートする方法を学習します。 +### [C# で区切り文字付きの数値をフォーマットする – 完全 Aspose.Cells ガイド](./format-number-with-separator-in-c-complete-aspose-cells-guid/) +このチュートリアルでは、Aspose.Cells for .NET を使用して、C# で数値に区切り文字を付けてフォーマットする方法を学びます。 +### [Excel から ISO 日付をフォーマット – 完全 C# ガイド](./format-date-iso-from-excel-complete-c-guide/) {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/japanese/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md b/cells/japanese/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..9c130d789b --- /dev/null +++ b/cells/japanese/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md @@ -0,0 +1,216 @@ +--- +category: general +date: 2026-03-30 +description: Aspose.Cells を使用して C# で Excel の日時値を読み取り、ISO 形式の日付にフォーマットし、Excel の日時データを抽出する方法を学びましょう。 +draft: false +keywords: +- format date iso +- read excel datetime +- extract datetime excel +- Aspose.Cells date parsing +- Japanese era dates +language: ja +og_description: Aspose.Cells を使用して Excel データから ISO 形式の日付に変換します。このガイドでは、Excel の日時を読み取り、日時の + Excel 値を抽出し、ISO 日付として出力する方法を示します。 +og_title: ExcelからISO形式の日付をフォーマットする – ステップバイステップ C# チュートリアル +tags: +- C# +- Excel +- DateTime +- Aspose.Cells +title: ExcelからISO日付形式への変換 – 完全C#ガイド +url: /ja/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# format date iso from Excel – Complete C# Guide + +Excel シートから日付を取得するときに **format date iso** が必要になったことはありませんか?日本の元号日付を扱っているか、API のペイロード用に `yyyy‑MM‑dd` 形式の文字列が欲しいだけかもしれません。このチュートリアルでは、**read Excel datetime** セルの取得方法、**extract datetime Excel** の値の抽出方法、そして ISO‑8601 形式への変換方法を、手順を追って丁寧に解説します。 + +実際のサンプルとして Aspose.Cells を使用し、各行が何のためにあるのかを説明しながら、最終的にプロジェクトにコピペできるコードを提示します。最後まで読めば、例えば「令和3年5月1日」のような元号文字列を標準的な ISO 日付に変換し、データベースや JSON、その他必要な場所で使えるようになります。 + +## Prerequisites + +- .NET 6.0 以上(.NET Framework でも動作します) +- Aspose.Cells for .NET(無料トライアルまたはライセンス版) +- C# と Excel の基本的な知識 +- Visual Studio などお好みの C# エディタ + +Aspose.Cells 以外に追加の NuGet パッケージは不要なので、セットアップは非常にシンプルです。 + +--- + +## Step 1: Create a Workbook and Target the First Worksheet + +最初に行うのは `Workbook` オブジェクトを作成することです。これにより、Excel ファイルのメモリ上表現が得られ、操作や読み取りが可能になります。 + +```csharp +using Aspose.Cells; +using System.Globalization; + +// Step 1: Initialize a new workbook and grab the first worksheet +Workbook workbook = new Workbook(); // creates an empty .xlsx +Worksheet worksheet = workbook.Worksheets[0]; // the default sheet is "Sheet1" +``` + +*Why this matters:* +プログラム上でブックを生成すれば、テスト時に実体ファイルを扱う手間が省けます。また、ワークシート参照が常に有効になるため、後で **read Excel datetime** の値を取得しようとしたときに null 参照エラーが起きません。 + +--- + +## Step 2: Write a Japanese Era Date String into a Cell + +元号日付のパース例を示すため、セル **A1** に直接元号文字列を書き込みます。 + +```csharp +// Step 2: Insert a Japanese era date string into cell A1 +worksheet.Cells["A1"].PutValue("令和3年5月1日"); +``` + +*Pro tip:* 既存のブックからデータを取得する場合は `PutValue` 呼び出しを省き、すでに日付が入っているセルを参照してください。重要なのは、セルに **string** として日本の太陰太陽暦の日付が格納されていることです。 + +--- + +## Step 3: Configure a Culture That Understands the Japanese Lunisolar Calendar + +.NET の `CultureInfo` クラスを使って、日付の解釈方法を指定します。デフォルトのグレゴリオ暦を `JapaneseLunisolarCalendar` に差し替えることで、パーサーに正しいコンテキストを提供します。 + +```csharp +// Step 3: Set up a culture using the Japanese lunisolar calendar +CultureInfo japaneseCulture = new CultureInfo("ja-JP"); +japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); +``` + +*Why we do this:* +デフォルトカルチャで「令和3年5月1日」を解析しようとすると `FormatException` がスローされます。太陰太陽暦を設定すれば、.NET は「令和3年」(令和元年から数えて 3 年目)をグレゴリオ暦の 2021 年に正しくマッピングできます。 + +--- + +## Step 4: Parse the Cell Value as a `DateTime` Using the Configured Culture + +ここが本番処理です。元号文字列を `DateTime` オブジェクトに変換します。Aspose.Cells の `GetDateTime` オーバーロードは `CultureInfo` を受け取ることができ、便利です。 + +```csharp +// Step 4: Retrieve the cell value as a DateTime, respecting the Japanese culture +DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); +``` + +*What’s happening under the hood:* +`GetDateTime` はセルの文字列を読み取り、渡されたカルチャのカレンダー規則を適用して、同じ瞬間を表すグレゴリオ暦の `DateTime` を返します。これが **extract datetime Excel** データを .NET で扱える形に変換するポイントです。 + +--- + +## Step 5: Output the Parsed Date in ISO 8601 Format + +最後に `DateTime` を ISO 形式(`yyyy‑MM‑dd`)の文字列にフォーマットします。API、データベース、フロントエンドフレームワークで広く受け入れられています。 + +```csharp +// Step 5: Print the date in ISO format (e.g., 2021-05-01) +Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // Output: 2021-05-01 +``` + +*Why ISO?* +ISO 8601 は曖昧さを排除します。たとえば “05/01/2021” はロケール次第で 5 月 1 日か 1 月 5 日かが変わりますが、`2021-05-01` なら一目で 2021 年 5 月 1 日と分かります。だからほぼすべての統合シナリオで **format date iso** が推奨されます。 + +--- + +## Full Working Example + +以下はそのまま実行可能な完全サンプルです。コンソールアプリに貼り付け、Aspose.Cells の参照を追加して **F5** で実行してください。 + +```csharp +using Aspose.Cells; +using System; +using System.Globalization; + +class Program +{ + static void Main() + { + // 1️⃣ Create workbook and select the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("令和3年5月1日"); + + // 3️⃣ Set up Japanese lunisolar culture + CultureInfo japaneseCulture = new CultureInfo("ja-JP"); + japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); + + // 4️⃣ Parse the cell value as DateTime using the culture + DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); + + // 5️⃣ Output the date in ISO format + Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // 2021-05-01 + } +} +``` + +**Expected output** + +``` +2021-05-01 +``` + +一度実行すれば、コンソールに ISO 形式の日付が表示されます。これが **read Excel datetime** から **format date iso** までの全パイプラインです。 + +--- + +## Handling Common Edge Cases + +### 1. Cells Containing Real Excel Date Numbers + +Excel が日付をシリアル番号(例: `44204`)で保持している場合は、カルチャは不要です。パラメータなしで `GetDateTime()` を呼び出すだけで済みます。 + +```csharp +DateTime serialDate = worksheet.Cells["B2"].GetDateTime(); // B2 holds a numeric date +Console.WriteLine(serialDate.ToString("yyyy-MM-dd")); +``` + +### 2. Blank or Invalid Cells + +セルが空だったり、パースできない文字列が入っていると `GetDateTime` は例外をスローします。`try/catch` で囲むか、事前に `IsDateTime` でチェックしてください。 + +```csharp +if (worksheet.Cells["C3"].Type == CellValueType.IsDateTime) +{ + DateTime safeDate = worksheet.Cells["C3"].GetDateTime(); + Console.WriteLine(safeDate.ToString("yyyy-MM-dd")); +} +else +{ + Console.WriteLine("Cell C3 does not contain a valid date."); +} +``` + +### 3. Different Era Formats + +他の元号(平成、昭和)でも同様のパターンです。`JapaneseLunisolarCalendar` が自動的に処理してくれるので、追加ロジックは不要です。文字列をそのまま渡すだけで OK です。 + +--- + +## Pro Tips & Gotchas + +- **Performance:** 大量のシートを処理する場合は、ループ内で毎回新しい `CultureInfo` を作らずに、1 つのインスタンスを再利用してください。 +- **Thread Safety:** `CultureInfo` はカレンダーを設定した後は読み取り専用になるため、スレッド間で安全に共有できます。 +- **Aspose.Cells Licensing:** 無料トライアルを使用している場合、トライアル期間終了後に一部機能が制限されることがありますが、ここで示した日付パースはトライアルでもライセンス版でも問題なく動作します。 +- **Time Zones:** 取得した `DateTime` の `Kind` は **Unspecified** です。UTC が必要な場合は `DateTime.SpecifyKind(parsedDate, DateTimeKind.Utc)` で明示するか、`TimeZoneInfo` を使って変換してください。 + +--- + +## Conclusion + +Excel ブックから C# で **format date iso** するために必要な手順をすべて網羅しました。日本の元号文字列から始めて **read Excel datetime**、適切なカルチャ設定、**extract datetime excel**、そしてクリーンな ISO‑8601 文字列の出力まで、実務で直面するあらゆる日付表現に対応できる方法です。 + +次のステップとして、列全体をループして ISO 結果を新しいシートに書き戻す、あるいは Web サービス向けの JSON ペイロードに直接組み込むなど、実装を拡張してみてください。ヘブライ暦やイスラム暦など他のカレンダーシステムに興味がある場合も、Aspose.Cells と .NET の `CultureInfo` で同様に簡単に実験できます。 + +質問や解決できない日付形式があればコメントで教えてください。Happy coding! + +{{< /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/japanese/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md b/cells/japanese/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md new file mode 100644 index 0000000000..5b814eb9d4 --- /dev/null +++ b/cells/japanese/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-03-30 +description: Aspose.Cells を使用した C# での区切り文字付き数値の書式設定方法を学びます。カスタム数値書式の設定、千位区切りの追加、小数点以下の書式設定、セルの書式設定方法が含まれます。 +draft: false +keywords: +- format number with separator +- set custom number format +- add thousands separator +- format decimal places +- how to format cell +language: ja +og_description: C#で区切り文字を使用して数値をフォーマットする。このガイドでは、カスタム数値書式の設定、千位区切りの追加、小数点以下の書式設定、そして + Aspose.Cells を使用したセルの書式設定方法を紹介します。 +og_title: C#で区切り文字を使用した数値の書式設定 – Aspose.Cellsチュートリアル +tags: +- C# +- Aspose.Cells +- Number Formatting +title: C#で区切り文字付き数値のフォーマット – 完全な Aspose.Cells ガイド +url: /ja/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# で区切り付き数値をフォーマット – 完全 Aspose.Cells ガイド + +スプレッドシートで **区切り付き数値をフォーマット** したいと思ったことはありませんか?どの API 呼び出しを使えばいいか分からないことも多いでしょう。開発者はデータをエクスポートする際、千位区切りや小数点以下の桁数、カスタムパターンに常に頭を悩ませています。 + +朗報です。Aspose.Cells を使えばとても簡単です。このチュートリアルでは、実際の例を通して **カスタム数値フォーマットを設定**、**千位区切りを追加**、**小数点以下をフォーマット**、そして **セルの出力を文字列としてフォーマットする方法** を解説します。最後まで読めば、任意の .NET プロジェクトにすぐ貼り付けて実行できるコードスニペットが手に入ります。 + +## What This Guide Covers + +* 必要な NuGet パッケージとインストール方法 +* ワークブックを作成し、数値を書き込み、カスタムフォーマットを適用するステップバイステップのコード +* `ExportTableOptions.ExportAsString` がフォーマット済みの値を取得する推奨手段である理由 +* 一般的な落とし穴 — `ExportAsString` を有効にし忘れたり、誤ったフォーマットマスクを使用したりするケース +* 小数点以下の桁数や区切り文字のスタイルを変更したい場合のフォーマットマスクの調整方法 + +外部ドキュメントへのリンクは不要です。必要な情報はすべてここにあります。さっそく始めましょう。 + +--- + +## Prerequisites + +| 要件 | 理由 | +|-------------|--------| +| .NET 6.0 以降 | Aspose.Cells 23.10 以降は .NET Standard 2.0+ を対象としているため、.NET 6 が安全かつ最新です。 | +| Visual Studio 2022(または任意の C# IDE) | デバッグやパッケージ管理が簡単になります。 | +| Aspose.Cells for .NET NuGet パッケージ | `Workbook`、`Worksheet`、`ExportTableOptions` クラスを提供します。 | + +You can install the package via the Package Manager Console: + +```powershell +Install-Package Aspose.Cells +``` + +That’s it—no extra DLLs, no COM interop, just a single NuGet reference. + +--- + +## Step 1: Initialise a New Workbook (How to Format Cell) + +The first thing we do is create a fresh `Workbook` instance. Think of it as an empty Excel file ready to receive data. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Create a new workbook – this is where we’ll format the cell. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **なぜ重要か:** `Workbook` は Aspose.Cells のすべての操作のエントリーポイントです。最初のワークシート (`Worksheets[0]`) を取得することで、シート名を指定せずにクリーンなキャンバスを得られます。 + +--- + +## Step 2: Write a Numeric Value into the Target Cell + +Next, we put a raw number into cell **A1**. The value itself isn’t formatted yet—it’s just a double. + +```csharp + // Step 2: Insert a raw numeric value. + worksheet.Cells["A1"].PutValue(12345.6789); +``` + +> **プロのコツ:** 後で数値フォーマットを適用したい場合は `PutString` ではなく `PutValue` を使用してください。これにより基になるデータ型が保持され、Excel 互換の計算が可能になります。 + +--- + +## Step 3: Set Custom Number Format (Add Thousands Separator & Format Decimal Places) + +Now comes the heart of the tutorial: defining a format mask that tells Aspose.Cells how to display the number. The mask `#,##0.00` does three things: + +1. `#,##0` – 千位区切り(デフォルトはカンマ)を追加します。 +2. `.00` – 小数点以下をちょうど 2 桁に固定します。 + +If you need a different number of decimals, just change the number of `0`s after the decimal point. + +```csharp + // Step 3: Configure the custom number format. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, // Return the value as a formatted string. + NumberFormat = "#,##0.00" // Add thousands separator and fix to 2 decimals. + }; +``` + +> **`ExportAsString` を使用する理由:** デフォルトでは `ExportString` は生の値を返します。`ExportAsString = true` を設定すると、テキストに変換する前に API が `NumberFormat` マスクを適用します。レポートや JSON ペイロード、UI 表示などで正確な文字列表現が必要な場合に必須です。 + +--- + +## Step 4: Export the Formatted Text (How to Format Cell) + +With the options ready, we call `ExportString` on the same cell. The method respects the mask we just defined and hands back a nicely formatted string. + +```csharp + // Step 4: Export the formatted value. + string formattedCellText = worksheet.Cells["A1"].ExportString(exportOptions); + + // Step 5: Show the result. + Console.WriteLine(formattedCellText); // Expected output: 12,345.68 + } +} +``` + +Running the program prints **`12,345.68`** to the console—exactly the format we asked for. + +> **エッジケース:** 元の数値に小数点以下が 2 桁以上ある場合、マスクは四捨五入します。切り捨てが必要な場合は、`PutValue` を呼び出す前に `Math.Truncate` で事前に処理してください。 + +--- + +## Step 5: Tweaking the Format – Common Variations + +### 5.1 Change Decimal Precision + +Want three decimal places? Just replace the mask: + +```csharp +NumberFormat = "#,##0.000" // → 12,345.679 +``` + +### 5.2 Use a Different Thousands Separator + +Some locales prefer a space or a period. You can embed the character directly: + +```csharp +NumberFormat = "# ##0.00" // Uses a non‑breaking space as separator. +``` + +Or rely on the workbook’s culture settings: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("de-DE"); +NumberFormat = "#.##0,00"; // German style: 12.345,68 +``` + +### 5.3 Prefix or Suffix (Currency, Percent) + +Add a dollar sign or a percent sign right in the mask: + +```csharp +NumberFormat = "$#,##0.00"; // → $12,345.68 +NumberFormat = "0.00%"; // → 1,234,568.00% +``` + +> **注意:** マスクは大文字小文字を区別します。`$` と `%` はリテラルシンボルであり、基になる数値には影響しません。 + +--- + +## Step 6: Full Working Example (Copy‑Paste Ready) + +Below is the complete program you can copy into a new console app. It includes all the steps, comments, and the final output verification. + +```csharp +using System; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write raw numeric value to A1. + worksheet.Cells["A1"].PutValue(12345.6789); + + // 3️⃣ Define custom format: thousands separator + two decimals. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + NumberFormat = "#,##0.00" + }; + + // 4️⃣ Export the formatted string. + string result = worksheet.Cells["A1"].ExportString(exportOptions); + + // 5️⃣ Display the outcome. + Console.WriteLine(result); // Output: 12,345.68 + + // Optional: keep console open. + Console.WriteLine("Press any key to exit..."); + Console.ReadKey(); + } +} +``` + +Run the program (`dotnet run` from the terminal or press F5 in Visual Studio) and you’ll see the formatted number printed exactly as shown. + +--- + +## Frequently Asked Questions (FAQ) + +**Q: 旧バージョンの Excel でも動作しますか?** +A: はい。フォーマットマスクは Excel のネイティブな数値書式構文に従うため、`#,##0.00` を理解できるすべてのバージョンで同じ文字列が表示されます。 + +**Q: 複数セルの範囲をフォーマットしたい場合は?** +A: 対象範囲をループして各セルに同じ `ExportTableOptions` を適用するか、範囲に対して `Style.Custom` プロパティを設定し、最後に単一セルで `ExportString` を呼び出します。 + +**Q: これらのフォーマットを適用したまま CSV に直接エクスポートできますか?** +A: もちろん可能です。各セルにフォーマットを設定した後、`Workbook.Save("output.csv", SaveFormat.CSV);` を使用してください。Aspose.Cells は CSV 生成時にセルの `Style` を尊重します。 + +## Conclusion + +ここでは Aspose.Cells を使用して C# で **区切り付き数値をフォーマット** する方法を示しました。**カスタム数値フォーマットの設定**、**千位区切りの追加**、**小数点以下のフォーマット**、そして文字列エクスポートのための **セルのフォーマット方法** まで網羅しています。コードは完全に自己完結しており、.NET 6+ で動作し、任意のロケールや精度要件に合わせて調整可能です。 + +次に検討できること: + +* 日付や時刻にも同様の手法を適用する (`NumberFormat = "dd‑MMM‑yyyy"`)。 +* 列ごとに異なるマスクが必要な大量エクスポートを自動化する。 +* Aspose.Words を使ってフォーマット済み文字列を PDF レポートに統合する。 + +ぜひ試してみてください。そうすればチーム内でスプレッドシートのフォーマット担当者としてすぐに認められるでしょう。コーディングを楽しんで! (Image: ![Aspose.Cells で区切り付き数値が表示されたスクリーンショット](image-placeholder.png){alt="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/japanese/net/excel-data-import-export/_index.md b/cells/japanese/net/excel-data-import-export/_index.md index a06c4462a6..86a311319b 100644 --- a/cells/japanese/net/excel-data-import-export/_index.md +++ b/cells/japanese/net/excel-data-import-export/_index.md @@ -32,6 +32,10 @@ Aspose.Cells for .NET を使って Excel のデータ操作をマスターする このわかりやすいチュートリアルでは、Aspose.Cells for .NET を使用してカスタム DB Num フォーマットでデータを Excel にインポートする方法を説明します。 ### [Excelでデータテーブル行を挿入するときに最初の行を下に移動](./shift-first-row-down-when-inserting-cells-datatable-rows-in-excel/) Aspose.Cells for .NET を使用して、Excel の DataTable 行を最初の行を下に移動せずに挿入する方法を学びます。ステップバイステップのガイドで、簡単に自動化できます。 +### [C# で Excel ワークブックを作成 – JSON を挿入して XLSX として保存](./create-excel-workbook-c-insert-json-and-save-as-xlsx/) +Aspose.Cells for .NET を使用して、C# で JSON データを Excel ワークブックに挿入し、XLSX ファイルとして保存する方法を解説します。 +### [C# で Excel ワークブックを作成 – 通貨書式を適用して DataTable をインポート](./create-excel-workbook-c-apply-currency-format-and-import-dat/) +Aspose.Cells for .NET を使用して、C# で通貨書式を設定し、DataTable のデータを Excel ワークブックにインポートする方法を解説します。 {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/japanese/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md b/cells/japanese/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md new file mode 100644 index 0000000000..16072e5a97 --- /dev/null +++ b/cells/japanese/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md @@ -0,0 +1,281 @@ +--- +category: general +date: 2026-03-30 +description: C#で通貨書式設定されたExcelブックを作成します。DataTableのインポート方法、Excelへの数値書式の追加、そして数分で通貨書式の列を適用する方法を学びましょう。 +draft: false +keywords: +- create excel workbook c# +- format cells currency +- import datatable to excel +- add number format excel +- apply currency format column +language: ja +og_description: C#でExcelブックを作成し、セルを即座に通貨形式にフォーマットします。このステップバイステップのチュートリアルでは、DataTableをExcelにインポートし、列に数値書式(通貨)を追加する方法を示します。 +og_title: C#でExcelブックを作成 – 通貨書式設定ガイド +tags: +- Aspose.Cells +- C# +- Excel automation +title: C#でExcelブックを作成 – 通貨形式を適用し、DataTableをインポート +url: /ja/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel ワークブック C# の作成 – 通貨形式を適用し DataTable をインポート + +すでに完成されたレポートのような **Excel ワークブック C#** を作成したことがありますか?たとえばデータベースから売上数字を取得し、価格列を手動で Excel を操作せずにドル表記にしたい、というケースです。心当たりはありませんか?同じ問題に直面する開発者は多いです――Excel エクスポートを自動化し始めたときにこの壁にぶつかります。 + +このガイドでは、**Excel ワークブック C# を作成し**、`DataTable` をインポートし、**価格列を通貨形式にフォーマット**する、すぐに実行できる完全なソリューションを順を追って解説します。最後には `StyledTable.xlsx` というファイルが生成され、開いたときにきれいにフォーマットされた数値が表示されます。追加のポストプロセスは不要です。 + +> **学べること** +> - .NET プロジェクトで Aspose.Cells を設定する方法 +> - **import datatable to excel** をスタイル配列と共に実装する方法 +> - 特定の列に対して **add number format excel** を適用する方法 +> - 複数列や異なるロケールに対応する際のポイント + +> **前提条件** +> - .NET 6+(または .NET Framework 4.6+)がインストール済み +> - Aspose.Cells for .NET NuGet パッケージ (`Install-Package Aspose.Cells`) +> - C# と DataTable の基本的な知識 + +--- + +## Step 1: Prepare the DataTable (import datatable to excel) + +まずはサンプルデータを用意します。実際のアプリでは DB クエリからこのテーブルにデータを詰め込むことが多いですが、ここではハードコーディングした例でシンプルに示します。 + +```csharp +using System.Data; + +// Create a DataTable with two columns: Product (string) and Price (double) +DataTable dataTable = new DataTable(); +dataTable.Columns.Add("Product", typeof(string)); +dataTable.Columns.Add("Price", typeof(double)); + +// Add a few rows – you can add as many as you like +dataTable.Rows.Add("Apple", 1.23); +dataTable.Rows.Add("Banana", 0.78); +dataTable.Rows.Add("Cherry", 2.50); +``` + +*なぜ重要か*: `DataTable` はビジネスデータと Excel ファイルをつなぐ橋渡しです。Aspose.Cells はこれを直接インポートでき、列名やデータ型を保持します。 + +--- + +## Step 2: Spin Up a New Workbook (create excel workbook c#) + +次に実際の Excel ファイルオブジェクトを作成します。これは、描き始めるための白紙のキャンバスと考えてください。 + +```csharp +using Aspose.Cells; + +// Instantiate a fresh workbook – this is the core of create excel workbook c# +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0). You could also add more sheets later. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **プロのコツ**: 複数シートが必要な場合は `workbook.Worksheets.Add()` を呼び出し、シートごとに意味のある名前を付けましょう。 + +--- + +## Step 3: Define a Currency Style (format cells currency) + +Aspose.Cells では、セルの見た目を定義する `Style` オブジェクトを作成できます。通貨用には組み込みの数値形式 ID 164(`"$#,##0.00"`)を使用します。 + +```csharp +// Create a new style object for the price column +Style priceStyle = workbook.CreateStyle(); +priceStyle.Number = 164; // Built‑in currency format "$#,##0.00" +``` + +*なぜ文字列だけでなく ID を使うのか*? 組み込み ID を使用すると、Excel のバージョン間での互換性が保たれ、ロケール固有の問題を回避できます。 + +--- + +## Step 4: Build the Style Array (apply currency format column) + +`DataTable` をインポートする際、列ごとに `Style` オブジェクトの配列を渡すことができます。`null` は「デフォルトスタイルを使用」の意味です。ここでは 2 番目の列(価格列)だけに `priceStyle` を適用します。 + +```csharp +// Column 0 (Product) gets the default style, Column 1 (Price) gets the currency style +Style[] columnStyles = { null, priceStyle }; +``` + +後で列を増やす場合は、配列を同様に拡張すれば OK です。`columnStyles` の長さはインポートする列数と一致している必要があり、そうでないと Aspose が例外をスローします。 + +--- + +## Step 5: Import the DataTable with Styles (import datatable to excel) + +ここで魔法が起きます――`DataTable` がワークシートに配置され、価格列は即座に通貨形式で表示されます。 + +```csharp +// Parameters: +// - dataTable: source data +// - true: include column headers +// - startRow: 0 (top of sheet) +// - startColumn: 0 (first column) +// - columnStyles: style array defined above +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +*列が 2 つ以上ある場合は?* `columnStyles` を拡張して各列に適切なスタイル(またはデフォルトの `null`)を設定してください。これが **add number format excel** を選択的に適用する最もクリーンな方法です。 + +--- + +## Step 6: Save the Workbook (create excel workbook c#) + +最後にファイルをディスクに書き出します。書き込み権限のあるフォルダーを選んでください。 + +```csharp +// Save the workbook as an XLSX file +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +`StyledTable.xlsx` を Excel で開くと以下のように表示されます: + +| Product | Price | +|---------|-------| +| Apple | $1.23 | +| Banana | $0.78 | +| Cherry | $2.50 | + +**Price** 列はすでに通貨形式にフォーマットされており、追加の手順は不要です。 + +--- + +## Edge Cases & Variations + +### More Columns, Different Formats + +複数列(例: Cost, Tax, Total)に **format cells currency** を適用したい場合は、列ごとに別々の `Style` を作成し、`columnStyles` に設定します: + +```csharp +Style costStyle = workbook.CreateStyle(); +costStyle.Number = 164; // currency + +Style taxStyle = workbook.CreateStyle(); +taxStyle.Number = 164; + +// Assuming columns: Product, Cost, Tax, Total +Style[] styles = { null, costStyle, taxStyle, priceStyle }; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, styles); +``` + +### Locale‑Specific Currency + +ユーロやポンドなど別の通貨を使用する場合は、別の組み込み ID(例: `€#,##0.00` 用の 165)を使います。あるいはカスタム書式文字列を設定します: + +```csharp +priceStyle.Custom = "€#,##0.00"; +``` + +### Large Data Sets + +Aspose.Cells は数百万行まで処理可能ですが、スタイルオブジェクトが増えるとメモリ使用量も増えます。通貨列が複数ある場合は、同一の `Style` インスタンスを再利用してフットプリントを抑えましょう。 + +### Missing Styles + +`columnStyles` が列数より短い場合、残りの列にはデフォルトスタイルが適用されます。特定の列だけを対象にしたいときに便利です。 + +--- + +## Full Working Example (All Steps Combined) + +以下はコンソールアプリにコピペできる完全なプログラムです。これまで説明したすべての要素と、いくつかの便利なコメントが含まれています。 + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // Step 1: Build sample DataTable (import datatable to excel) + // ------------------------------------------------- + DataTable dataTable = new DataTable(); + dataTable.Columns.Add("Product", typeof(string)); + dataTable.Columns.Add("Price", typeof(double)); + dataTable.Rows.Add("Apple", 1.23); + dataTable.Rows.Add("Banana", 0.78); + dataTable.Rows.Add("Cherry", 2.50); + // You can add as many rows as you like here. + + // ------------------------------------------------- + // Step 2: Create a new workbook (create excel workbook c#) + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // Step 3: Define a currency style (format cells currency) + // ------------------------------------------------- + Style priceStyle = workbook.CreateStyle(); + priceStyle.Number = 164; // "$#,##0.00" – built‑in currency format + + // ------------------------------------------------- + // Step 4: Build the style array (apply currency format column) + // ------------------------------------------------- + // First column gets default style (null), second column uses priceStyle. + Style[] columnStyles = { null, priceStyle }; + + // ------------------------------------------------- + // Step 5: Import the DataTable with the style array + // ------------------------------------------------- + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // ------------------------------------------------- + // Step 6: Save the workbook to disk + // ------------------------------------------------- + string outputPath = @"YOUR_DIRECTORY\StyledTable.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } +} +``` + +**期待される結果**: `StyledTable.xlsx` を開くと `Price` 列がドル記号と小数点以下 2 桁で表示され、**format cells currency** の指示通りにフォーマットされています。 + +--- + +## Frequently Asked Questions + +**Q: Does this work with .NET Core?** +A: Absolutely. Aspose.Cells is .NET‑standard compliant, so you can target .NET 5, .NET 6, or later without changes. + +**Q: What if my DataTable has 10 columns but I only want to format column 5?** +A: Create a `Style[]` of length 10, fill positions 0‑4 and 6‑9 with `null`, and put your custom style at index 4 (zero‑based). Aspose will respect each entry. + +**Q: Can I hide the header row?** +A: After import, set `worksheet.Cells.Rows[0].Hidden = true;` or simply pass `false` for the `includeColumnNames` parameter in `ImportDataTable`. + +--- + +## Conclusion + +私たちは **Excel ワークブック C# を作成し**、`DataTable` をインポートし、Aspose.Cells を使って **通貨形式の列を適用**しました。データ準備、スタイル定義、スタイル配列作成、`ImportDataTable` によるインポート、保存という主要ステップは、ほとんどの Excel 自動化タスクの核となります。 + +ここからさらに踏み込むなら: + +- **add number format excel** を日付やパーセンテージに応用 +- 1 ファイルに複数シートをエクスポート +- ロケール固有のシンボルで **format cells currency** を使用 +- 同じデータを元にしたチャート自動生成 + +ぜひ試してみて、チーム内の Excel レポート作成の頼りになる存在になってください。独自の工夫や質問があればコメントでシェアしてください—Happy coding! + +![create excel workbook c# screenshot](image.png "create excel workbook c#") + +{{< /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/japanese/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md b/cells/japanese/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md new file mode 100644 index 0000000000..fb76251c23 --- /dev/null +++ b/cells/japanese/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md @@ -0,0 +1,250 @@ +--- +category: general +date: 2026-03-30 +description: JSON データを挿入して XLSX として保存することで、C# で Excel ワークブックを素早く作成できます。JSON から Excel + を生成する方法、JSON を Excel に書き込む方法、そして JSON を Excel に挿入する方法を学びましょう。 +draft: false +keywords: +- create excel workbook c# +- save workbook as xlsx +- generate excel from json +- write json to excel +- insert json into excel +language: ja +og_description: JSONデータを挿入し、ワークブックをXLSXとして保存することで、C#でExcelブックを迅速に作成します。JSONからExcelを生成するステップバイステップのガイドに従ってください。 +og_title: C#でExcelブックを作成 – JSONを挿入してXLSXとして保存 +tags: +- Aspose.Cells +- C# +- Excel automation +title: C#でExcelブックを作成 – JSONを挿入してXLSXとして保存 +url: /ja/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel ワークブックを C# で作成 – JSON を挿入して XLSX として保存 + +Ever needed to **create Excel workbook C#** and dump some JSON straight into a cell? You're not the only one—developers often face the same puzzle when they have API payloads or configuration files that need to land in a spreadsheet for reporting or sharing. + +The good news is that with Aspose.Cells you can do it in a handful of lines, **save workbook as XLSX**, and keep the whole process type‑safe. In this tutorial we’ll **generate Excel from JSON**, **write JSON to Excel**, and show you the exact steps to **insert JSON into Excel** without any fiddly string concatenations. + +## このガイドでカバーする内容 + +We'll walk through: + +1. 新しいワークブックを設定する。 +2. JSON を期待する Smart Marker を追加する。 +3. JSON 配列をマーカーに供給する。 +4. `SmartMarkerOptions` を調整して JSON を単一セルに保持する。 +5. ファイルを XLSX ワークブックとして保存する。 + +By the end you’ll have a ready‑to‑use `JsonSingleCell.xlsx` file and a solid pattern you can reuse for any JSON‑to‑Excel scenario. No external services, just plain C# and the Aspose.Cells library. + +**Prerequisites** + +- .NET 6+(または .NET Framework 4.6+)。 +- Visual Studio 2022 または任意の C#‑compatible IDE。 +- NuGet package `Aspose.Cells`(free trial or licensed version)。 + +If you’ve got those, let’s dive in—no extra setup required. + +--- + +## ステップ 1: C# で新しいワークブックを作成する + +The first thing you need is a blank workbook object. Think of it as a fresh Excel file waiting for data. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is your empty Excel file +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; +``` + +**Why this matters:** +`Workbook` is the entry point for all Excel operations. By creating it first, you ensure that the subsequent **save workbook as xlsx** call has a concrete object to serialize. + +> **Pro tip:** If you plan to work with multiple sheets, you can add them now with `workbook.Worksheets.Add()`. + +--- + +## ステップ 2: JSON を期待する Smart Marker を配置する + +Smart Markers are placeholders Aspose.Cells replaces at runtime. Here we tell it to look for a JSON string named `data`. + +```csharp +// Put a Smart Marker in cell A1 – {{data:json}} tells Aspose to expect JSON +worksheet.Cells["A1"].PutValue("{{data:json}}"); +``` + +**Why this matters:** +The `:json` suffix tells the engine that the incoming value is JSON, not plain text. This is the key to **write json to excel** without manual parsing. + +--- + +## ステップ 3: JSON 配列を定義する + +Now we craft the JSON we want to insert. For demonstration we’ll use a simple list of people. + +```csharp +// Sample JSON array – could come from an API, file, or DB +string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; +``` + +**Edge case:** +If your JSON contains double quotes, make sure they’re escaped (as shown) or use a verbatim string (`@"..."`) to avoid compile errors. + +--- + +## ステップ 4: Smart Marker オプションを設定 – 配列全体を保持する + +By default, Aspose would try to expand the array across rows. We want the whole JSON string to stay inside a single cell, which is perfect for **insert json into excel** scenarios where the consumer will parse the JSON later. + +```csharp +SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions +{ + // Treat the whole array as a single cell value + ArrayAsSingle = true +}; +``` + +**Why this matters:** +`ArrayAsSingle = true` prevents row expansion, giving you a clean, single‑cell JSON blob. This is essential when the spreadsheet is a transport format rather than a report. + +--- + +## ステップ 5: JSON データで Smart Marker を処理する + +We now bind the JSON to the marker and let Aspose do the heavy lifting. + +```csharp +// Process the marker – the anonymous object maps "data" to our JSON string +worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); +``` + +**What happens under the hood:** +Aspose evaluates the placeholder `{{data:json}}`, serializes the `jsonData` string, and writes it into cell A1 respecting the options we set. + +--- + +## ステップ 6: ワークブックを XLSX ファイルとして保存する + +Finally, we write the workbook to disk. This is where **save workbook as xlsx** comes into play. + +```csharp +// Save the workbook – the extension determines the format (XLSX here) +workbook.Save("JsonSingleCell.xlsx"); +``` + +**Result:** +Open `JsonSingleCell.xlsx` in Excel, and you’ll see the JSON array exactly as we defined it, sitting neatly in cell A1. + +--- + +## 完全な実行可能サンプル + +Below is the complete program you can copy‑paste into a console app. It includes all the steps above and runs out of the box (assuming the Aspose.Cells NuGet package is installed). + +```csharp +using System; +using Aspose.Cells; + +namespace JsonToExcelDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add a Smart Marker that expects JSON + worksheet.Cells["A1"].PutValue("{{data:json}}"); + + // 3️⃣ Define the JSON array + string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; + + // 4️⃣ Configure options – keep array as a single cell value + SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions + { + ArrayAsSingle = true + }; + + // 5️⃣ Process the marker with the JSON payload + worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); + + // 6️⃣ Save the workbook as XLSX + workbook.Save("JsonSingleCell.xlsx"); + + Console.WriteLine("Excel file created successfully! Check JsonSingleCell.xlsx."); + } + } +} +``` + +**Expected output in Excel** + +| A | +|---| +| `[{"Name":"John","Age":30},{"Name":"Jane","Age":28}]` | + +That single cell now holds a perfectly valid JSON array ready for downstream processing. + +--- + +## よくある質問とエッジケース + +### JSON を行に分割して配置したい場合は? + +Set `ArrayAsSingle = false` (the default). Aspose will create a row for each array element, mapping object properties to columns. This is handy when you want a tabular view instead of a raw JSON string. + +### ハードコーディングした文字列の代わりに JSON ファイルを使用できますか? + +Absolutely. Read the file into a string: + +```csharp +string jsonData = File.ReadAllText("people.json"); +``` + +Then pass `jsonData` to the same `Process` call. The rest of the pipeline stays unchanged. + +### 大きな JSON ペイロードでも動作しますか? + +Yes, but keep an eye on memory usage. For massive arrays, consider streaming the data or writing directly to rows (`ArrayAsSingle = false`) to avoid a single gigantic cell that Excel may struggle with. + +### 生成された XLSX は古い Excel バージョンと互換性がありますか? + +The `.xlsx` format is based on Office Open XML and works with Excel 2007 onward. If you need the legacy `.xls` format, change the save call: + +```csharp +workbook.Save("JsonSingleCell.xls", SaveFormat.Excel97To2003); +``` + +--- + +## JSON と Excel を扱うためのプロのコツ + +- **まず JSON を検証** – use `System.Text.Json.JsonDocument.Parse(jsonData)` to catch malformed input early. +- **特殊文字をエスケープ** – if your JSON contains line breaks, they’ll appear as literal `\n` in the cell; you can replace them with `Environment.NewLine` before processing. +- **Smart Markers を再利用** – you can place multiple markers in the same sheet, each pointing to a different JSON property. +- **数式と組み合わせ** – once the JSON is in a cell, you can use Excel’s `FILTERXML` (in newer versions) to parse it on the fly. + +--- + +## 結論 + +You now know how to **create excel workbook c#**, embed a JSON payload, and **save workbook as xlsx** using Aspose.Cells. This pattern lets you **generate excel from json**, **write json to excel**, and **insert json into excel** with just a few lines of code, making data exchange between services and analysts painless. + +Ready for the next step? Try converting the JSON array into a proper table (set `ArrayAsSingle = false`) or explore styling the sheet after insertion. The same approach works for CSV, XML, or even custom objects—just adjust the Smart Marker type. + +Happy coding, and feel free to experiment! If you hit any snags, drop a comment below or check out Aspose’s official docs for deeper dives into Smart Markers. + +{{< /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/japanese/net/excel-workbook/_index.md b/cells/japanese/net/excel-workbook/_index.md index 8c104831a8..6c963f92ae 100644 --- a/cells/japanese/net/excel-workbook/_index.md +++ b/cells/japanese/net/excel-workbook/_index.md @@ -86,6 +86,7 @@ Excelスキルを向上させるチャンスをぜひ活用してください。 | [ワークブックの印刷プレビュー](./workbook-print-preview/) Aspose.Cells for .NET を使用して Excel ファイルの印刷プレビューを作成する方法を学びます。詳細でわかりやすいチュートリアルでコーディング手順を学びます。 | | [コンテンツタイプのプロパティの操作](./working-with-content-type-properties/) Aspose.Cells for .NET を使用してコンテンツタイプのプロパティを操作し、Excel メタデータ管理を強化する方法を学びましょう。簡単なステップバイステップガイドに従ってください。 | | [Xades 署名サポート](./xades-signature-support/) Aspose.Cells for .NET を使用して Excel ファイルに Xades 署名を追加する方法をステップバイステップで解説します。ドキュメントを保護しましょう。 | +| [C# でマスターシートを作成する – 完全 Aspose.Cells ガイド](./create-master-sheet-in-c-complete-aspose-cells-guide/) ステップバイステップのガイドで、Aspose.Cells for .NET を使用して C# でマスターシートを作成する方法を学びます。 | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/japanese/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md b/cells/japanese/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md new file mode 100644 index 0000000000..d1a8a06430 --- /dev/null +++ b/cells/japanese/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md @@ -0,0 +1,250 @@ +--- +category: general +date: 2026-03-30 +description: Aspose.Cells を使用して C# でマスターシートを作成します。C# で Excel ワークブックを作成し、シート名の重複を許可し、数ステップでワークブックを + XLSX として保存する方法を学びましょう。 +draft: false +keywords: +- create master sheet +- create excel workbook c# +- save workbook as xlsx +- allow duplicate sheet names +language: ja +og_description: C# で Aspose.Cells を使用してマスターシートを作成する。このガイドでは、C# で Excel ワークブックを作成し、シート名の重複を許可し、ワークブックを + XLSX として保存する方法を示します。 +og_title: C#でマスターシートを作成 – 完全なAspose.Cellsガイド +tags: +- Aspose.Cells +- C# +- Excel automation +title: C#でマスターシートを作成する – 完全なAspose.Cellsガイド +url: /ja/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# でマスターシートを作成 – 完全な Aspose.Cells ガイド + +Excel ファイルで **マスターシートを作成** したいけれど、同じベース名を共有する多数の詳細シートをどう扱うか分からないことはありませんか? あなたは一人ではありません。多くのレポートシナリオでは、何十もの詳細タブができ、ほとんどのライブラリは同名シートができたときに例外をスローします。 + +幸い、Aspose.Cells を使えば **マスターシートを作成** し、エンジンに **重複シート名を許可** させ、さらに **XLSX としてブックを保存** するのがとても簡単です—すべてクリーンな C# コードから行えます。このチュートリアルでは、完全に実行可能なサンプルを順に解説し、各行がなぜ重要かを説明し、すぐに自分のプロジェクトに取り入れられるヒントをいくつかご紹介します。 + +> **得られるもの** +> * Aspose.Cells を使った **C# スタイルの Excel ブック作成** 方法。 +> * 各データ行ごとに詳細シートを生成するスマートマーカーの埋め込み方法。 +> * `DetailSheetNewName = DuplicateAllowed` を設定して、ライブラリが自動的に数値サフィックスを付与する方法。 +> * 余計な手順なしで **XLSX としてブックを保存** する方法。 + +外部ドキュメントは不要です—必要な情報はすべてここにあります。 + +--- + +## 前提条件 + +作業を始める前に、以下を用意してください。 + +| 必要条件 | 重要な理由 | +|----------|------------| +| .NET 6.0 以降(または .NET Framework 4.7 以上) | Aspose.Cells 23.x+ はこれらのランタイムを対象としています。 | +| Visual Studio 2022(または任意の C# IDE) | プロジェクト作成とデバッグが容易になります。 | +| Aspose.Cells for .NET NuGet パッケージ(`Install-Package Aspose.Cells`) | スマートマーカーの魔法を支えるライブラリです。 | +| 基本的な C# の知識 | クラッシュコースなしで構文が理解できます。 | + +これらのいずれかが不足している場合は、今すぐ追加してください—半端な環境で続行しても意味がありません。 + +--- + +## 手順 1: Aspose.Cells でマスターシートを作成 + +最初に行うのは **C# スタイルで Excel ブックを作成** することです。`Workbook` オブジェクトをインスタンス化すると、デフォルトのワークシートが自動的に含まれます。このシートの名前を「Master」に変更し、すべての詳細ページのテンプレートとして扱います。 + +```csharp +using Aspose.Cells; + +// Step 1: Initialise a new workbook – this automatically gives us one sheet +Workbook workbook = new Workbook(); + +// Grab the first (and only) worksheet that comes with a fresh workbook +Worksheet masterSheet = workbook.Worksheets[0]; + +// Give it a meaningful name – this will be our master sheet +masterSheet.Name = "Master"; +``` + +*シート名を変更する理由* +「Sheet1」などのデフォルト名では意図が伝わりません。後でファイルを確認したときに、マスタータブがすぐに認識できるようにするためです。また、後からシートを追加した際の名前衝突も防げます。 + +--- + +## 手順 2: 詳細シートを生成するスマートマーカーを準備 + +スマートマーカーは、Aspose.Cells が実行時にデータで置き換えるプレースホルダーです。セル **A1** に `{{#detail:DataSheetName}}` を配置することで、エンジンに「データソースの各レコードについて、`DataSheetName` フィールドの値をシート名とする新しいシートを作成せよ」と指示します。 + +```csharp +// Step 2: Insert a smart‑marker into cell A1. +// The marker #detail tells Aspose.Cells to generate a new sheet per data row. +masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); +``` + +このマーカーはワークシートに貼り付けた小さな指示カードのようなものです。プロセッサが実行されるとカードを読み取り、データソースから該当値を取得し、マスターシートを新しいタブにクローンします。 + +--- + +## 手順 3: データソースを構築 – 重複シート名を意図的に使用 + +実際のアプリではデータベースから取得することが多いですが、デモでは匿名オブジェクトのインメモリ配列を使用します。両方のアイテムが同じベース名 `"Detail"` を使用している点に注目してください。これが **重複シート名を許可** する必要が出てくるシナリオです。 + +```csharp +// Step 3: Create a data source with two items that share the same base sheet name. +var dataSource = new[] +{ + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } +}; +``` + +特別なオプションを設定せずにこのまま実行すると、2 回目のイテレーションで「Detail」というシートがすでに存在するため Aspose.Cells が例外をスローします。そこで次の手順が重要になります。 + +--- + +## 手順 4: 重複シート名を有効化 + +Aspose.Cells は `SmartMarkerOptions.DetailSheetNewName` を公開しています。これを `DetailSheetNewName.DuplicateAllowed` に設定すると、名前衝突が発生した際に自動的に数値サフィックス(例: “Detail_1”)が付与されます。 + +```csharp +// Step 4: Configure SmartMarker options to permit duplicate sheet names. +var smartMarkerOptions = new SmartMarkerOptions +{ + // This makes the library rename clashes to "Detail_1", "Detail_2", etc. + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed +}; +``` + +*各行に手動でユニークな名前を付けない理由* +ソースデータが一意性を保証しないことが多く、特にユーザーが自由形式のテキストを入力する場合は顕著です。ライブラリにサフィックス付与を任せることで、バグの原因となるクラス全体を回避できます。 + +--- + +## 手順 5: スマートマーカーを処理し、詳細シートを生成 + +ここで `SmartMarkers.Process` を呼び出し、データソースと先ほど設定したオプションを渡します。このメソッドは各アイテムを走査し、マスターシートをクローンして `DataSheetName` フィールド(必要に応じてサフィックス付き)で名前を付け直します。 + +```csharp +// Step 5: Run the smart‑marker processor – this creates the detail sheets. +masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); +``` + +この行が実行されると、ブックには次の 3 つのタブが作成されます: + +1. **Master** – 元のテンプレート。 +2. **Detail** – 最初に生成されたシート(サフィックス不要)。 +3. **Detail_1** – 2 番目に生成されたシート(自動的にサフィックスが付与)。 + +Excel でファイルを開くと、2 つの詳細シートが横に並んでいることが確認できます。 + +--- + +## 手順 6: XLSX ファイルとしてブックを保存 + +最後にファイルをディスクに永続化します。`.xlsx` 拡張子を指定すれば、`Save` メソッドは自動的に XLSX 形式を選択します。 + +```csharp +// Step 6: Persist the workbook – this is the moment we finally “save workbook as XLSX”. +string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; +workbook.Save(outputPath); +``` + +**プロのコツ:** Web 応答に直接ストリームで出力したい場合(例: ASP.NET Core) は、`workbook.Save(stream, SaveFormat.Xlsx)` を使用し、ファイルパスではなくストリームを渡してください。 + +--- + +## 完全動作サンプル + +以下が完成した、すぐに実行できるプログラムです。コンソールアプリに貼り付けて F5 キーを押し、生成されたファイルを開いて結果を確認してください。 + +```csharp +using System; +using Aspose.Cells; + +namespace MasterSheetDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook and rename the default sheet to "Master" + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert a smart‑marker that will generate a detail sheet per data row + masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); + + // 3️⃣ Prepare a data source where two rows share the same sheet name + var dataSource = new[] + { + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } + }; + + // 4️⃣ Allow duplicate sheet names – the library will add "_1", "_2", … + var smartMarkerOptions = new SmartMarkerOptions + { + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed + }; + + // 5️⃣ Process the smart‑markers; this creates the detail sheets + masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); + + // 6️⃣ Save the workbook as an XLSX file + string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**期待される結果:** `DuplicateDetailSheets.xlsx` を開くと、`Master`、`Detail`、`Detail_1` の 3 つのワークシートが表示されます。各詳細シートはマスターの完全なコピーで、後から行固有のデータを埋め込む準備ができています。 + +--- + +## よくある質問とエッジケース + +### 2 つ以上の重複シートが必要な場合は? + +問題ありません。同じ `DuplicateAllowed` 設定で、インクリメンタルな番号(`Detail_2`、`Detail_3` …)が自動的に付与され、すべての行に対応するタブが作成されます。 + +### サフィックスの形式をカスタマイズできるか? + +デフォルトではアンダースコアと数値インデックスが使用されます。別のパターン(例: “Detail‑A”、 “Detail‑B”)が必要な場合は、`Process` 実行後に `workbook.Worksheets` を走査し、好きな名前にリネームするポストプロセスを実装してください。 + +### 大量データ(数百行)でもこの手法は使えるか? + +はい。ただしメモリ使用量に注意が必要です。生成されるシートはマスターのフルコピーになるため、行数が多いとファイルサイズが急激に増大します。シートごとに数行しか必要ない場合は、`SmartMarkerOptions.RemoveEmptyRows = true` を設定して余分なセルを削除すると効果的です。 + +### 生成されたファイルは本当に XLSX か? + +もちろんです。`Save` メソッドは Excel が期待する Open XML パッケージを書き出します。LibreOffice や Google Sheets でも変換なしで開くことができます。 + +--- + +## 本番向けコードのヒント + +| ヒント | 重要な理由 | +|--------|------------| +| **Dispose `Workbook`** | リソースリークを防ぎ、メモリ使用量を最適化します。 | +| **使用しないシートは削除** | `workbook.Worksheets.RemoveAt(index)` で不要なテンプレートシートを除去し、ファイルサイズを削減します。 | +| **例外処理を実装** | `try { … } catch (Exception ex) { /* ロギング */ }` により、名前衝突や I/O エラーを安全にハンドリングできます。 | +| **ストリームで保存** | Web アプリケーションやクラウド環境では `MemoryStream` を使って直接クライアントに送信できます。 | +| **マルチスレッド環境での注意** | `Workbook` はスレッドセーフではないため、インスタンスはスレッドごとに分離してください。 | + +これらのベストプラクティスを取り入れれば、スケーラブルで保守性の高い 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/japanese/net/formulas-functions/_index.md b/cells/japanese/net/formulas-functions/_index.md index f849e54659..eed774bf95 100644 --- a/cells/japanese/net/formulas-functions/_index.md +++ b/cells/japanese/net/formulas-functions/_index.md @@ -40,67 +40,50 @@ Aspose.Cells を使用した数式操作を習得すると、C# コードから ## 数式と関数のチュートリアル ### [Aspose.Cells を使用して .NET ワークブック内の数式テキストを抽出する](./aspose-cells-formula-text-net) -.NETでAspose.Cellsを使用して、Excelファイルからプログラム的に数式テキストを抽出する方法を学びます。スプレッドシートに埋め込まれた数式ロジックの監査とドキュメント作成に最適です。 ### [Aspose.Cells .NET を使用した Excel タスクの自動化: 範囲内の数式の設定](./aspose-cells-net-set-formulas-ranges) -Aspose.Cells for .NET を使って、範囲内の数式設定を自動化する方法を学びましょう。C# を使って、同じ数式を複数のセルに同時に適用することで、Excel ワークフローを効率化できます。 ### [Aspose.Cells .NET ガイドを使用した数式による効率的な CSV インポート](./csv-imports-formulas-aspose-cells-net-guide) -Aspose.Cells for .NET を使用して、複雑な数式を含むCSVファイルを機能を損なうことなくExcelにインポートする方法を学びます。データのインポート時に数式のロジックを維持する方法を習得します。 ### [Aspose.Cells .NET でのセルの数式のカスタマイズ: グローバリゼーション設定ガイド](./custom-aspose-cells-net-globalization-settings) -Aspose.Cells .NET を使ってセルの数式をカスタマイズする方法を学びます。特に多言語アプリケーションのグローバリゼーション設定に焦点を当てています。国際的な数式形式を扱う開発者向けの包括的なガイドです。 ### [Aspose.Cells .NET を使用して Excel で数式を表示する: 効率的なワークブック管理のための包括的なガイド](./display-excel-formulas-aspose-cells-net) -Aspose.Cells .NET を使用して Excel ブック内の数式を効率的に表示する方法を学びます。このガイドでは、セットアップ、ブックの操作、そして数式の監査とドキュメント化のための実用的なアプリケーションについて説明します。 ### [Aspose.Cells for .NET で動的な Excel 数式とコンボボックスを実装する](./dynamic-excel-formulas-combobox-aspose-cells-net) -Aspose.Cells for .NET を使用して動的な Excel レポートを自動化する方法を学びます。名前付き範囲を作成し、ComboBox コントロールを追加し、ユーザーの選択に基づいて更新されるレスポンシブな数式を生成します。 ### [Excel オートメーション: Aspose.Cells .NET による数式処理](./excel-automation-aspose-cells-net-formulas) -Aspose.Cells for .NET を使って Excel の数式自動化をマスターしましょう。このチュートリアルでは、効率的なスプレッドシート操作のために、プログラムで数式を作成、計算、最適化する方法を学びます。 ### [Aspose.Cells .NET による Excel 自動化: ワークブックと数式計算のマスター](./excel-automation-aspose-cells-net-workbook-formulas) -Aspose.Cells for .NET を使用して Excel タスクを自動化する方法を学びましょう。ワークブックを作成し、IFNA や VLOOKUP などの数式を適用し、Excel をインストールすることなくデータ処理を効率化できます。 ### [Aspose.Cells for .NET を使用した Excel での直接計算式: 包括的なガイド](./excel-direct-calculation-aspose-cells-dotnet) -Aspose.Cells for .NET を使って、Excel で直接計算を効率的に実行する方法を学びましょう。オンデマンド計算機能により、数式処理を自動化し、データ管理を改善します。 ### [Aspose.Cells for .NET を使用した Excel 数式検索](./excel-formula-search-aspose-cells-net) -Aspose.Cells for .NET を使用して、Excel ブック内の特定の数式を検索する方法を学びます。このチュートリアルでは、ワークシート全体にわたって数式を検索するためのパターンマッチング、数式の検索、抽出テクニックについて説明します。 ### [Aspose.Cells コールバックを使用した .NET での Excel 警告処理: 包括的なガイド](./excel-warning-handling-net-aspose-cells-callbacks) -Aspose.Cells for .NET を使用して Excel の警告を管理する方法を学びます。IWarningCallback を実装し、数式計算の問題やその他の警告シナリオに対するアプリケーションのエラー処理を強化します。 ### [Aspose.Cells で Excel を拡張: .NET でユーザー定義関数 (UDF) を登録して呼び出す](./extend-excel-aspose-cells-register-call-udfs) -Aspose.Cells for .NET を使用して UDF を登録および呼び出し、Excel ブックを強化する方法を学びます。カスタム関数を習得し、独自の計算ルーチンでデータ処理の効率を高めます。 ### [Aspose.Cells for .NET を使用して Excel の数式セルを検索および管理する](./find-formula-cells-in-excel-using-aspose-cells-net) -Aspose.Cells for .NET を使用して、Excel ブック内の数式セルを効率的に検索する方法を学びます。このガイドでは、数式を含むセルの検索と管理に関する設定、使用方法、パフォーマンスの最適化について説明します。 ### [Aspose.Cells for .NET でのカスタム計算の実装: 包括的なガイド](./guide-implement-custom-calculations-aspose-cells-dotnet) -Aspose.Cells for .NET を使い、カスタムロジックで Excel 風の計算機能を強化する方法を学びましょう。このガイドでは、数式機能を拡張するための設定、実装、そして実践的な応用例を解説します。 ### [Aspose.Cells for .NET でカスタム関数を実装する方法: ステップバイステップガイド](./implement-custom-functions-aspose-cells-net) -Aspose.Cells for .NET を使用して、Excel でカスタム関数を作成および実装する方法を学びます。Excel の組み込み関数を拡張したカスタマイズされた計算機能で、スプレッドシートの機能を強化します。 ### [Aspose.Cells for Excel Automation を使用して .NET で名前付き範囲数式を実装する方法](./implement-named-range-formulas-net-aspose-cells) -Aspose.Cells for .NET を使用して、ローカライズされた Excel ソリューションで名前付き範囲の数式を自動化する方法を学びます。名前付き範囲を使用した数式参照により、ワークフローを効率化し、生産性を向上させます。 ### [Aspose.Cells .NET を使って Excel セルの依存関係を追跡し、正確なデータ分析を実現する](./master-cell-dependency-tracking-aspose-cells-net) -Aspose.Cells .NET を使用して、Excel のセルの依存関係を追跡および管理する方法を学びます。このガイドでは、数式の関係を理解することでデータの精度と効率性を向上させるためのステップバイステップのアプローチを紹介します。 ### [Aspose.Cells for .NET を使って Excel の共有数式をマスターする: 総合ガイド](./master-shared-formulas-excel-aspose-cells-net) -Aspose.Cells for .NET を使用して、Excel で共有数式を実装する方法を学びます。このガイドでは、ステップバイステップの手順を説明し、パフォーマンスが最適化された数式適用によって Excel タスクを自動化するメリットを強調します。 ### [Aspose.Cells を使用した .NET の配列数式をマスターする: 総合ガイド](./mastering-aspose-cells-net-array-formulas) -Aspose.Cells for .NET を使って配列数式をマスターする方法を学びましょう。このガイドでは、強力な複数セル計算の設定、実装、そして実際の応用例を解説します。 ### [Aspose.Cells .NET を使用して Excel ファイルの言語を設定し、多言語サポートを実現する方法](./specify-language-excel-aspose-cells-net) -Aspose.Cells .NET を使用して Excel ファイルの言語を指定する方法を学びましょう。数式設定を国際化するためのステップバイステップガイドで、ドキュメントのアクセシビリティとコンプライアンスを強化しましょう。 ### [Aspose.Cells .NET で Excel Power Query の数式を更新する](./update-power-query-formulas-aspose-cells-net) -Aspose.Cells for .NET を使用して、Excel ブック内の Power Query 数式をプログラムで更新する方法を学びます。動的なレポート作成のためのデータソース管理をマスターします。 + +### [C# で WRAPCOLS を使用する方法 – ラップ関数で Excel ワークブックを作成](./how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/) + +### [Excel ワークブックを作成する C# – Lambda、SEQUENCE、EXPAND ガイド](./create-excel-workbook-c-lambda-sequence-expand-guide/) ## Excelの数式の種類を理解する diff --git a/cells/japanese/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md b/cells/japanese/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md new file mode 100644 index 0000000000..198f6ca8c5 --- /dev/null +++ b/cells/japanese/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md @@ -0,0 +1,210 @@ +--- +category: general +date: 2026-03-30 +description: Aspose.Cells を使用して C# で Excel ワークブックを作成します。Excel のラムダ関数、シーケンス関数、配列の展開の適用方法を学び、ワークブックを + xlsx として保存します。 +draft: false +keywords: +- create excel workbook c# +- lambda function excel +- save workbook as xlsx +- sequence function excel +- expand array excel +language: ja +og_description: C#でExcelブックを素早く作成する。このガイドでは、Excelのラムダ関数、シーケンス関数、配列展開の使用方法と、ブックをxlsx形式で保存する方法を示します。 +og_title: C#でExcelブックを作成 – Lambda、SEQUENCE、EXPANDガイド +tags: +- Aspose.Cells +- C# +- Excel automation +title: C#でExcelブックを作成 – Lambda、SEQUENCE、EXPAND ガイド +url: /ja/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel ワークブックを C# で作成 – Lambda、SEQUENCE、EXPAND ガイド + +自動レポート用に **Excel workbook C#** を作成したいが、どの API 呼び出しを使えばよいか分からないことはありませんか?同じ壁にぶつかる開発者は多いです。このガイドでは、**SEQUENCE 関数 Excel** から強力な **LAMBDA 関数 Excel**、さらには **expand array Excel** の結果までカバーする、完全に実行可能なサンプルを示します。 + +また、**save workbook as xlsx** の正確な手順も紹介するので、Excel を使用する誰にでもファイルを渡すことができます。このチュートリアルの最後までに、任意の .NET プロジェクトに貼り付けられる、実運用可能なコードスニペットが手に入ります。曖昧な「ドキュメント参照」リンクはありません—今日動くコードだけです。 + +## 必要なもの + +- **.NET 6.0 以降** – 本例は .NET 6 を対象としていますが、最近のバージョンであればどれでも動作します。 +- **Aspose.Cells for .NET** – NuGet でインストール (`Install-Package Aspose.Cells`)。 +- C# の基本構文(変数、オブジェクト、ラムダ式)に関する基礎知識。 +- お好みの IDE(Visual Studio、Rider、VS Code など)。 + +以上です。余計な COM interop やサーバーに Office をインストールする必要はありません—Aspose.Cells がメモリ上ですべて処理します。 + +## Excel ワークブック C# 作成 – ステップバイステップ実装 + +以下、プロセスを小さなステップに分割しています。各ステップは見出し、短いコード抜粋、そして **なぜ** それを行うのかの説明で構成されています。最後に全体ブロックをコピーしてコンソール アプリとして実行できます。 + +### ステップ 1 – 新しい Workbook の初期化 + +まず最初に、メモリ上の Excel ファイルを表す空の Workbook オブジェクトが必要です。 + +```csharp +using Aspose.Cells; + +// Step 1: Create a new workbook and get the first worksheet +Workbook workbook = new Workbook(); // empty workbook +Worksheet sheet = workbook.Worksheets[0]; // default first sheet +``` + +*このステップが重要な理由:* `Workbook` は Aspose.Cells のすべての操作のエントリーポイントです。最初の `Worksheet` を取得することで、数式や値、書式設定を書き込めるキャンバスが手に入ります。 + +> **プロのコツ:** 複数シートが必要な場合は `workbook.Worksheets.Add()` を呼び出し、各シートへの参照を保持してください。 + +### ステップ 2 – SEQUENCE 関数 Excel を使ってデータ生成 + +**sequence function excel** は VBA を使わずに動的配列の数値を生成します。セル `A1` に配置し、Excel に自動展開させます。 + +```csharp +// Step 2: Generate a 5‑row, 1‑column array from a SEQUENCE +sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; // 1..3 padded with blanks +``` + +*このステップが重要な理由:* `SEQUENCE(3)` は `[1,2,3]` を返します。`EXPAND` でラップすると結果が 5 行の範囲に拡張され、余分な行は空白で埋められます。これで **sequence function excel** と **expand array excel** の両方を同時に体験できます。 + +### ステップ 3 – LAMBDA 関数 Excel で数値を集計 + +次に **lambda function excel** の機能を紹介します。新しい `REDUCE` 関数を使い、1‑5 の合計を求めます。`REDUCE` は内部でラムダ式を利用します。 + +```csharp +// Step 3: Aggregate a sequence (sum 1..5) using REDUCE/LAMBDA +sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; // result = 15 +``` + +*このステップが重要な理由:* `REDUCE` は `SEQUENCE(5)` が生成した配列を走査し、各要素 (`b`) とアキュムレータ (`a`) をラムダ式に渡します。ラムダ `a+b` が加算を行い、`B1` に `15` が残ります。C# でループを書くことなく、数式だけで集計できるクリーンな方法です。 + +### ステップ 4 – セル内で三角関数を直接適用 + +Excel の組み込み数学関数は手軽な計算に便利です。隣接するセルに余接と双曲余接を配置します。 + +```csharp +// Step 4: Trigonometric functions directly in Excel cells +sheet["C1"].Formula = "COT(PI()/4)"; // evaluates to 1 +sheet["D1"].Formula = "COTH(1)"; // hyperbolic cotangent of 1 +``` + +*このステップが重要な理由:* 従来の数学関数と新しい動的配列数式を組み合わせて使用できることを示しています。特別なパフォーマンス要件がない限り、C# で計算する必要はありません。 + +### ステップ 5 – すべての数式を計算 + +Aspose.Cells は数式を設定しただけでは自動的に評価しません。明示的に計算を指示する必要があります。 + +```csharp +// Step 5: Force calculation so that cells store the results +workbook.CalculateFormula(); +``` + +*このステップが重要な理由:* この呼び出しの後、各セルの `Value` プロパティに評価結果が格納され、保存や再取得が可能になります。 + +### ステップ 6 – Workbook を Xlsx として保存 + +最後に、**save workbook as xlsx** パターンでディスクにワークブックを永続化します。 + +```csharp +// Step 6: Save the workbook to an Excel file (XLSX format) +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + +workbook.Save(outputPath); +Console.WriteLine($"Workbook saved to: {outputPath}"); +``` + +*このステップが重要な理由:* `Save` メソッドはファイル拡張子を自動判別します。「.xlsx」を指定することで、最新の Excel バージョンと互換性のあるファイルが生成されます。パスはテスト時にアクセスしやすいデスクトップを指しています。 + +### 完全動作サンプル + +以下は新しいコンソール プロジェクトに貼り付けられる、全ステップを含んだ完全なプログラムです。計算結果をコンソールに出力する簡単な検証ブロックも含まれています。 + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialize workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + + // SEQUENCE + EXPAND + sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; + + // REDUCE with LAMBDA + sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; + + // Trig functions + sheet["C1"].Formula = "COT(PI()/4)"; + sheet["D1"].Formula = "COTH(1)"; + + // Calculate formulas + workbook.CalculateFormula(); + + // Verify results (optional) + Console.WriteLine("A1‑A5 (expanded SEQUENCE):"); + for (int i = 0; i < 5; i++) + { + Console.WriteLine($" Row {i + 1}: {sheet.Cells[i, 0].Value ?? "blank"}"); + } + Console.WriteLine($"B1 (sum 1‑5): {sheet["B1"].Value}"); + Console.WriteLine($"C1 (cot(π/4)): {sheet["C1"].Value}"); + Console.WriteLine($"D1 (coth(1)): {sheet["D1"].Value}"); + + // Save workbook + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + workbook.Save(outputPath); + Console.WriteLine($"Workbook saved to: {outputPath}"); + } +} +``` + +**コンソールでの期待出力** + +``` +A1‑A5 (expanded SEQUENCE): + Row 1: 1 + Row 2: 2 + Row 3: 3 + Row 4: blank + Row 5: blank +B1 (sum 1‑5): 15 +C1 (cot(π/4)): 1 +D1 (coth(1)): 1.31303528549933 +Workbook saved to: C:\Users\YourName\Desktop\NewFunctions.xlsx +``` + +そして *NewFunctions.xlsx* を開くと、最初の 4 列に同じ数値が配置されていることが確認できます。 + +![create excel workbook c# screenshot of the resulting spreadsheet](/images/create-excel-workbook-csharp.png) + +## エッジケース、ヒント、よくある質問 + +- **シートが複数必要な場合は?** + `workbook.Worksheets.Add()` を呼び出し、新しい `Worksheet` オブジェクトごとに数式割り当てを繰り返してください。 + +- **古い Excel バージョンでも使えますか?** + 動的配列関数(`SEQUENCE`、`EXPAND`、`REDUCE`)は Excel 365 または Excel 2021 以降が必要です。古いバージョンを対象にする場合は、従来の数式を使用するか、C# 側で値を計算してから書き込んでください。 + +- **パフォーマンスはどうですか?** + 数千行規模では、範囲に数式を設定してから `CalculateFormula` を呼び出す方が、1 行ずつ値を代入するループより高速です。 + +- **ファイルではなくストリームに保存したい場合は?** + `work + +{{< /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/japanese/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md b/cells/japanese/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md new file mode 100644 index 0000000000..e9c5c96b0c --- /dev/null +++ b/cells/japanese/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md @@ -0,0 +1,194 @@ +--- +category: general +date: 2026-03-30 +description: C#でWRAPCOLSを使用してExcelブックを作成し、Excelにデータを追加し、WRAPROWSも併用しながら数式計算を強制する方法を学びましょう。 +draft: false +keywords: +- how to use wrapcols +- create excel workbook c# +- add data to excel +- force formula calculation +- how to use wraprows +language: ja +og_description: C#でWRAPCOLSを使用してExcelブックを作成し、データを追加し、数式の計算を強制し、配列数式にWRAPROWSを活用する方法を学びましょう。 +og_title: C#でWRAPCOLSを使用する方法 – 完全ガイド +tags: +- Aspose.Cells +- C# +- Excel Automation +title: C#でWRAPCOLSを使用する方法 – ラップ関数でExcelブックを作成 +url: /ja/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# で WRAPCOLS を使用する方法 – Wrap 関数で Excel ワークブックを作成する + +C# で Excel を自動化するときに **WRAPCOLS の使い方** を疑問に思ったことはありませんか? あなたは一人ではありません—水平範囲を大量のコードを書かずに垂直配列に変換する必要があると、多くの開発者が壁にぶつかります。良いニュースは、Aspose.Cells がそれをとても簡単にしてくれることです。 + +このチュートリアルでは、**WRAPCOLS の使い方**、**C# スタイルで Excel ワークブックを作成する方法**、**Excel にデータを追加する方法**、さらに **数式の計算を強制する方法** を示す、完全で実行可能なサンプルを順に解説します。また、逆方向の変換のために **WRAPROWS の使い方** も紹介します。最後まで読むと、すぐに実行できるプログラムと、各手順がなぜ重要かが明確に理解できるようになります。 + +--- + +![How to use WRAPCOLS in C# example](alt="Screenshot showing Excel workbook after using WRAPCOLS in C#") + +## 本ガイドでカバーする内容 + +* Aspose.Cells を使用して新しいワークブックを設定する。 +* セルをプログラムで埋める (**add data to Excel**)。 +* `WRAPCOLS` 関数を適用して行を列に変換する。 +* `WRAPROWS` を使用して列を行に戻す (**how to use wraprows**)。 +* エンジンに数式をすぐに評価させる (**force formula calculation**)。 +* ファイルを保存し、出力を確認する。 + +外部ドキュメントは不要です—必要な情報はすべてここにあります。 + +## C# で WRAPCOLS を使用する方法 – ステップバイステップ実装 + +以下は完全なソースファイルです。新しいコンソールプロジェクトにコピー&ペーストし、Aspose.Cells の NuGet パッケージを追加して **F5** を押すだけです。 + +```csharp +// ------------------------------------------------------------ +// How to Use WRAPCOLS in C# – Complete Example +// ------------------------------------------------------------ +using System; +using Aspose.Cells; + +namespace WrapFunctionsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a fresh workbook (this is how we **create excel workbook c#** style) + Workbook workbook = new Workbook(); + + // 2️⃣ Grab the first worksheet – it's created by default + Worksheet sheet = workbook.Worksheets[0]; + + // 3️⃣ **Add data to Excel**: place two numbers side‑by‑side + sheet.Cells["A1"].PutValue(1); // first value + sheet.Cells["B1"].PutValue(2); // second value + + // 4️⃣ **How to use WRAPCOLS** – turn the horizontal range A1:B1 into a vertical array + // The second argument (1) tells WRAPCOLS to create 1 column per element. + sheet["C1"].Formula = "WRAPCOLS(A1:B1, 1)"; + + // 5️⃣ **How to use WRAPROWS** – the opposite; turn the same range into a horizontal array + // Here we ask for 2 rows per element, which produces a single row with both values. + sheet["C2"].Formula = "WRAPROWS(A1:B1, 2)"; + + // 6️⃣ **Force formula calculation** so the workbook reflects the results immediately + workbook.CalculateFormula(); + + // 7️⃣ Save the workbook to disk – change the path to a folder you own + string outputPath = @"WrapFunctions.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + Console.WriteLine("Check cells C1 and C2 for the WRAPCOLS / WRAPROWS results."); + } + } +} +``` + +### 各行が重要な理由 + +| Step | Explanation | +|------|-------------| +| **1️⃣ 新しいワークブックを作成** | これは基礎です。Aspose.Cells は `Workbook` オブジェクトを Excel ファイル全体として扱うため、実質的に **C# スタイルで Excel ワークブックを作成** しています。 | +| **2️⃣ 最初のワークシートを取得** | 新しいワークブックには常に少なくとも1つのワークシート(`Worksheets[0]`)が含まれます。早めに取得することで null 参照の問題を回避できます。 | +| **3️⃣ Excel にデータを追加** | `PutValue` を使用することで、セルの書式設定を気にせず **Excel にデータを追加** できます。数値 `1` と `2` はラップ関数のテストデータです。 | +| **4️⃣ WRAPCOLS の使い方** | `WRAPCOLS(A1:B1, 1)` は、範囲 `A1:B1` の値を垂直に、1 行につき 1 つずつ展開するよう Excel に指示します。結果は `C1` に配置され、下方向に展開されます(`C1`, `C2`, …)。 | +| **5️⃣ WRAPROWS の使い方** | `WRAPROWS(A1:B1, 2)` は逆の動作を行い、水平に展開して、2 つの値を `C2` から始まる単一の行に収めます。 | +| **6️⃣ 数式の計算を強制** | デフォルトでは、Aspose.Cells は計算を Excel でファイルを開くまで遅延させることがあります。`CalculateFormula()` を呼び出すことで **数式の計算を強制** し、保存直後に結果をすぐに取得できます。 | +| **7️⃣ ワークブックを保存** | 最終ステップで全てをディスクに書き込みます。生成された `WrapFunctions.xlsx` を開いて結果を確認してください。 | + +--- + +## C# で Excel ワークブックを作成 – 環境設定 + +コードを実行する前に、以下のツールが揃っていることを確認してください: + +1. **.NET 6.0+** – 最新の LTS バージョンが最適です。 +2. **Visual Studio 2022**(または C# 拡張機能付き VS Code)。 +3. **Aspose.Cells for .NET** – NuGet でインストール: + ```bash + dotnet add package Aspose.Cells + ``` +4. 出力ファイルを書き込めるフォルダー。 + +これらの前提条件は最小限です。COM インターロップや Office のインストールは不要で、これが Aspose.Cells がサーバーサイドの Excel 生成に人気の理由です。 + +## Excel にデータを追加 – ベストプラクティス + +プログラムで **Excel にデータを追加** する際は、以下のポイントに留意してください: + +* **`PutValue` を使用**して、生の数値や文字列を設定します。データ型を自動的に検出します。 +* 大規模プロジェクトでは **セルアドレスのハードコーディングを避ける**—ループや名前付き範囲を使用してスケーラビリティを確保します。 +* **セルスタイルは必要最低限に**設定します。スタイル変更はオーバーヘッドがかかります。書式設定が必要な場合は、単一のスタイルオブジェクトを作成し、複数のセルに適用してください。 + +この小さな例では 2 つの数値だけを挿入していますが、同じパターンは数千行にまで拡張可能です。 + +## WRAPROWS の使い方 – 水平配列の例 + +`WRAPCOLS` の逆が必要な場合は、`WRAPROWS` が適しています。構文は次のとおりです: + +``` +WRAPROWS(source_range, [rows_per_item]) +``` + +* `source_range` – 変換したい範囲。 +* `rows_per_item` – オプション。各要素が占める行数を Excel に指示します。デモでは `2` を使用し、2 つの値を単一の行に収めました。 + +第2引数を変更して試すことができます: + +```csharp +// Example: split each value into its own column, three rows per item +sheet["D1"].Formula = "WRAPROWS(A1:B1, 3)"; +``` + +ワークブックを開くと、値が 3 列にわたって展開され、各列に元の数値が必要に応じて繰り返されているのが確認できます。 + +## 数式の計算を強制 – いつ・なぜ + +「本当に `CalculateFormula()` を呼び出す必要があるのか?」と疑問に思うかもしれません。その答えは **はい**、以下の場合です: + +* 保存後に計算済みの値を **プログラムで** 読み取る予定がある場合。 +* Excel でファイルを開いたときに、正しい結果が既に表示されていることを保証したい場合。 +* **ヘッドレス環境**(例:Web API)で実行しており、ユーザーが手動で再計算をトリガーしない場合。 + +この手順を省略してもワークブックは壊れませんが、セルには計算された値ではなく数式テキスト(`=WRAPCOLS(...)`)が表示され、Excel が再計算するまで結果が反映されません。 + +## 期待される出力 – 確認ポイント + +プログラムを実行し、`WrapFunctions.xlsx` を開くと: + +| Cell | Formula | Displayed Value | +|------|---------|-----------------| +| **C1** | `=WRAPCOLS(A1:B1, 1)` | `1`(C1) と `2`(C2) – 縦方向リスト | +| **C2** | `=WRAPROWS(A1:B1, 2)` | `1`(C2) と `2`(D2) – 横方向リスト | + +つまり、**C1** から始まる列と **C2** から始まる行が表示されます。これにより、両方のラップ関数が期待通りに動作したことが確認できます。 + +## エッジケースとバリエーション + +| Scenario | What changes? | Suggested tweak | +|----------|---------------|-----------------| +| **大きな範囲 (A1:Z1)** | 垂直に展開する値が増える | `WRAPCOLS` の第2引数を増やすと、グループごとに複数列に展開できます。 | +| **非数値データ** | 文字列も同様に処理される | コード変更不要;`PutValue` は任意のオブジェクトを受け取ります。 | +| **動的範囲** | コンパイル時にサイズが分からない | `sheet.Cells.MaxDataColumn` と `MaxDataRow` を使用してアドレス文字列を構築します。 | +| **複数シート** | 異なるシートでラップ関数を適用する必要がある | 正しいワークシートを参照します(`workbook.Worksheets["Sheet2"]`)。 | + +## 現場からのプロティップス + +* **Pro tip:** .NET Core 3.1+ を対象とする場合は、ワークブック作成を `using` ブロックでラップして、リソースが速やかに解放されるようにします。 +* **Watch out for:** `CalculateFormula()` を呼び出さずに大きな範囲に同じ数式を設定すると、パフォーマンスのボトルネックになる可能性があります。可能な限り数式をバッチ処理してください。 +* **Tip:** コード内で計算結果を再取得する必要がある場合は、` + +{{< /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/japanese/net/tables-and-lists/_index.md b/cells/japanese/net/tables-and-lists/_index.md index ed804c18cd..51b64237db 100644 --- a/cells/japanese/net/tables-and-lists/_index.md +++ b/cells/japanese/net/tables-and-lists/_index.md @@ -51,6 +51,7 @@ Aspose.Cells for .NET を使えば、ステップバイステップのガイド Aspose.Cells for .NET のパワーを解き放ちましょう。この詳細なステップバイステップガイドで、クエリデータソースを使用したテーブルの読み書き方法を学びましょう。 ### [Excelで表やリストにコメントを設定する](./setting-comment-of-table-or-list/) 簡単なステップバイステップ ガイドを使用して、Aspose.Cells for .NET を使用して Excel のテーブルにコメントを設定する方法を学習します。 +### [Aspose.Cells を使用して C# で範囲からテーブルを作成する](./create-table-from-range-in-c-complete-aspose-cells-tutorial/) {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/japanese/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md b/cells/japanese/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md new file mode 100644 index 0000000000..1b906d573f --- /dev/null +++ b/cells/japanese/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md @@ -0,0 +1,230 @@ +--- +category: general +date: 2026-03-30 +description: C# と Aspose.Cells を使用して範囲からテーブルを作成 – セルにデータを追加し、範囲を ListObject に変換して、フィルターなしで + Excel を保存する。 +draft: false +keywords: +- create table from range +- create excel workbook c# +- add data to cells +- convert range to listobject +- save excel without filter +language: ja +og_description: C# と Aspose.Cells を使用して範囲からテーブルを作成します。セルにデータを追加する方法、範囲を ListObject + に変換する方法、フィルターなしで Excel を保存する方法を学びます。 +og_title: C#で範囲からテーブルを作成する – 完全なAspose.Cellsチュートリアル +tags: +- Aspose.Cells +- C# +- Excel Automation +title: C#で範囲からテーブルを作成 – 完全なAspose.Cellsチュートリアル +url: /ja/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# で範囲からテーブルを作成 – 完全な Aspose.Cells チュートリアル + +C# で **create table from range** が必要だったことはありますか、しかし単なるデータブロックをフル機能の Excel テーブルに変換する方法が分からなかった… あなただけではありません。レポートの自動化、スコアカードの生成、あるいは下流の分析用にデータを整理するだけでも、この小技をマスターすれば手作業を大幅に削減できます。 + +このガイドでは、**create excel workbook c#**、**add data to cells**、**convert range to ListObject**、そして最終的に **save excel without filter** の全工程を順を追って解説します。最後まで読めば、Aspose.Cells を参照した任意の .NET プロジェクトにそのまま貼り付けられる実行可能なコードスニペットが手に入ります。 + +--- + +## 前提条件 + +- .NET 6+(または .NET Framework 4.7.2+)がインストール済み +- Aspose.Cells for .NET(NuGet パッケージ `Aspose.Cells`) – 執筆時点での最新バージョン(23.10)で問題なく動作します。 +- C# の基本構文が分かっていること – Excel の深い Interop 知識は不要です。 + +これらが揃っていれば、さっそく始めましょう。 + +--- + +## 手順 1: C# で Excel ワークブックを作成 + +まずは新しいワークブックオブジェクトを用意します。これは最終的にテーブルを格納する空の Excel ファイルと考えてください。 + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is equivalent to opening a blank .xlsx file. +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (default) worksheet. +``` + +> **Pro tip:** 引数なしの `Workbook()` はデフォルトで 1 つのワークシートを持つブックを作成します。デモやサンプルには最適です。複数シートが必要な場合は、後から `workbook.Worksheets.Add()` で追加できます。 + +--- + +## 手順 2: セルにデータを追加 + +次に、シートに小さなデータセット(列: Name, Score、行: 3 行)を入力します。これにより **add data to cells** の基本的なやり方が分かります。 + +```csharp +// Header row +worksheet.Cells["A1"].PutValue("Name"); +worksheet.Cells["B1"].PutValue("Score"); + +// Data rows +worksheet.Cells["A2"].PutValue("Alice"); +worksheet.Cells["B2"].PutValue(85); +worksheet.Cells["A3"].PutValue("Bob"); +worksheet.Cells["B3"].PutValue(92); +``` + +`PutValue` を使う理由は何ですか? 文字列と数値を自動判別し、適切なセル形式を設定してくれるため、シンプルなケースでわざわざ `Style` オブジェクトを操作する手間が省けます。 + +> **期待される出力:** この手順が終わったら Excel でブックを開くと、ヘッダー「Name」と「Score」の 2 列グリッドと、続く 2 行のデータが表示されます。 + +--- + +## 手順 3: 範囲を ListObject(テーブル)に変換 + +ここが本番です。プレーンな範囲を Excel テーブル(Aspose.Cells API では **ListObject** と呼ばれます)に変換します。これにより見た目が整うだけでなく、ソートやフィルタ、構造化参照といった組み込み機能が利用可能になります。 + +```csharp +// Define the range boundaries. +// startRow and startColumn are zero‑based indexes. +// rowCount includes the header row. +int startRow = 0; // Row 1 in Excel +int startColumn = 0; // Column A +int rowCount = 3; // Header + 2 data rows +int columnCount = 2; // Two columns: Name & Score + +// Add a ListObject to the worksheet and retrieve the object. +int listIndex = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); +ListObject table = worksheet.ListObjects[listIndex]; + +// Turn on the UI filter dropdowns so users can interact with the table. +table.ShowAutoFilter = true; +``` + +> **ListObject を使う理由** +> - **構造化参照**: 数式で列名を直接参照できる。 +> - **Auto‑filter UI**: ユーザーはドロップダウン矢印で簡単にフィルタできる。 +> - **スタイリング**: 後から 1 行で組み込みテーブルスタイルを適用可能。 + +--- + +## 手順 4: AutoFilter UI を削除(フィルタなしで Excel を保存) + +最終レポートなど、フィルタ矢印が不要なクリーンなシートが求められることがあります。Aspose.Cells 23.10 では、フィルタ UI を完全に除去するシンプルな方法が追加されました。 + +```csharp +// Remove the filter UI completely. +table.AutoFilter = null; // Clears the underlying filter object. +table.ShowAutoFilter = false; // Hides the dropdown arrows. +``` + +データ自体は削除していません。視覚的なフィルタコントロールだけをオフにしているので、**save excel without filter** の要件を満たします。 + +--- + +## 手順 5: ワークブックを保存 + +最後に、ワークブックをディスクに書き出します。テーブルは残りますが、フィルタ UI は表示されません。 + +```csharp +// Choose a folder you have write access to. +string outputPath = @"C:\Temp\NoAutoFilter.xlsx"; +workbook.Save(outputPath); +``` + +`NoAutoFilter.xlsx` を Excel で開くと、デフォルトのテーブル書式が適用された状態で表示されますが、フィルタ矢印はありません。データはそのままで、配布用ファイルとしてすぐに使用できます。 + +--- + +![Aspose.Cells を使用して Excel で範囲からテーブルを作成するスクリーンショット](image.png "範囲からテーブルを作成するスクリーンショット") + +*画像の代替テキスト:* **Aspose.Cells を使用して Excel で範囲からテーブルを作成するスクリーンショット** – フィルタ ドロップダウンがないことを視覚的に証明します。 + +--- + +## 完全な実行可能サンプル + +以下はコンソール アプリにそのまま貼り付けられる完全プログラムです。上記の手順すべてを網羅し、補足コメントも付加しています。 + +```csharp +using System; +using Aspose.Cells; + +namespace AsposeTableDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add data to cells – this is the “add data to cells” part. + worksheet.Cells["A1"].PutValue("Name"); + worksheet.Cells["B1"].PutValue("Score"); + worksheet.Cells["A2"].PutValue("Alice"); + worksheet.Cells["B2"].PutValue(85); + worksheet.Cells["A3"].PutValue("Bob"); + worksheet.Cells["B3"].PutValue(92); + + // 3️⃣ Convert the range into a ListObject (i.e., create table from range). + int startRow = 0, startColumn = 0, rowCount = 3, columnCount = 2; + int listIdx = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); + ListObject table = worksheet.ListObjects[listIdx]; + table.ShowAutoFilter = true; // optional UI filter + + // 4️⃣ Remove the AutoFilter UI – “save excel without filter”. + table.AutoFilter = null; + table.ShowAutoFilter = false; + + // 5️⃣ Save the workbook. + string filePath = @"C:\Temp\NoAutoFilter.xlsx"; + workbook.Save(filePath); + + Console.WriteLine($"Workbook saved to {filePath}"); + } + } +} +``` + +プログラムを実行し、`C:\Temp\NoAutoFilter.xlsx` を開いてください。きれいに書式設定されたテーブルが表示され、フィルタ矢印はありません。これが **create excel workbook c#** の全工程を 60 行未満のコードで実現した例です。 + +--- + +## よくある質問とエッジケース + +**Q:** データ範囲が連続していない場合は? +**A:** `ListObjects.Add` は矩形範囲を要求します。非連続データがある場合は、一時的に新しいワークシートへコピーして矩形範囲を作成し、そこからテーブル化してください。 + +**Q:** カスタムテーブルスタイルは適用できる? +**A:** もちろんです。`ListObject` 作成後に `table.TableStyleType = TableStyleType.TableStyleMedium9;`(または 65 種類の組み込みスタイルのいずれか)を設定すれば、企業のブランディングに合わせた外観に変更できます。 + +**Q:** フィルタは残したまま矢印だけ非表示にしたい。 +**A:** フィルタロジックは `table.AutoFilter` に保持されています。`ShowAutoFilter = false` にすれば UI だけが隠れ、プログラムからは引き続きフィルタ操作が可能です。 + +**Q:** 大規模データセット(10k 行以上)では? +**A:** 同じ API が使えますが、パフォーマンス向上のために大量挿入前に `workbook.CalcEngine = false` で自動計算をオフにし、挿入後に再度有効化すると良いでしょう。 + +--- + +## まとめ + +ここまでで、**create table from range** を C# と Aspose.Cells で実装する方法を、**create excel workbook c#** → **add data to cells** → **convert range to ListObject** → **save excel without filter** の順に詳しく解説しました。コードは完全に実行可能で、プロダクション環境でもそのまま利用できます。 + +次に試したいこと: + +- 条件付き書式を追加して上位スコアをハイライトする。 +- `workbook.Save("Report.pdf", SaveFormat.Pdf);` で PDF にエクスポートする。 +- `table.Columns["Score"].DataBodyRange.Sort` を使ってプログラム的にテーブルをソートする。 + +さまざまなデータセットやテーブルスタイル、シート構成で実験してみてください。API は小さなスコアボードから巨大な財務台帳まで柔軟に対応します。 + +質問や問題があればコメントを残すか、GitHub で ping してください。コーディングを楽しみながら、生データの範囲を洗練された 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/korean/net/conversion-to-pdf/_index.md b/cells/korean/net/conversion-to-pdf/_index.md index 0bbbd34cb3..8c6629aa61 100644 --- a/cells/korean/net/conversion-to-pdf/_index.md +++ b/cells/korean/net/conversion-to-pdf/_index.md @@ -34,6 +34,8 @@ Aspose.Cells for .NET은 Excel 파일 작업 시 최고의 선택입니다. 단 Aspose.Cells for .NET을 사용하여 Excel 스프레드시트를 PDF로 쉽게 변환하세요! 원활한 사용을 위해 단계별 가이드를 따르세요. ### [.NET에서 차트를 PDF로 변환](./convert-chart-to-pdf/) Aspose.Cells를 사용하여 .NET에서 Excel 차트를 PDF로 변환하는 방법을 단계별 가이드로 알아보세요! 모든 수준의 프로그래머에게 적합합니다. +### [Aspose.Cells를 사용하여 워크북을 PDF로 저장 – 완전 단계별 가이드](./save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/) +Aspose.Cells를 사용해 워크북을 PDF로 저장하는 방법을 단계별로 안내합니다. 모든 개발자를 위한 완전 가이드. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/korean/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md b/cells/korean/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md new file mode 100644 index 0000000000..38f65ea1b8 --- /dev/null +++ b/cells/korean/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md @@ -0,0 +1,244 @@ +--- +category: general +date: 2026-03-30 +description: Aspose.Cells를 사용하여 워크북을 PDF로 저장하는 방법을 배웁니다. 이 튜토리얼에서는 워크시트를 PDF로 내보내는 + 방법, 엑셀을 PDF로 내보내는 방법 및 워크시트에서 PDF를 생성하는 방법도 다룹니다. +draft: false +keywords: +- save workbook as pdf +- export worksheet to pdf +- how to export excel to pdf +- save excel as pdf +- create pdf from worksheet +language: ko +og_description: 워크북을 PDF로 쉽게 저장합니다. 이 가이드는 워크시트를 PDF로 내보내는 방법, Excel을 PDF로 내보내는 방법, + 그리고 C#을 사용하여 워크시트에서 PDF를 만드는 방법을 보여줍니다. +og_title: Aspose.Cells로 워크북을 PDF로 저장하기 – 완전 가이드 +tags: +- Aspose.Cells +- C# +- PDF generation +title: Aspose.Cells로 워크북을 PDF로 저장하는 완전 단계별 가이드 +url: /ko/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 워크북을 pdf로 저장 – 완전 단계별 가이드 + +워크북을 **save workbook as pdf** 해야 했지만 어떤 라이브러리가 숫자를 그대로 유지할지 몰랐던 적이 있나요? 당신만 그런 것이 아닙니다. 많은 프로젝트에서 Excel 데이터를 깔끔한 PDF로 변환해야 하며, 올바른 방법을 사용하면 디버깅 시간을 크게 절약할 수 있습니다. + +이 튜토리얼에서는 Aspose.Cells를 사용하여 **save workbook as pdf** 하는 데 필요한 정확한 코드를 단계별로 살펴보고, 진행하면서 **export worksheet to pdf** 방법을 보여주며, *how to export excel to pdf* 질문에 답하고, 사용자 정의 정밀도 설정으로 **create pdf from worksheet** 하는 깔끔한 방법을 시연합니다. + +가이드가 끝날 때쯤이면, 중요한 유효숫자만 포함된 PDF를 생성하는 바로 실행 가능한 C# 콘솔 앱을 얻게 됩니다. 불필요한 내용 없이 견고하고 프로덕션 준비가 된 솔루션입니다. + +--- + +## 배울 내용 + +- 새 `Workbook`을 설정하고 첫 번째 워크시트를 대상으로 하는 방법. +- 숫자 정밀도를 유지하면서 **save workbook as pdf** 하는 정확한 방법. +- **export worksheet to pdf** 할 때 `SignificantDigits` 속성이 중요한 이유. +- **how to export excel to pdf** 를 시도할 때 흔히 겪는 함정과 이를 피하는 방법. +- 다양한 페이지 옵션으로 **save excel as pdf** 하는 빠른 방법과 프로그래밍 방식으로 **create pdf from worksheet** 하는 방법. + +### 사전 요구 사항 + +- .NET 6.0 이상 (코드는 .NET Framework 4.5+에서도 작동합니다). +- 유효한 Aspose.Cells 라이선스(또는 테스트용 무료 임시 라이선스). +- Visual Studio 2022 또는 C# 호환 IDE. + +위 기본 사항을 갖추었다면, 바로 시작해봅시다. + +--- + +## Step 1 – Aspose.Cells 설치 및 Workbook 초기화 + +우선 먼저, Aspose.Cells NuGet 패키지가 필요합니다. 프로젝트 폴더에서 터미널을 열고 다음을 실행하세요: + +```bash +dotnet add package Aspose.Cells +``` + +패키지가 설치되면 새 `Workbook` 객체를 생성합니다. 이 객체가 결국 **save workbook as pdf** 할 대상이 됩니다. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialise a fresh workbook – think of it as a blank Excel file. + Workbook workbook = new Workbook(); + + // Grab the first worksheet (index 0). This is where we’ll put our data. + Worksheet worksheet = workbook.Worksheets[0]; +``` + +*왜 이 단계인가?* +워크북을 생성하면 깨끗한 캔버스를 얻을 수 있고, 첫 번째 워크시트를 선택하면 알려진 위치에서 작업하게 됩니다. 이 단계를 건너뛰면 나중에 **export worksheet to pdf** 할 때 *null reference* 오류가 발생할 수 있습니다. + +--- + +## Step 2 – 고정밀 데이터 삽입 + +이제 PDF에 표시하고 싶은 것보다 더 많은 소수점을 가진 숫자를 넣어보겠습니다. 이는 `SignificantDigits` 설정이 출력값을 어떻게 잘라내는지 보여줍니다. + +```csharp + // Place a high‑precision number in cell A1. + worksheet.Cells["A1"].PutValue(1234.56789); +``` + +프로그램을 실행하고 `workbook.Save("output.pdf")`만 호출하면 PDF에 전체 `1234.56789`가 표시됩니다. 일부 경우엔 괜찮지만, 특히 재무 보고서에서는 특정 유효숫자 수로 반올림해야 할 때가 많습니다. + +--- + +## Step 3 – PDF 저장 옵션 구성 + +Aspose.Cells는 `PdfSaveOptions`를 통해 세밀한 제어를 제공합니다. 우리가 관심 있는 속성은 `SignificantDigits`입니다. 이를 `4`로 설정하면 엔진이 **save workbook as pdf** 할 때 네 자리 유효숫자만 유지합니다. + +```csharp + // Configure PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 // This trims the number to 1235 in the PDF. + }; +``` + +*왜 `SignificantDigits`를 사용하나요?* +**create pdf from worksheet** 할 때 규제 라운딩 규칙을 따라야 하는 경우가 많습니다. 이 옵션이 자동으로 반올림을 수행하므로 각 셀을 수동으로 포맷할 필요가 없습니다. + +--- + +## Step 4 – 옵션을 사용해 워크시트를 PDF로 내보내기 + +이제 실전입니다: 방금 정의한 옵션을 사용해 실제로 **save workbook as pdf** 합니다. + +```csharp + // Save the workbook as a PDF using the configured options. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + } +} +``` + +프로그램을 실행하면 프로젝트 출력 폴더에 `SignificantDigits.pdf` 파일이 생성됩니다. 열어보면 셀 A1에 `1235`가 표시됩니다 – 숫자가 네 자리 유효숫자로 반올림되었습니다. + +*핵심 포인트:* `Save` 메서드는 파일 경로와 `PdfSaveOptions`를 모두 받습니다. 옵션을 생략하면 기본 동작으로 돌아가며, 이는 정밀도 요구사항을 충족하지 못할 수 있습니다. + +--- + +## Step 5 – 출력 확인 및 일반 문제 해결 + +### 예상 결과 + +- `SignificantDigits.pdf`라는 한 페이지 PDF. +- 셀 A1에 `1235`(네 자리 유효숫자) 표시. +- 추가 워크시트나 숨겨진 내용이 나타나지 않음. + +### 자주 묻는 질문 + +| Question | Answer | +|----------|--------| +| **하나 이상의 워크시트가 필요하면 어떻게 하나요?** | `workbook.Worksheets`를 순회하면서 각 시트를 개별적으로 저장할 때 동일한 `PdfSaveOptions`를 적용하거나, 옵션에서 `OnePagePerSheet = true`로 설정합니다. | +| **원본 숫자 형식을 유지할 수 있나요?** | 예 – `PdfSaveOptions.AllColumnsInOnePage = true`로 설정하고 Excel의 서식 규칙에 맡기세요. 단, `SignificantDigits`가 여전히 숫자 정밀도를 재정의한다는 점을 기억하세요. | +| **이미 존재하는 .xlsx 파일에도 적용되나요?** | 물론입니다. `new Workbook()`를 `new Workbook("input.xlsx")`로 교체하면 나머지 코드는 동일하게 유지됩니다. | +| **PDF가 빈 페이지일 경우 어떻게 하나요?** | 워크북에 실제 데이터가 들어 있는지, 쓰기 가능한 디렉터리에 저장하고 있는지 확인하세요. 또한 Aspose.Cells 라이선스가 올바르게 적용되었는지 확인하십시오; 라이선스가 없는 체험판은 출력에 제한을 둘 수 있습니다. | + +### 전문가 팁 + +특정 페이지 방향으로 **save excel as pdf** 해야 한다면, `Save` 호출 전에 `pdfSaveOptions.PageSetup.Orientation = PageOrientation.Landscape;`를 설정하세요. 이 작은 조정으로 나중에 PDF를 수동으로 조정해야 하는 경우를 많이 방지할 수 있습니다. + +--- + +## 변형: 여러 시트 내보내기 또는 사용자 정의 페이지 설정 + +### 한 번에 모든 시트 내보내기 + +```csharp +PdfSaveOptions allSheetsOptions = new PdfSaveOptions +{ + SignificantDigits = 4, + OnePagePerSheet = true // Each worksheet gets its own page. +}; + +workbook.Save("AllSheets.pdf", allSheetsOptions); +``` + +### 단일 시트를 PDF로 내보내기 + +특정 시트에 대해서만 **export worksheet to pdf** 하고 싶다면, `Worksheet` 객체의 `ToPdf` 메서드를 사용하세요: + +```csharp +Worksheet sheet = workbook.Worksheets["Sheet2"]; +sheet.ToPdf("Sheet2.pdf", pdfSaveOptions); +``` + +### 페이지 여백 조정 + +```csharp +pdfSaveOptions.PageSetup.TopMargin = 20; +pdfSaveOptions.PageSetup.BottomMargin = 20; +``` + +이러한 조정으로 후처리 없이 최종 문서를 세밀하게 튜닝할 수 있습니다. + +--- + +## 전체 작업 예제 + +아래는 지금까지 논의한 모든 내용을 포함한 완전한 복사‑붙여넣기 가능한 프로그램입니다. `Program.cs`로 저장하고 `dotnet run`을 실행하세요. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and select the first worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Insert a high‑precision number. + worksheet.Cells["A1"].PutValue(1234.56789); + + // 3️⃣ Set PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 + }; + + // 4️⃣ Save the workbook as PDF. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + + // Optional: Export another sheet with custom settings. + // Worksheet sheet2 = workbook.Worksheets.Add("Report"); + // sheet2.Cells["B2"].PutValue(9876.54321); + // sheet2.ToPdf("Report.pdf", pdfSaveOptions); + } +} +``` + +**결과:** `SignificantDigits.pdf`를 열면 반올림된 값 `1235`가 표시됩니다. 파일 크기는 작으며 레이아웃은 원본 Excel 시트와 일치합니다. + +--- + +## 결론 + +우리는 Aspose.Cells를 사용해 **save workbook as pdf** 하는 방법을 보여드렸으며, 기본 설정부터 **export worksheet to pdf**, **how to export excel to pdf**, **create pdf from worksheet**와 같은 고급 옵션까지 모두 다루었습니다. + +이 접근 방식은 간단하고 C# 몇 줄만 필요하며 .NET 버전 전반에 걸쳐 작동합니다. 다음 단계로 헤더/푸터 추가, 이미지 삽입, 템플릿 기반 PDF 생성 등을 탐색해볼 수 있습니다—모두 현재 기반 위에 구축됩니다. + +시도해보고 싶은 변형이 있나요? PDF에 비밀번호를 설정하거나 여러 PDF를 병합해야 할 수도 있습니다. 이러한 기능은 자연스러운 확장이며 Aspose.Cells API가 지원합니다. 직접 들어가 실험해보고 라이브러리가 무거운 작업을 대신하도록 하세요. + +*행복한 코딩 되세요! 문제가 발생하면 아래에 댓글을 남겨주시면 함께 해결해 보겠습니다.* + +![save workbook as pdf screenshot](/images/save-workbook-as-pdf.png){alt="생성된 PDF 파일을 보여주는 워크북을 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/korean/net/converting-excel-files-to-other-formats/_index.md b/cells/korean/net/converting-excel-files-to-other-formats/_index.md index 5ece0ad182..2570022f5f 100644 --- a/cells/korean/net/converting-excel-files-to-other-formats/_index.md +++ b/cells/korean/net/converting-excel-files-to-other-formats/_index.md @@ -56,6 +56,8 @@ Aspose.Cells for .NET을 사용하여 Excel 파일을 보관용 PDF/A-1a로 변 Aspose.Cells를 사용하여 .NET에서 JSON을 CSV로 프로그래밍 방식으로 변환하는 방법을 알아보세요. 단계별 가이드를 따라 데이터를 원활하게 변환하세요. ### [.NET에서 Excel 파일을 PPTX로 프로그래밍 방식으로 변환](./converting-excel-file-to-pptx/) 이 단계별 가이드를 통해 Aspose.Cells for .NET을 사용하여 Excel 파일을 PowerPoint 프레젠테이션(PPTX)으로 프로그래밍 방식으로 변환하는 방법을 알아보세요. +### [Excel에서 PowerPoint 만들기 – 단계별 C# 가이드](./create-powerpoint-from-excel-step-by-step-c-guide/) +Aspose.Cells for .NET을 사용하여 Excel 데이터를 PowerPoint 프레젠테이션으로 변환하는 방법을 단계별로 안내합니다. ### [.NET에서 프로그래밍 방식으로 출력 HTML에 HTML CrossType 지정](./specifying-html-crosstype-in-output-html/) Aspose.Cells for .NET에서 HTML CrossType을 지정하는 방법을 알아보세요. 단계별 튜토리얼을 따라 Excel 파일을 정확하게 HTML로 변환하세요. ### [.NET에서 숫자 스프레드시트를 프로그래밍 방식으로 읽기](./reading-numbers-spreadsheet/) diff --git a/cells/korean/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md b/cells/korean/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md new file mode 100644 index 0000000000..be0ad30cdf --- /dev/null +++ b/cells/korean/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-03-30 +description: Aspose.Cells와 Aspose.Slides를 사용하여 Excel에서 빠르게 PowerPoint를 만들세요. 워크시트를 + 이미지로 내보내고 C#에서 프레젠테이션을 PPTX 파일로 저장하는 방법을 배우세요. +draft: false +keywords: +- create powerpoint from excel +- convert excel to powerpoint +- export worksheet as image +- save presentation as pptx +- export excel chart as picture +language: ko +og_description: Aspose를 사용하여 C#에서 Excel을 PowerPoint로 만들기. 워크시트를 이미지로 내보내고, 도형을 편집 + 가능하게 유지하며, 결과를 PPTX로 저장합니다. +og_title: Excel에서 PowerPoint 만들기 – 완전한 C# 튜토리얼 +tags: +- Aspose +- C# +- Office Automation +title: Excel에서 PowerPoint 만들기 – 단계별 C# 가이드 +url: /ko/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-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를 만들**고 싶지만 차트를 편집 가능한 상태로 유지할 수 있는 라이브러리를 몰라 고민한 적 있나요? 여러분만 그런 것이 아닙니다. 많은 보고서 시나리오에서 스프레드시트를 슬라이드 덱으로 변환하면서 텍스트 상자를 나중에 수정할 수 있기를 원합니다. 이 가이드는 Aspose.Cells와 Aspose.Slides를 사용해 **Excel을 PowerPoint로 변환**하는 방법을 정확히 보여주며, **워크시트를 이미지로 내보내는 방법**과 최종적으로 **프레젠테이션을 PPTX로 저장하는 방법**까지 다룹니다. + +코드 한 줄 한 줄을 살펴보면서 각 설정이 왜 중요한지 설명하고, 복잡한 차트를 이미지로 내보내고 싶을 때는 어떻게 해야 하는지도 논의합니다. 최종적으로 `ShapesDemo.xlsx`를 받아 `Result.pptx`를 생성하는 실행 가능한 C# 콘솔 앱을 만들 수 있게 됩니다 – 텍스트 상자는 편집 가능하고 이미지도 선명합니다. + +## 준비 사항 + +- .NET 6.0 이상 (API는 .NET Framework에서도 동작하지만 .NET 6이 가장 권장됩니다). +- **Aspose.Cells**와 **Aspose.Slides** NuGet 패키지 (무료 체험 라이선스로 테스트 가능). +- C# 문법에 대한 기본적인 이해 – `Console.WriteLine`을 쓸 수만 하면 충분합니다. + +추가적인 COM 인터옵, 서버에 Office 설치, 이미지 수동 복사‑붙여넣기 전혀 필요 없습니다. 모든 작업이 프로그래밍으로 처리됩니다. + +--- + +## Excel에서 PowerPoint 만들기 – 워크북 로드 및 내보내기 옵션 설정 + +먼저 Excel 파일을 열고 Aspose.Cells에 시트를 어떻게 렌더링할지 알려줍니다. `ImageOrPrintOptions` 객체가 핵심이며, 여기서 `ExportShapes`와 `ExportEditableTextBoxes`를 활성화하면 모든 도형(차트 포함)이 슬라이드에 포함되면서 변환 후에도 편집이 가능합니다. + +```csharp +using Aspose.Cells; +using Aspose.Slides; + +// 1️⃣ Load the Excel workbook +string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; +Workbook workbook = new Workbook(excelPath); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first sheet + +// 2️⃣ Configure image export – keep shapes editable +ImageOrPrintOptions imageOptions = new ImageOrPrintOptions +{ + OnePagePerSheet = true, // Export the whole sheet as one slide + ExportShapes = true, // Include shapes (charts, drawings) + ExportEditableTextBoxes = true // Make text boxes editable in PPTX +}; +``` + +**왜 이 플래그들을 사용하나요?** +- `OnePagePerSheet`는 시트가 여러 슬라이드로 나뉘는 것을 방지하고, 한 장의 전체 크기 이미지를 얻을 수 있게 합니다. +- `ExportShapes`는 Aspose.Cells가 차트와 벡터 도형을 래스터화하면서도 외관을 유지하도록 합니다. +- `ExportEditableTextBoxes`는 PowerPoint에서 텍스트 상자를 더블 클릭해 Excel을 다시 열지 않고도 텍스트를 수정할 수 있게 해 주는 비밀 소스입니다. + +> **팁:** 차트의 정적 이미지만 필요하다면 `ExportShapes = false`로 설정하고, 이후에 `ExportExcelChartAsPicture` 메서드를 사용하세요 (마지막 섹션 참고). + +--- + +## Excel을 PowerPoint로 변환 – 워크시트에서 이미지 생성 + +옵션을 준비했으니 이제 워크시트를 `System.Drawing.Image` 객체로 변환합니다. `WorksheetToImageConverter`가 무거운 작업을 수행하며, 앞서 정의한 설정을 적용합니다. + +```csharp +// 3️⃣ Convert the worksheet to an image using the options above +WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); +System.Drawing.Image sheetImage = converter.ConvertToImage(0, imageOptions); +``` + +`0` 인자는 첫 번째 페이지를 의미합니다 (`OnePagePerSheet` 덕분에 페이지가 하나뿐이므로). 결과인 `sheetImage`는 원본 DPI를 유지하므로 고해상도 디스플레이에서도 픽셀화되지 않은 슬라이드를 얻을 수 있습니다. + +--- + +## PPTX로 저장 – 슬라이드에 이미지 삽입 + +이제 새 PowerPoint 파일을 만들고 슬라이드를 추가한 뒤 비트맵을 삽입합니다. Aspose.Slides는 그림을 *picture frame* 형태의 도형으로 취급하므로, 이후에 원본 PowerPoint 객체처럼 크기 조절이나 이동이 가능합니다. + +```csharp +// 4️⃣ Create a new PowerPoint presentation +Presentation presentation = new Presentation(); +ISlide slide = presentation.Slides[0]; // The default blank slide + +// Add the Excel‑derived image as a picture frame +slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, // Simple rectangle container + 0, 0, // Top‑left corner (0,0) + sheetImage.Width, // Width of the picture + sheetImage.Height, // Height of the picture + sheetImage); // The bitmap we generated +``` + +> **이미지가 슬라이드 크기보다 클 경우?** +> PowerPoint는 슬라이드 영역을 초과하는 부분을 자동으로 잘라냅니다. 간단히 이미지 크기를 조정한 뒤 삽입하면 됩니다: + +```csharp +float scale = Math.Min(presentation.SlideSize.Size.Width / (float)sheetImage.Width, + presentation.SlideSize.Size.Height / (float)sheetImage.Height); +int newWidth = (int)(sheetImage.Width * scale); +int newHeight = (int)(sheetImage.Height * scale); +``` + +그 후 `newWidth`와 `newHeight` 값을 `AddPictureFrame`에 전달하면 됩니다. + +--- + +## 워크시트를 이미지로 내보내기 – PPTX 파일 저장 + +마지막으로 프레젠테이션을 디스크에 저장합니다. `SaveFormat.Pptx` 플래그는 최신 OpenXML 형식을 보장하며, 모든 최신 버전의 PowerPoint에서 호환됩니다. + +```csharp +// 5️⃣ Save the presentation as a PPTX file +string pptxPath = "YOUR_DIRECTORY/Result.pptx"; +presentation.Save(pptxPath, SaveFormat.Pptx); +``` + +`Result.pptx`를 열면 Excel 시트와 똑같이 보이는 단일 슬라이드가 나타나지만, 텍스트 상자를 클릭하면 PowerPoint 내에서 바로 내용을 편집할 수 있습니다. + +--- + +## Excel 차트를 이미지로 내보내기 – 래스터 이미지가 필요할 때 + +때로는 편집 가능한 도형이 필요 없고 차트의 고품질 PNG만 있으면 충분합니다. Aspose.Cells는 전체 시트를 변환하지 않고 특정 차트를 이미지로 내보낼 수 있습니다: + +```csharp +// Example: Export the first chart on the sheet as a PNG +int chartIndex = 0; // Adjust if you have multiple charts +Chart chart = worksheet.Charts[chartIndex]; +ImageOrPrintOptions chartOptions = new ImageOrPrintOptions +{ + ImageFormat = ImageFormat.Png, + OnePagePerSheet = false +}; +chart.ToImage("chart.png", chartOptions); +``` + +그 후 `chart.png`를 앞서 `sheetImage`를 삽입한 방식과 동일하게 슬라이드에 넣으면 됩니다. 이 방법은 PPTX 파일 크기를 줄이고, 슬라이드에 주변 데이터가 필요 없을 때 유용합니다. + +--- + +## 흔히 겪는 문제와 해결 방법 + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **텍스트가 흐릿하게 보임** | 낮은 DPI(기본 96)로 내보냈기 때문 | 변환 전에 `imageOptions.Dpi = 300;` 설정 | +| **도형이 사라짐** | `ExportShapes`가 `false`인 경우 | 편집 가능한 그래픽이 필요하면 `ExportShapes = true` 확인 | +| **슬라이드 크기 불일치** | 이미지가 슬라이드보다 큼 | 이미지 스케일링(코드 스니펫 참고) 또는 `presentation.SlideSize`로 슬라이드 크기 변경 | +| **라이선스 예외** | 트라이얼 버전을 활성화 없이 사용 | `License license = new License(); license.SetLicense("Aspose.Total.lic");` 를 `Main` 초기에 호출 | + +--- + +## 전체 작업 예제 (복사‑붙여넣기 바로 사용) + +아래는 새 콘솔 프로젝트에 바로 넣을 수 있는 전체 프로그램입니다. `YOUR_DIRECTORY`를 Excel 파일이 있는 폴더 경로로 바꾸세요. + +```csharp +using System; +using Aspose.Cells; +using Aspose.Slides; +using System.Drawing; + +namespace ExcelToPowerPointDemo +{ + class Program + { + static void Main(string[] args) + { + // ----------------------------------------------------------------- + // 1️⃣ Load the Excel workbook + // ----------------------------------------------------------------- + string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; + Workbook workbook = new Workbook(excelPath); + Worksheet worksheet = workbook.Worksheets[0]; + + // ----------------------------------------------------------------- + // 2️⃣ Set up export options – keep shapes editable + // ----------------------------------------------------------------- + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + OnePagePerSheet = true, + ExportShapes = true, + ExportEditableTextBoxes = true, + Dpi = 300 // High‑resolution output + }; + + // ----------------------------------------------------------------- + // 3️⃣ Convert worksheet to an image + // ----------------------------------------------------------------- + WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); + Image sheetImage = converter.ConvertToImage(0, imageOptions); + + // ----------------------------------------------------------------- + // 4️⃣ Create PowerPoint and add the image as a slide + // ----------------------------------------------------------------- + Presentation presentation = new Presentation(); + ISlide slide = presentation.Slides[0]; + slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, + 0, 0, + sheetImage.Width, + sheetImage.Height, + sheetImage); + + // ----------------------------------------------------------------- + // 5️⃣ Save the PPTX file + // ----------------------------------------------------------------- + string pptxPath = "YOUR_DIRECTORY/Result.pptx"; + presentation.Save(pptxPath, SaveFormat.Pptx); + + Console.WriteLine("✅ PowerPoint created successfully at: " + pptxPath); + } + } +} +``` + +**예상 출력:** +프로그램 실행 시 `✅ PowerPoint created successfully at: YOUR_DIRECTORY/Result.pptx` 가 콘솔에 표시됩니다. PPTX를 열면 원본 Excel 시트를 그대로 반영한 단일 슬라이드가 나타나며, 텍스트 상자는 편집 가능 상태입니다. + +--- + +## 정리 및 다음 단계 + +이제 Aspose의 강력한 API를 활용해 **Excel에서 PowerPoint를 만들**는 방법, **워크시트를 이미지로 내보내는 방법**, 그리고 **편집 가능성을 유지하면서 PPTX로 저장하는 방법**을 알게 되었습니다. 동일한 패턴을 사용하면 다중 시트 워크북도 쉽게 처리할 수 있습니다—`workbook.Worksheets`를 순회하면서 각 시트마다 새 슬라이드를 추가하면 됩니다. + +**다음에 탐구해볼 내용:** + +- **배치 변환:** 폴더에 있는 여러 Excel 파일을 순회하며 파일당 슬라이드 덱 생성 +- **동적 레이아웃:** `slide.LayoutSlide`를 사용해 미리 디자인된 PowerPoint 템플릿 적용 +- **차트 전용 내보내기:** “Excel 차트를 이미지로 내보내기” 스니펫을 슬라이드 플레이스홀더와 결합해 경량 덱 만들기 +- **고급 스타일링:** Aspose.Slides를 이용해 커스텀 슬라이드 배경, 전환 효과, 애니메이션 적용 + +자유롭게 실험해 보세요—DPI를 바꾸거나 `ShapeType.Ellipse`를 원형 picture frame으로 교체하거나, 슬라이드당 여러 이미지를 삽입하는 등 프로그램matic 제어가 가능하면 가능성은 무한합니다. + +{{< /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/korean/net/document-properties/_index.md b/cells/korean/net/document-properties/_index.md index 5e30810b4e..a5fab04b50 100644 --- a/cells/korean/net/document-properties/_index.md +++ b/cells/korean/net/document-properties/_index.md @@ -35,6 +35,8 @@ Aspose.Cells for .NET을 사용하여 Excel에서 문서 속성에 액세스하 단계별 가이드를 통해 Aspose.Cells for .NET을 사용하여 Excel에서 문서 속성에 액세스하는 방법을 알아보세요. 스프레드시트를 효율적으로 관리하세요. ### [.NET에 문서 속성 추가](./adding-document-properties/) 이 자세한 단계별 가이드를 통해 Aspose.Cells for .NET을 사용하여 Excel에 문서 속성을 추가하는 방법을 알아보세요. +### [C#에서 사용자 지정 속성으로 XLSB 저장하기 – 단계별 가이드](./how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/) +XLSB 파일에 사용자 지정 속성을 추가하고 저장하는 방법을 단계별로 안내합니다. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/korean/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md b/cells/korean/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md new file mode 100644 index 0000000000..481102c569 --- /dev/null +++ b/cells/korean/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md @@ -0,0 +1,236 @@ +--- +category: general +date: 2026-03-30 +description: C#에서 사용자 정의 속성을 추가하고 이를 읽어보면서 XLSB 파일을 저장하는 방법을 배우고, Aspose.Cells를 사용해 + 워크북을 XLSB 형식으로 저장하는 기술을 마스터하세요. 전체 코드가 포함되어 있습니다. +draft: false +keywords: +- how to save xlsb +- add custom property +- how to add property +- how to read property +- save workbook as xlsb +language: ko +og_description: C#에서 XLSB를 저장하는 방법은? 이 튜토리얼에서는 사용자 정의 속성을 추가하고 다시 읽으며, Aspose.Cells를 + 사용해 워크북을 XLSB 형식으로 저장하는 방법을 보여줍니다. +og_title: C#에서 사용자 정의 속성으로 XLSB 저장하는 방법 – 완전 가이드 +tags: +- Aspose.Cells +- C# +- Excel Automation +title: C#에서 사용자 정의 속성을 포함한 XLSB 저장 방법 – 단계별 가이드 +url: /ko/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#에서 XLSB를 사용자 정의 속성과 함께 저장하는 방법 – 단계별 가이드 + +워크시트에 추가 메타데이터를 붙인 채 **XLSB를 저장하는 방법**을 궁금해 본 적 있나요? 당신만 그런 것이 아닙니다. 많은 기업 환경에서 자체 키/값 쌍을 포함한 바이너리 Excel 파일이 필요합니다—예를 들어 계약 ID, 처리 플래그, 버전 태그 등을 생각해 보세요. + +좋은 소식은 Aspose.Cells가 이를 아주 쉽게 만들어 준다는 점입니다. 이 가이드에서는 사용자 정의 속성을 추가하고, 저장하고, 다시 읽어오는 방법을 정확히 보여드리며, **워크북을 XLSB로 저장**하는 과정도 포함합니다. 모호한 설명 없이 바로 프로젝트에 넣어 실행할 수 있는 완전한 예제를 제공합니다. + +## 학습 후 얻을 수 있는 것 + +- 처음부터 만든 새로운 `.xlsb` 파일. +- 워크시트에 **사용자 정의 속성 추가** 기능. +- 파일을 다시 로드한 후 **속성을 읽는 방법**을 보여주는 코드. +- **워크북을 XLSB로 저장**할 때 마주칠 수 있는 함정에 대한 팁. + +> **Prerequisites:** .NET 6+ (또는 .NET Framework 4.6+), Visual Studio (또는 기타 C# IDE), 그리고 NuGet을 통해 설치한 Aspose.Cells for .NET 라이브러리만 있으면 됩니다. 그 외는 필요 없습니다. + +--- + +## 단계 1: 프로젝트 설정 및 새 워크북 만들기 + +우선, 깨끗한 워크북 객체를 준비해 보겠습니다. + +```csharp +using Aspose.Cells; +using System; + +// Initialize a new workbook; this will be an in‑memory Excel file. +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0) – it’s created automatically. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Why this matters:* `Workbook`은 Aspose.Cells에서 모든 작업의 진입점입니다. 새 인스턴스로 시작하면 나중에 사용자 정의 메타데이터를 손상시킬 수 있는 숨겨진 상태를 피할 수 있습니다. + +--- + +## 단계 2: 워크시트에 **사용자 정의 속성 추가** + +이제 이 시트에만 존재하는 키/값 쌍을 연결하겠습니다. + +```csharp +// Add a user‑defined property called "MyProperty" with the value "CustomValue". +worksheet.CustomProperties.Add("MyProperty", "CustomValue"); +``` + +> **Pro tip:** 속성 이름은 대소문자를 구분합니다. 나중에 `"myproperty"`를 가져오려고 하면 `KeyNotFoundException`이 발생합니다. 처음부터 camelCase 또는 PascalCase와 같은 명명 규칙을 따르세요. + +--- + +## 단계 3: **워크북을 XLSB로 저장** – 속성 영구 저장 + +워크북을 바이너리 XLSB 형식으로 저장할 때 마법이 일어납니다. + +```csharp +// Define the output path. Adjust the folder to something writable on your machine. +string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + +// Save the workbook; the custom property travels with the file. +workbook.Save(outputPath, SaveFormat.Xlsb); +``` + +*What you’re actually doing:* `SaveFormat.Xlsb` 열거형은 Aspose.Cells에 바이너리 Excel 파일을 생성하도록 지시합니다(열기가 빠르고 디스크 용량이 작음). 모든 워크시트 수준 사용자 정의 속성은 자동으로 직렬화되며, 추가 단계가 필요하지 않습니다. + +--- + +## 단계 4: 파일을 다시 로드하고 **속성 읽는 방법** + +속성이 라운드트립을 견뎌냈는지 확인해 보겠습니다. + +```csharp +// Load the just‑saved XLSB file back into memory. +Workbook reloadedWorkbook = new Workbook(outputPath); + +// Access the same worksheet (index 0) and fetch the property value. +string customValue = reloadedWorkbook.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); +``` + +모든 것이 정상적으로 진행되었다면 `customValue`에 이제 `"CustomValue"`가 들어 있습니다. + +--- + +## 단계 5: 결과 확인 – 간단한 콘솔 출력 + +작은 검증은 개발 중에 도움이 됩니다. + +```csharp +Console.WriteLine($"Custom property value: {customValue}"); +``` + +프로그램을 실행하면 다음과 같이 출력됩니다: + +``` +Custom property value: CustomValue +``` + +해당 줄이 보이면 **XLSB 저장 방법**, **사용자 정의 속성 추가**, 그리고 **속성 읽는 방법**을 모두 깔끔하게 마스터한 것입니다. + +--- + +## 전체 작업 예제 (복사‑붙여넣기 준비됨) + +아래는 전체 프로그램입니다. 새 콘솔 앱에 붙여넣고 **F5**를 눌러 콘솔이 속성 값을 확인하는 것을 보세요. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // 1️⃣ Create a new workbook and get its first sheet + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // 2️⃣ Add a custom property (key/value) to the sheet + // ------------------------------------------------- + worksheet.CustomProperties.Add("MyProperty", "CustomValue"); + + // ------------------------------------------------- + // 3️⃣ Save the workbook as XLSB – the property is kept + // ------------------------------------------------- + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(outputPath, SaveFormat.Xlsb); + + // ------------------------------------------------- + // 4️⃣ Reload the saved file to demonstrate persistence + // ------------------------------------------------- + Workbook reloaded = new Workbook(outputPath); + + // ------------------------------------------------- + // 5️⃣ Retrieve the custom property's value + // ------------------------------------------------- + string customValue = reloaded.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); + + // ------------------------------------------------- + // 6️⃣ Display the retrieved value (optional) + // ------------------------------------------------- + Console.WriteLine($"Custom property value: {customValue}"); + } +} +``` + +> **Remember:** `outputPath`를 쓰기 권한이 있는 폴더로 변경하세요. Linux/macOS를 사용 중이라면 `"/tmp/WithCustomProp.xlsb"`와 같은 경로를 사용하십시오. + +--- + +## 일반적인 질문 및 엣지 케이스 + +### 속성이 이미 존재한다면? + +`Add` 메서드에 기존 키를 전달하면 `ArgumentException`이 발생합니다. 확실하지 않다면 `ContainsKey`를 사용하거나 `try/catch`로 감싸세요. + +```csharp +if (!worksheet.CustomProperties.ContainsKey("MyProperty")) +{ + worksheet.CustomProperties.Add("MyProperty", "AnotherValue"); +} +``` + +### 문자열이 아닌 값을 저장할 수 있나요? + +물론 가능합니다. `Value` 속성은 모든 `object`를 받아들입니다. 숫자, 날짜, 불리언 등 적절한 타입을 전달하면 Aspose.Cells가 읽어올 때 변환을 처리합니다. + +### XLSX로 변환해도 속성이 유지되나요? + +예. 사용자 정의 속성은 워크시트의 XML 표현에 포함되므로 XLSX, XLS, XLSB 형식 모두에서 유지됩니다. + +### 여러 시트에 **속성 추가**하는 방법은? + +`Worksheets` 컬렉션을 순회하면서 필요한 각 시트에 동일한 `CustomProperties.Add` 호출을 적용하면 됩니다. + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + ws.CustomProperties.Add("ExportedBy", "MyApp"); +} +``` + +### 대량으로 **워크북을 XLSB로 저장**할 때 성능 팁 + +수백 개의 파일을 생성한다면 동일한 `Workbook` 인스턴스를 재사용하고 저장 후 `Clear`를 호출해 메모리를 해제하세요. 또한 로드 시 수식 계산이 필요 없으면 `Workbook.Settings.CalculateFormulaOnOpen = false`로 설정하십시오. + +--- + +## 결론 + +이제 Aspose.Cells를 사용해 C#에서 **XLSB를 저장**하면서 사용자 정의 속성을 삽입하고 나중에 읽어오는 방법을 알게 되었습니다. 워크북 생성, 속성 추가, **워크북을 XLSB로 저장**으로 영구화, 다시 로드하고 값을 읽는 전체 솔루션은 50줄 이하의 코드로 구현됩니다. + +다음 단계로 탐색해 볼 수 있는 내용은 다음과 같습니다: + +- 시트당 여러 사용자 정의 속성 추가. +- JSON 문자열을 통해 복합 객체 저장. +- 추가 보안을 위해 XLSB 파일 암호화. + +위 아이디어들을 시도해 보면 팀 내에서 Excel 자동화 담당자로 빠르게 자리매김할 수 있습니다. 질문이나 어려운 상황이 있으면 아래에 댓글을 남겨 주세요. 즐거운 코딩 되세요! + +![사용자 정의 속성과 함께 XLSB 저장 방법](/images/how-to-save-xlsb.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/korean/net/excel-copy-worksheet/_index.md b/cells/korean/net/excel-copy-worksheet/_index.md index 0aa83e4b2c..7817cd622b 100644 --- a/cells/korean/net/excel-copy-worksheet/_index.md +++ b/cells/korean/net/excel-copy-worksheet/_index.md @@ -42,6 +42,7 @@ Aspose.Cells for .NET은 스프레드시트 복사를 포함하여 Excel 파일 | [Excel 복사 워크시트](./excel-copy-worksheet/) | Aspose.Cells for .NET을 사용하여 Excel 워크시트를 복사하는 방법을 단계별 가이드를 통해 쉽게 따라 할 수 있습니다. Excel 작업을 자동화하려는 .NET 개발자에게 이상적입니다. | | [Excel에서 통합 문서 간 워크시트 복사](./excel-copy-worksheets-between-workbooks/) | Aspose.Cells for .NET을 사용하여 Excel 통합 문서 간에 워크시트를 복사하는 방법을 알아보세요. 스프레드시트 관리를 간소화하는 코드 예제가 포함된 단계별 가이드입니다. | | [Excel 이동 워크시트](./excel-move-worksheet/) | Aspose.Cells for .NET을 사용하여 Excel에서 워크시트를 이동하는 방법을 단계별 가이드를 통해 알아보세요. Excel 프로그래밍의 기술을 마스터하세요. | +| [C#에서 Aspose.Cells를 사용한 워크시트 복사 완전 가이드](./how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/) | Aspose.Cells for .NET을 사용해 C#에서 워크시트를 복사하는 전체 과정을 단계별로 안내합니다. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/korean/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md b/cells/korean/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md new file mode 100644 index 0000000000..58425ab61f --- /dev/null +++ b/cells/korean/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md @@ -0,0 +1,266 @@ +--- +category: general +date: 2026-03-30 +description: C#에서 Aspose.Cells를 사용하여 워크시트를 복사하는 방법 – 셀 범위 복사, 시트 간 열 복사, 워크시트 피벗 테이블 + 복사 및 새 워크시트 추가 코드를 포함한 단계별 가이드. +draft: false +keywords: +- how to copy worksheet +- copy cell range +- copy columns between sheets +- copy worksheet pivot table +- add new worksheet code +language: ko +og_description: Aspose.Cells를 사용하여 C#에서 워크시트를 복사하는 방법을 배웁니다. 이 가이드는 셀 범위 복사, 피벗 테이블 + 보존, 시트 간 열 복사 및 새 워크시트 추가 코드를 보여줍니다. +og_title: C#에서 워크시트 복사하는 방법 – 전체 Aspose.Cells 튜토리얼 +tags: +- Aspose.Cells +- C# +- Excel Automation +title: C#에서 Aspose.Cells를 사용하여 워크시트를 복사하는 방법 – 완전 가이드 +url: /ko/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#와 Aspose.Cells를 사용한 워크시트 복사 방법 – 완전 가이드 + +C#에서 **how to copy worksheet**을 고민해 본 적 있나요? 피벗 테이블이나 수식을 하나도 잃지 않고 말이죠. 당신만 그런 것이 아닙니다—많은 개발자들이 시트를 복제하면서 모든 요소를 그대로 유지해야 할 때 난관에 봉착합니다. 이 튜토리얼에서는 데이터를 복사할 뿐만 아니라 **copy worksheet pivot table**, **copy cell range**를 처리하고 필요한 **add new worksheet code**를 보여주는 실용적인 엔드‑투‑엔드 솔루션을 단계별로 안내합니다. + +소스 워크북을 로드하는 것부터 대상 파일을 저장하는 것까지 모든 과정을 다룹니다. 이를 통해 시트 간에 열을 복사하고, 객체를 보존하며, 코드를 깔끔하게 유지할 수 있습니다. 모호한 설명 없이, 오늘 바로 프로젝트에 넣어 사용할 수 있는 완전하고 실행 가능한 예제를 제공합니다. + +## 이 튜토리얼에서 다루는 내용 + +- Aspose.Cells를 사용하여 기존 Excel 파일 로드 +- **add new worksheet code**를 사용해 대상 시트 생성 +- 피벗 테이블을 포함하는 **copy cell range** 정의 +- 차트, 수식, 피벗 테이블을 유지하도록 **CopyOptions** 설정 +- 행 단위 정밀도로 **copy columns between sheets** 실행 +- 결과 저장 및 워크시트가 올바르게 복사되었는지 확인 + +이 가이드를 마치면 보고서를 자동화하든 스프레드시트 기반 UI를 구축하든, “how to copy worksheet” 질문에 자신 있게 답할 수 있게 됩니다. + +## 워크시트 복사 방법 – 개요 + +코드에 들어가기 전에 전체 흐름을 개략적으로 살펴보겠습니다. 레시피처럼 생각하세요: + +1. **Load** 소스 워크북 (`Source.xlsx`). +2. **Add** 복사본을 담을 새 워크시트 (`add new worksheet code`). +3. **Define** 복제하려는 영역 (`copy cell range`). +4. **Configure** 피벗 테이블이 유지되도록 복사 옵션 설정 (`copy worksheet pivot table`). +5. **Copy** 행과 열 (`copy columns between sheets`). +6. **Save** 새 워크북 (`Destination.xlsx`). + +이것이 전부—여섯 단계, 마법은 없습니다. 각 단계는 아래에서 코드 스니펫과 함께 이유를 설명합니다. + +## 단계 1 – 소스 워크북 로드 + +먼저 해야 할 일: 복제하려는 파일을 가리키는 `Workbook` 인스턴스가 필요합니다. 이 단계는 Aspose.Cells가 Office UI가 아니라 파일 시스템과 직접 작업하기 때문에 필수적입니다. + +```csharp +using Aspose.Cells; + +// Path to the original file +string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; +string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + +// Load the workbook – this is the starting point for how to copy worksheet +Workbook workbook = new Workbook(sourcePath); +``` + +*왜 중요한가:* 파일을 로드하면 모든 시트, 셀, 객체가 메모리에 표현됩니다. 이것이 없으면 복사할 것이 없으며, 이후 `add new worksheet code`를 시도해도 소스 데이터가 없기 때문에 실패합니다. + +## 단계 2 – 새 워크시트 추가 (add new worksheet code) + +이제 복사된 데이터를 붙여넣을 위치가 필요합니다. 바로 여기서 **add new worksheet code**가 빛을 발합니다. 시트 이름은 원하는 대로 지정할 수 있습니다; 여기서는 `"Copy"`라고 부릅니다. + +```csharp +// Grab the first worksheet (the one we want to copy) +Worksheet sourceSheet = workbook.Worksheets[0]; + +// Add a fresh worksheet to receive the copy +Worksheet copySheet = workbook.Worksheets.Add("Copy"); +``` + +*팁:* 여러 시트를 복사할 계획이라면 루프 안에서 `Worksheets.Add`를 호출하고 각 시트에 고유한 이름을 부여하세요. 이렇게 하면 이름 충돌을 방지하고 워크북을 깔끔하게 유지할 수 있습니다. + +## 단계 3 – 복사 셀 범위 정의 + +**copy cell range**는 Aspose.Cells에 정확히 어떤 행과 열을 복제할지 알려줍니다. 실제 상황에서는 이 범위에 피벗 테이블이 포함되는 경우가 많아 정확해야 합니다. + +```csharp +// Define the area that contains the pivot table (A1:G20) +CellArea sourceRange = new CellArea +{ + StartRow = 0, // Row 1 (zero‑based) + StartColumn = 0, // Column A + EndRow = 19, // Row 20 + EndColumn = 6 // Column G +}; + +// Destination range – we start at the same top‑left corner +CellArea destinationRange = new CellArea +{ + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 +}; +``` + +*왜 필요한가:* 범위를 명시함으로써 전체 시트를 복사하는 비효율을 피하고 피벗 테이블이 복사된 영역에 포함되도록 보장합니다. 이는 시트의 일부만 필요할 때 **how to copy worksheet**의 핵심입니다. + +## 단계 4 – 복사 옵션 설정 (copy worksheet 피벗 테이블 보존) + +Aspose.Cells는 붙여넣을 내용을 제어하는 `CopyOptions` 객체를 제공합니다. 피벗 테이블, 차트, 수식을 유지하려면 `PasteType.All`을 설정하고 `PasteSpecial`을 활성화합니다. + +```csharp +CopyOptions copyOptions = new CopyOptions +{ + PasteType = PasteType.All, // Copy everything: values, formats, objects + PasteSpecial = true // Enable special paste to retain pivot tables +}; +``` + +*설명:* `PasteType.All`은 가장 포괄적인 옵션이며, `PasteSpecial`은 엔진에게 피벗 테이블과 같은 복합 객체를 올바르게 처리하도록 지시합니다. 이 단계를 건너뛰면 복사된 시트가 인터랙티브 기능을 잃는 흔한 실수가 됩니다. + +## 단계 5 – 행 및 열 복사 (copy columns between sheets) + +이제 실제 데이터 이동이라는 무거운 작업이 시작됩니다. `CopyRows`와 `CopyColumns`를 사용해 **copy columns between sheets**를 처리합니다. 두 작업을 모두 수행하면 병합 셀과 열 너비가 보존됩니다. + +```csharp +// Copy rows from the source to the destination sheet +sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + +// Copy columns from the source to the destination sheet +sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); +``` + +*무슨 일인가:* `CopyRows`는 데이터를 행 단위로 이동하고, `CopyColumns`는 열 단위로 이동합니다. 두 작업을 모두 실행하면 전체 직사각형 블록이 복제되어, 열 너비가 다르거나 숨겨진 열이 있는 시트 간에 **copy columns between sheets**가 필요할 때 필수적입니다. + +## 단계 6 – 워크북 저장 + +마지막으로 변경 사항을 디스크에 기록합니다. 이 단계가 **how to copy worksheet** 과정을 완성합니다. + +```csharp +// Save the workbook with the newly copied sheet +workbook.Save(destinationPath); +``` + +*검증 팁:* `Destination.xlsx`를 열어 `"Copy"` 시트가 원본과 동일하게 보이고, 피벗 테이블이 정상 작동하며, 열 너비가 일치하는지 확인하세요. 문제가 있으면 `CopyOptions` 설정을 다시 검토하세요. + +## 엣지 케이스 및 일반적인 변형 + +### 여러 워크시트 복사 + +여러 시트를 복제해야 한다면 위 로직을 `foreach` 루프로 감싸세요: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + Worksheet newWs = workbook.Worksheets.Add(ws.Name + "_Copy"); + // Re‑use sourceRange/destinationRange or calculate per sheet + // Then call CopyRows/CopyColumns as shown earlier +} +``` + +### 다른 워크북 간 수식 보존 + +소스와 대상 워크북에 서로 다른 이름 정의가 있을 경우, `All` 외에 `PasteType.Formulas`로 `copyOptions`를 설정하세요: + +```csharp +copyOptions.PasteType = PasteType.All | PasteType.Formulas; +``` + +### 대규모 범위 및 성능 + +수백만 행과 같은 대규모 데이터셋의 경우, 열 너비가 중요하지 않다면 `CopyColumns`를 생략하고 `CopyRows`만 사용하는 것을 고려하세요. 이렇게 하면 몇 초 정도 시간을 절약할 수 있습니다. + +## 전체 작업 예제 + +아래는 지금까지 논의한 모든 내용을 담은 완전하고 바로 실행 가능한 프로그램입니다. 콘솔 앱에 붙여넣고 파일 경로를 조정한 뒤 **F5**를 눌러 실행하세요. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // ---------- Step 1: Load the source workbook ---------- + string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; + string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + Workbook workbook = new Workbook(sourcePath); + + // ---------- Step 2: Add a new worksheet (add new worksheet code) ---------- + Worksheet sourceSheet = workbook.Worksheets[0]; + Worksheet copySheet = workbook.Worksheets.Add("Copy"); + + // ---------- Step 3: Define the copy cell range ---------- + CellArea sourceRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + CellArea destinationRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + + // ---------- Step 4: Set copy options (preserve copy worksheet pivot table) ---------- + CopyOptions copyOptions = new CopyOptions + { + PasteType = PasteType.All, + PasteSpecial = true + }; + + // ---------- Step 5: Copy rows and columns (copy columns between sheets) ---------- + sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + + sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); + + // ---------- Step 6: Save the workbook ---------- + workbook.Save(destinationPath); + } +} +``` + +**예상 결과:** `Destination.xlsx`를 열면 **Copy**라는 시트가 `Source.xlsx`의 첫 번째 시트를 그대로 복제한 모습을 보여줍니다—피벗 테이블, 서식, 열 너비 모두 포함됩니다. 원본 파일은 그대로 유지됩니다. + +## 자주 묻는 질문 + +**Q: 이 코드가 Excel 2019에서 만든 .xlsx 파일에도 작동하나요?** +A: 물론입니다. Aspose.Cells는 모든 최신 Excel 형식을 지원하므로 동일한 코드를 `.xlsx`, `.xlsm`, 그리고 오래된 `.xls` 파일에도 사용할 수 있습니다. + +{{< /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/korean/net/excel-custom-number-date-formatting/_index.md b/cells/korean/net/excel-custom-number-date-formatting/_index.md index 11ae8f3acc..81b668f273 100644 --- a/cells/korean/net/excel-custom-number-date-formatting/_index.md +++ b/cells/korean/net/excel-custom-number-date-formatting/_index.md @@ -36,6 +36,10 @@ 이 단계별 튜토리얼을 통해 Aspose.Cells for .NET을 사용하여 Excel 셀 값을 사용자 지정 숫자 형식에 따라 확인하는 방법을 알아보세요. ### [Excel 시트로 데이터를 가져올 때 수식 필드 지정](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) 이 자세한 튜토리얼에서는 Aspose.Cells for .NET을 사용하여 지정된 수식 필드가 있는 Excel 시트로 데이터를 가져오는 방법을 알아봅니다. +### [C#에서 구분 기호를 사용한 숫자 서식 지정 – 완전한 Aspose.Cells 가이드](./format-number-with-separator-in-c-complete-aspose-cells-guid/) +Aspose.Cells를 활용하여 C#에서 숫자에 구분 기호를 적용하는 방법을 단계별로 안내합니다. +### [Excel에서 ISO 날짜 형식 지정 – 완전한 C# 가이드](./format-date-iso-from-excel-complete-c-guide/) +Aspose.Cells를 사용해 C#에서 Excel 날짜를 ISO 형식으로 포맷하는 방법을 자세히 설명합니다. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/korean/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md b/cells/korean/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..095c81868b --- /dev/null +++ b/cells/korean/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md @@ -0,0 +1,215 @@ +--- +category: general +date: 2026-03-30 +description: Aspose.Cells를 사용하여 C#에서 Excel 날짜/시간 값을 읽고 ISO 형식으로 날짜를 포맷하는 방법과 Excel + 날짜/시간 데이터를 추출하는 방법을 배워보세요. +draft: false +keywords: +- format date iso +- read excel datetime +- extract datetime excel +- Aspose.Cells date parsing +- Japanese era dates +language: ko +og_description: Aspose.Cells를 사용하여 Excel 데이터에서 ISO 날짜 형식 지정. 이 가이드는 Excel 날짜/시간을 읽고, + Excel 날짜/시간 값을 추출하며, ISO 날짜를 출력하는 방법을 보여줍니다. +og_title: Excel에서 ISO 날짜 형식 지정 – 단계별 C# 튜토리얼 +tags: +- C# +- Excel +- DateTime +- Aspose.Cells +title: Excel에서 ISO 날짜 형식 지정 – 완전한 C# 가이드 +url: /ko/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel에서 format date iso – Complete C# Guide + +Excel 시트에서 날짜를 **format date iso** 해야 할 때가 있나요? 일본 연호 날짜를 다루거나 API 페이로드에 깔끔한 `yyyy‑MM‑dd` 문자열이 필요할 때 말이죠. 이 튜토리얼에서는 **read Excel datetime** 셀을 어떻게 읽고, **extract datetime Excel** 값을 어떻게 추출한 뒤 ISO‑8601 형식으로 변환하는지 단계별로 보여드립니다. 추측 없이 바로 적용할 수 있는 예제를 통해 Aspose.Cells를 사용하고, 각 라인이 왜 중요한지 설명하며 최종 출력을 제공하니 프로젝트에 복사‑붙여넣기만 하면 됩니다. 마무리되면 “令和3年5月1日” 같은 특수 연호 문자열도 표준 ISO 날짜로 변환해 데이터베이스, JSON, 혹은 필요한 어디든 사용할 수 있습니다. + +## Prerequisites + +- .NET 6.0 이상 (코드는 .NET Framework에서도 동작합니다) +- Aspose.Cells for .NET (무료 체험판 또는 정식 라이선스) +- C# 및 Excel 기본 개념에 대한 이해 +- Visual Studio 혹은 선호하는 C# 편집기 + +Aspose.Cells 외에 추가 NuGet 패키지는 필요하지 않으므로 설정이 매우 간단합니다. + +--- + +## Step 1: Create a Workbook and Target the First Worksheet + +첫 번째로 해야 할 일은 새로운 `Workbook` 객체를 생성하는 것입니다. 이는 메모리 상에 Excel 파일의 표현을 만들며, 이후 파일을 조작하거나 읽을 수 있게 해줍니다. + +```csharp +using Aspose.Cells; +using System.Globalization; + +// Step 1: Initialize a new workbook and grab the first worksheet +Workbook workbook = new Workbook(); // creates an empty .xlsx +Worksheet worksheet = workbook.Worksheets[0]; // the default sheet is "Sheet1" +``` + +*Why this matters:* +프로그램matically 워크북을 생성하면 테스트 중에 물리 파일을 다루는 번거로움을 피할 수 있습니다. 또한 워크시트 참조가 항상 유효하므로 **read Excel datetime** 값을 읽을 때 null‑reference 오류가 발생하지 않습니다. + +--- + +## Step 2: Write a Japanese Era Date String into a Cell + +비그레고리안 날짜 파싱을 시연하기 위해 연호 문자열을 셀 **A1**에 직접 넣습니다. + +```csharp +// Step 2: Insert a Japanese era date string into cell A1 +worksheet.Cells["A1"].PutValue("令和3年5月1日"); +``` + +*Pro tip:* 기존 워크북에서 데이터를 가져오는 경우 `PutValue` 호출을 생략하고 이미 날짜가 들어 있는 셀을 참조하면 됩니다. 핵심은 셀에 일본 음력 달력 기반의 **string** 형태 날짜가 들어 있다는 점입니다. + +--- + +## Step 3: Configure a Culture That Understands the Japanese Lunisolar Calendar + +.NET의 `CultureInfo` 클래스를 사용하면 날짜 해석 방식을 지정할 수 있습니다. 기본 그레고리안 달력을 `JapaneseLunisolarCalendar` 로 교체하면 파서가 필요한 컨텍스트를 얻게 됩니다. + +```csharp +// Step 3: Set up a culture using the Japanese lunisolar calendar +CultureInfo japaneseCulture = new CultureInfo("ja-JP"); +japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); +``` + +*Why we do this:* +기본 문화권으로 “令和3年5月1日”을 파싱하면 .NET이 `FormatException`을 발생시킵니다. 음력 달력을 지정하면 런타임이 “令和3年”(레이와 연호 3년)을 그레고리안 연도 2021년으로 정확히 매핑합니다. + +--- + +## Step 4: Parse the Cell Value as a `DateTime` Using the Configured Culture + +이제 핵심 작업인 연호 문자열을 실제 `DateTime` 객체로 변환합니다. Aspose.Cells는 `CultureInfo`를 받아들이는 편리한 `GetDateTime` 오버로드를 제공합니다. + +```csharp +// Step 4: Retrieve the cell value as a DateTime, respecting the Japanese culture +DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); +``` + +*What’s happening under the hood:* +`GetDateTime`은 원시 문자열을 읽고, 전달된 문화권의 달력 규칙을 적용해 그레고리안 달력상의 동일한 순간을 나타내는 `DateTime`을 반환합니다. 여기서 **extract datetime Excel** 데이터를 .NET에서 활용 가능한 형태로 얻는 것입니다. + +--- + +## Step 5: Output the Parsed Date in ISO 8601 Format + +마지막으로 `DateTime`을 ISO 문자열(`yyyy‑MM‑dd`)로 포맷합니다. 이 형식은 API, 데이터베이스, 프론트‑엔드 프레임워크에서 보편적으로 사용됩니다. + +```csharp +// Step 5: Print the date in ISO format (e.g., 2021-05-01) +Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // Output: 2021-05-01 +``` + +*Why ISO?* +ISO 8601은 모호성을 없애줍니다. “05/01/2021”은 지역에 따라 5월 1일 또는 1월 5일이 될 수 있지만, `2021-05-01`은 명확합니다. 그래서 거의 모든 통합 시나리오에서 **format date iso**를 사용합니다. + +--- + +## Full Working Example + +아래는 완전한 실행 가능한 프로그램입니다. 콘솔 앱 프로젝트에 복사하고 Aspose.Cells 참조를 추가한 뒤 **F5**를 눌러 실행하세요. + +```csharp +using Aspose.Cells; +using System; +using System.Globalization; + +class Program +{ + static void Main() + { + // 1️⃣ Create workbook and select the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("令和3年5月1日"); + + // 3️⃣ Set up Japanese lunisolar culture + CultureInfo japaneseCulture = new CultureInfo("ja-JP"); + japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); + + // 4️⃣ Parse the cell value as DateTime using the culture + DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); + + // 5️⃣ Output the date in ISO format + Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // 2021-05-01 + } +} +``` + +**Expected output** + +``` +2021-05-01 +``` + +한 번 실행하면 콘솔에 ISO‑포맷 날짜가 출력됩니다. 이것이 **read Excel datetime**부터 **format date iso**까지의 전체 파이프라인입니다. + +--- + +## Handling Common Edge Cases + +### 1. Cells Containing Real Excel Date Numbers + +Excel이 날짜를 일련 번호(예: `44204`)로 저장하는 경우가 있습니다. 이때는 문화권이 필요 없으며 파라미터 없이 `GetDateTime()`만 호출하면 됩니다. + +```csharp +DateTime serialDate = worksheet.Cells["B2"].GetDateTime(); // B2 holds a numeric date +Console.WriteLine(serialDate.ToString("yyyy-MM-dd")); +``` + +### 2. Blank or Invalid Cells + +셀에 값이 없거나 파싱할 수 없는 문자열이 들어 있으면 `GetDateTime`이 예외를 발생시킵니다. 호출을 `try/catch`로 감싸거나 먼저 `IsDateTime`을 확인하세요. + +```csharp +if (worksheet.Cells["C3"].Type == CellValueType.IsDateTime) +{ + DateTime safeDate = worksheet.Cells["C3"].GetDateTime(); + Console.WriteLine(safeDate.ToString("yyyy-MM-dd")); +} +else +{ + Console.WriteLine("Cell C3 does not contain a valid date."); +} +``` + +### 3. Different Era Formats + +다른 일본 연호(헤이세이, 쇼와)도 동일한 패턴을 따릅니다. 같은 `JapaneseLunisolarCalendar`가 자동으로 처리하므로 별도 로직이 필요 없으며, 문자열만 전달하면 됩니다. + +--- + +## Pro Tips & Gotchas + +- **Performance:** 대용량 스프레드시트를 처리할 때는 루프 안에서 매번 새 `CultureInfo`를 만들지 말고 하나의 인스턴스를 재사용하세요. +- **Thread Safety:** `CultureInfo` 객체는 달력을 설정한 뒤 읽기 전용이므로 여러 스레드에서 공유해도 안전합니다. +- **Aspose.Cells Licensing:** 무료 체험판을 사용한다면 체험 기간이 끝난 후 일부 기능이 제한될 수 있습니다. 여기서 보여준 날짜 파싱은 체험판과 정식 라이선스 모두에서 정상 작동합니다. +- **Time Zones:** 반환된 `DateTime`은 **unspecified**(시간대 미지정)입니다. UTC가 필요하면 `DateTime.SpecifyKind(parsedDate, DateTimeKind.Utc)`를 호출하거나 `TimeZoneInfo`를 사용해 변환하세요. + +--- + +## Conclusion + +Excel 워크북에서 C#으로 **format date iso** 하는 모든 과정을 살펴보았습니다. 일본 연호 문자열을 시작으로 **read Excel datetime**, 적절한 문화권 설정, **extract datetime excel** 데이터 추출, 최종 ISO‑8601 문자열 출력까지 단계별로 진행했습니다. 이 방법은 일련 번호, 지역별 문자열, 전통 연호 형식 등 Excel이 제공하는 어떤 날짜 표현에도 적용할 수 있습니다. + +다음 단계로는 날짜가 들어 있는 전체 열을 순회하고, ISO 결과를 새 시트에 기록하거나 웹 서비스용 JSON 페이로드에 바로 넣어보세요. 히브리력, 이슬람력 등 다른 달력 시스템에 관심이 있다면 Aspose.Cells와 .NET `CultureInfo`를 활용해 동일하게 실험해볼 수 있습니다. + +궁금한 점이나 해결되지 않는 복잡한 날짜 형식이 있으면 아래 댓글로 알려 주세요. Happy coding! + +{{< /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/korean/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md b/cells/korean/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md new file mode 100644 index 0000000000..2e88adab2f --- /dev/null +++ b/cells/korean/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md @@ -0,0 +1,249 @@ +--- +category: general +date: 2026-03-30 +description: C#에서 Aspose.Cells를 사용하여 구분 기호가 있는 숫자 서식을 지정하는 방법을 배웁니다. 사용자 지정 숫자 서식 + 설정, 천 단위 구분 기호 추가, 소수점 자리 서식 지정, 셀 서식 지정 방법을 포함합니다. +draft: false +keywords: +- format number with separator +- set custom number format +- add thousands separator +- format decimal places +- how to format cell +language: ko +og_description: C#에서 구분자를 사용해 숫자 형식 지정하기. 이 가이드는 사용자 지정 숫자 형식 설정, 천 단위 구분자 추가, 소수점 + 자리 형식 지정, 그리고 Aspose.Cells를 사용한 셀 서식 지정 방법을 보여줍니다. +og_title: C#에서 구분자를 사용한 숫자 서식 – Aspose.Cells 튜토리얼 +tags: +- C# +- Aspose.Cells +- Number Formatting +title: C#에서 구분자를 사용한 숫자 서식 지정 – 완전한 Aspose.Cells 가이드 +url: /ko/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#에서 구분 기호를 사용한 숫자 서식 지정 – 완전한 Aspose.Cells 가이드 + +스프레드시트에서 **구분 기호가 있는 숫자 서식**을 적용해야 했지만 어떤 API 호출을 사용해야 할지 몰랐던 적이 있나요? 당신만 그런 것이 아닙니다—개발자들은 데이터를 내보낼 때 천 단위 구분 기호, 소수점 자리수, 사용자 정의 패턴을 끊임없이 다루고 있습니다. + +좋은 소식: Aspose.Cells가 이를 손쉽게 해결해 줍니다. 이번 튜토리얼에서는 **사용자 정의 숫자 서식 설정**, **천 단위 구분 기호 추가**, **소수점 자리수 서식 지정**, 그리고 **셀을 문자열로 포맷하는 방법**을 실제 예제로 단계별로 살펴봅니다. 끝까지 따라오면 .NET 프로젝트 어디에든 바로 넣어 실행할 수 있는 완성된 코드 조각을 얻을 수 있습니다. + +## 이 가이드에서 다루는 내용 + +* 필요한 정확한 NuGet 패키지와 설치 방법. +* 워크북을 생성하고, 숫자 값을 기록한 뒤, 사용자 정의 서식을 적용하는 단계별 코드. +* `ExportTableOptions.ExportAsString`이 포맷된 값을 가져오는 권장 방법인 이유. +* `ExportAsString`을 활성화하지 않거나 잘못된 서식 마스크를 사용하는 등 흔히 발생하는 실수. +* 소수점 자리수나 구분 기호 스타일을 변경하고 싶을 때 서식 마스크를 조정하는 방법. + +외부 문서 링크는 필요 없습니다; 여기서 바로 모든 것을 확인할 수 있습니다. 바로 시작해 보세요. + +--- + +## 전제 조건 + +| 요구 사항 | 이유 | +|-------------|--------| +| .NET 6.0 이상 | Aspose.Cells 23.10+은 .NET Standard 2.0+을 대상으로 하므로 .NET 6은 안전하고 최신 버전입니다. | +| Visual Studio 2022 (또는 any C# IDE) | 디버깅과 패키지 관리를 손쉽게 해 줍니다. | +| Aspose.Cells for .NET NuGet 패키지 | 우리가 사용할 `Workbook`, `Worksheet`, `ExportTableOptions` 클래스를 제공합니다. | + +패키지는 Package Manager Console을 통해 설치할 수 있습니다: + +```powershell +Install-Package Aspose.Cells +``` + +이것으로 끝—추가 DLL이나 COM 인터옵이 필요 없으며, NuGet 참조 하나만 있으면 됩니다. + +--- + +## 1단계: 새 워크북 초기화 (셀 서식 지정 방법) + +먼저 새로운 `Workbook` 인스턴스를 생성합니다. 이는 데이터를 받을 준비가 된 빈 Excel 파일과 같습니다. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Create a new workbook – this is where we’ll format the cell. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **왜 중요한가:** `Workbook`은 Aspose.Cells에서 모든 작업의 진입점입니다. 첫 번째 워크시트(`Worksheets[0]`)를 가져오면 시트 이름을 지정하지 않아도 깨끗한 캔버스를 얻을 수 있습니다. + +--- + +## 2단계: 대상 셀에 숫자 값 쓰기 + +다음으로 **A1** 셀에 원시 숫자를 입력합니다. 아직 서식이 적용되지 않은 상태이며, 단순히 `double` 값입니다. + +```csharp + // Step 2: Insert a raw numeric value. + worksheet.Cells["A1"].PutValue(12345.6789); +``` + +> **프로 팁:** 나중에 숫자 서식을 적용하려면 `PutString` 대신 `PutValue`를 사용하세요. 이렇게 하면 기본 데이터 형식이 유지되어 Excel 호환 계산이 가능합니다. + +--- + +## 3단계: 사용자 정의 숫자 서식 설정 (천 단위 구분 기호 및 소수점 자리수 지정) + +이제 튜토리얼의 핵심인 서식 마스크를 정의합니다. 마스크 `#,##0.00`은 다음 세 가지 역할을 합니다: + +1. **`#,##0`** – 기본적으로 쉼표(,)를 천 단위 구분 기호로 추가합니다. +2. **`.00`** – 정확히 두 자리 소수점을 강제합니다. + +다른 소수점 자리수가 필요하면 소수점 뒤의 `0` 개수를 변경하면 됩니다. + +```csharp + // Step 3: Configure the custom number format. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, // Return the value as a formatted string. + NumberFormat = "#,##0.00" // Add thousands separator and fix to 2 decimals. + }; +``` + +> **`ExportAsString`을 사용하는 이유:** 기본적으로 `ExportString`은 원시 값을 반환합니다. `ExportAsString = true`로 설정하면 API가 `NumberFormat` 마스크를 적용한 뒤 텍스트로 변환합니다. 이는 보고서, JSON 페이로드, UI 표시 등에서 정확한 문자열 표현이 필요할 때 필수입니다. + +--- + +## 4단계: 포맷된 텍스트 내보내기 (셀 서식 지정 방법) + +옵션을 준비했으면 같은 셀에 `ExportString`을 호출합니다. 이 메서드는 방금 정의한 마스크를 적용해 깔끔한 문자열을 반환합니다. + +```csharp + // Step 4: Export the formatted value. + string formattedCellText = worksheet.Cells["A1"].ExportString(exportOptions); + + // Step 5: Show the result. + Console.WriteLine(formattedCellText); // Expected output: 12,345.68 + } +} +``` + +프로그램을 실행하면 콘솔에 **`12,345.68`**이 출력됩니다—우리가 지정한 그대로의 형식입니다. + +> **예외 상황:** 원본 숫자에 소수점 이하가 두 자리보다 많으면 마스크가 반올림합니다. 반올림 대신 절삭이 필요하면 `PutValue` 호출 전에 `Math.Truncate`로 값을 미리 처리해야 합니다. + +--- + +## 5단계: 서식 미세 조정 – 일반적인 변형 + +### 5.1 소수점 정밀도 변경 + +소수점 세 자리수가 필요하신가요? 마스크만 다음과 같이 바꾸면 됩니다: + +```csharp +NumberFormat = "#,##0.000" // → 12,345.679 +``` + +### 5.2 다른 천 단위 구분 기호 사용 + +일부 지역에서는 공백이나 마침표를 선호합니다. 문자 자체를 직접 삽입할 수 있습니다: + +```csharp +NumberFormat = "# ##0.00" // Uses a non‑breaking space as separator. +``` + +또는 워크북의 문화권 설정을 활용하세요: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("de-DE"); +NumberFormat = "#.##0,00"; // German style: 12.345,68 +``` + +### 5.3 접두사 또는 접미사 (통화, 퍼센트) + +마스크에 달러 기호나 퍼센트 기호를 바로 추가합니다: + +```csharp +NumberFormat = "$#,##0.00"; // → $12,345.68 +NumberFormat = "0.00%"; // → 1,234,568.00% +``` + +> **주의:** 마스크는 대소문자를 구분합니다. `$`와 `%`는 리터럴 기호이며, 기본 숫자 값에는 영향을 주지 않습니다. + +--- + +## 6단계: 전체 작업 예제 (복사‑붙여넣기 가능) + +아래는 새 콘솔 앱에 복사해 넣을 수 있는 완전한 프로그램입니다. 모든 단계, 주석, 최종 출력 검증이 포함되어 있습니다. + +```csharp +using System; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write raw numeric value to A1. + worksheet.Cells["A1"].PutValue(12345.6789); + + // 3️⃣ Define custom format: thousands separator + two decimals. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + NumberFormat = "#,##0.00" + }; + + // 4️⃣ Export the formatted string. + string result = worksheet.Cells["A1"].ExportString(exportOptions); + + // 5️⃣ Display the outcome. + Console.WriteLine(result); // Output: 12,345.68 + + // Optional: keep console open. + Console.WriteLine("Press any key to exit..."); + Console.ReadKey(); + } +} +``` + +프로그램을 실행(`dotnet run`을 터미널에서 입력하거나 Visual Studio에서 F5)하면 위와 동일하게 포맷된 숫자가 출력됩니다. + +--- + +## 자주 묻는 질문 (FAQ) + +**Q: 오래된 Excel 버전에서도 작동하나요?** +A: 네. 서식 마스크는 Excel 고유의 숫자 서식 구문을 따르므로 `#,##0.00`을 이해하는 모든 버전에서 동일한 문자열을 표시합니다. + +**Q: 여러 셀 범위에 서식을 적용하려면 어떻게 해야 하나요?** +A: 원하는 범위를 순회하면서 각 셀에 동일한 `ExportTableOptions`를 적용하거나, 범위에 `Style.Custom` 속성을 설정한 뒤 단일 셀에 `ExportString`을 호출하면 됩니다. + +**Q: 이러한 서식을 적용한 상태로 CSV에 직접 내보낼 수 있나요?** +A: 물론 가능합니다. 각 셀에 서식을 지정한 뒤 `Workbook.Save("output.csv", SaveFormat.CSV);`를 사용하면 Aspose.Cells가 셀 `Style`을 존중하여 CSV를 생성합니다. + +--- + +## 결론 + +우리는 C#에서 Aspose.Cells를 사용해 **구분 기호가 있는 숫자 서식**을 적용하는 방법을 살펴보았습니다. 여기에는 **사용자 정의 숫자 서식 설정**, **천 단위 구분 기호 추가**, **소수점 자리수 지정**, 그리고 문자열 내보내기를 위한 **셀 서식 지정 방법**이 모두 포함됩니다. 코드는 완전히 독립적이며 .NET 6+에서 동작하고, 어떤 지역이나 정밀도 요구에도 쉽게 적용할 수 있습니다. + +다음 단계로 살펴볼 내용: + +* 날짜와 시간에도 동일한 기법 적용 (`NumberFormat = "dd‑MMM‑yyyy"`). +* 각 열마다 다른 마스크가 필요한 대량 내보내기 자동화. +* Aspose.Words와 연계해 포맷된 문자열을 PDF 보고서에 삽입. + +시도해 보시고 팀 내 스프레드시트 서식 담당자로 빠르게 자리매김하세요. Happy coding! (Image: ![Aspose.Cells에서 구분 기호가 포함된 형식화된 숫자 스크린샷](image-placeholder.png){alt="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/korean/net/excel-data-import-export/_index.md b/cells/korean/net/excel-data-import-export/_index.md index 4001507192..8c0caaaba9 100644 --- a/cells/korean/net/excel-data-import-export/_index.md +++ b/cells/korean/net/excel-data-import-export/_index.md @@ -32,6 +32,10 @@ Aspose.Cells for .NET을 사용하여 Excel 데이터 조작을 마스터하는 이 쉽게 따라할 수 있는 튜토리얼을 통해 Aspose.Cells for .NET을 사용하여 사용자 지정 DB Num 서식으로 Excel로 데이터를 가져오는 방법을 알아보세요. ### [Excel에 데이터 테이블 행을 삽입할 때 첫 번째 행을 아래로 이동](./shift-first-row-down-when-inserting-cells-datatable-rows-in-excel/) Aspose.Cells for .NET을 사용하여 첫 번째 행을 아래로 이동하지 않고 Excel에 DataTable 행을 삽입하는 방법을 알아보세요. 간편한 자동화를 위한 단계별 가이드입니다. +### [C#으로 Excel 워크북 만들기 – JSON 삽입 및 XLSX로 저장](./create-excel-workbook-c-insert-json-and-save-as-xlsx/) +Aspose.Cells for .NET을 사용하여 C#에서 JSON 데이터를 Excel 워크북에 삽입하고 XLSX 파일로 저장하는 방법을 단계별로 안내합니다. +### [C#으로 Excel 워크북 만들기 – 통화 형식 적용 및 DataTable 가져오기](./create-excel-workbook-c-apply-currency-format-and-import-dat/) +Aspose.Cells for .NET을 사용하여 C#에서 통화 형식을 적용하고 DataTable을 Excel 워크북에 삽입하는 방법을 단계별로 안내합니다. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/korean/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md b/cells/korean/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md new file mode 100644 index 0000000000..0c915f3819 --- /dev/null +++ b/cells/korean/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md @@ -0,0 +1,283 @@ +--- +category: general +date: 2026-03-30 +description: C#로 통화 서식이 적용된 Excel 워크북 만들기. DataTable을 가져오고, Excel에 숫자 서식을 추가하고, 몇 + 분 안에 통화 서식 열을 적용하는 방법을 배워보세요. +draft: false +keywords: +- create excel workbook c# +- format cells currency +- import datatable to excel +- add number format excel +- apply currency format column +language: ko +og_description: C#로 Excel 워크북을 만들고 셀을 즉시 통화 형식으로 지정하세요. 이 단계별 튜토리얼에서는 DataTable을 Excel로 + 가져오고 열에 숫자 형식을 추가하는 방법을 보여줍니다. +og_title: C#로 Excel 워크북 만들기 – 통화 서식 가이드 +tags: +- Aspose.Cells +- C# +- Excel automation +title: C#로 Excel 워크북 만들기 – 통화 형식 적용 및 DataTable 가져오기 +url: /ko/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel 워크북 만들기 C# – 통화 형식 적용 및 DataTable 가져오기 + +Ever needed to **create Excel workbook C#** that already looks like a polished report? Maybe you’re pulling sales numbers from a database and you want the price column to show as dollars without fiddling with Excel manually. Sound familiar? You’re not alone—most developers hit this snag when they first automate Excel exports. + +In this guide we’ll walk through a complete, ready‑to‑run solution that **creates an Excel workbook C#**, imports a `DataTable`, and **formats the Price column as currency**. By the end you’ll have a file called `StyledTable.xlsx` that you can open and see nicely formatted numbers. No extra post‑processing required. + +> **What you’ll learn** +> - How to set up Aspose.Cells in a .NET project +> - How to **import datatable to excel** with a style array +> - How to **add number format excel** for a specific column +> - Tips for handling more columns or different locales + +> **Prerequisites** +> - .NET 6+ (or .NET Framework 4.6+) installed +> - Aspose.Cells for .NET NuGet package (`Install-Package Aspose.Cells`) +> - Basic familiarity with C# and DataTables + +--- + +## Step 1: Prepare the DataTable (import datatable to excel) + +First, we need some sample data. In a real‑world app you’d likely fill this table from a DB query, but a hard‑coded example keeps things simple. + +```csharp +using System.Data; + +// Create a DataTable with two columns: Product (string) and Price (double) +DataTable dataTable = new DataTable(); +dataTable.Columns.Add("Product", typeof(string)); +dataTable.Columns.Add("Price", typeof(double)); + +// Add a few rows – you can add as many as you like +dataTable.Rows.Add("Apple", 1.23); +dataTable.Rows.Add("Banana", 0.78); +dataTable.Rows.Add("Cherry", 2.50); +``` + +*Why this matters*: The `DataTable` is the bridge between your business data and the Excel file. Aspose.Cells can import it directly, preserving column names and data types. + +--- + +## Step 2: Spin Up a New Workbook (create excel workbook c#) + +Now we create the actual Excel file object. Think of it as the blank canvas you’ll paint on. + +```csharp +using Aspose.Cells; + +// Instantiate a fresh workbook – this is the core of create excel workbook c# +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0). You could also add more sheets later. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Pro tip:** If you need multiple sheets, call `workbook.Worksheets.Add()` and give each a meaningful name. + +--- + +## Step 3: Define a Currency Style (format cells currency) + +Aspose.Cells lets you craft a `Style` object that describes how cells should look. For currency we use the built‑in number format ID 164 (`"$#,##0.00"`). + +```csharp +// Create a new style object for the price column +Style priceStyle = workbook.CreateStyle(); +priceStyle.Number = 164; // Built‑in currency format "$#,##0.00" +``` + +*Why not just set the format string?* Using the built‑in ID ensures compatibility across Excel versions and avoids locale‑specific quirks. + +--- + +## Step 4: Build the Style Array (apply currency format column) + +When importing a `DataTable`, you can pass an array of `Style` objects—one per column. `null` means “use the default style”. Here we apply `priceStyle` only to the second column. + +```csharp +// Column 0 (Product) gets the default style, Column 1 (Price) gets the currency style +Style[] columnStyles = { null, priceStyle }; +``` + +If you later add more columns, just extend the array accordingly. The length of `columnStyles` must match the number of columns you’re importing, otherwise Aspose will throw an exception. + +--- + +## Step 5: Import the DataTable with Styles (import datatable to excel) + +Now the magic happens—our `DataTable` lands in the worksheet, and the price column instantly shows as currency. + +```csharp +// Parameters: +// - dataTable: source data +// - true: include column headers +// - startRow: 0 (top of sheet) +// - startColumn: 0 (first column) +// - columnStyles: style array defined above +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +*What if you have more than two columns?* Just expand `columnStyles` so each column gets the appropriate style (or `null` for default). This is the cleanest way to **add number format excel** selectively. + +--- + +## Step 6: Save the Workbook (create excel workbook c#) + +Finally, we write the file to disk. Choose any folder you have write access to. + +```csharp +// Save the workbook as an XLSX file +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +Open `StyledTable.xlsx` in Excel and you should see: + +| Product | Price | +|---------|-------| +| Apple | $1.23 | +| Banana | $0.78 | +| Cherry | $2.50 | + +The **Price** column is already formatted as currency—no extra steps needed. + +--- + +## Edge Cases & Variations + +### More Columns, Different Formats + +If you need to **format cells currency** for several columns (e.g., Cost, Tax, Total), create a separate `Style` for each and populate `columnStyles` accordingly: + +```csharp +Style costStyle = workbook.CreateStyle(); +costStyle.Number = 164; // currency + +Style taxStyle = workbook.CreateStyle(); +taxStyle.Number = 164; + +// Assuming columns: Product, Cost, Tax, Total +Style[] styles = { null, costStyle, taxStyle, priceStyle }; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, styles); +``` + +### Locale‑Specific Currency + +For Euro or British Pound, use different built‑in IDs (e.g., 165 for `€#,##0.00`). Alternatively, set a custom format string: + +```csharp +priceStyle.Custom = "€#,##0.00"; +``` + +### Large Data Sets + +Aspose.Cells can handle millions of rows, but memory consumption grows with style objects. Reuse a single `Style` instance for all currency columns to keep the footprint low. + +### Missing Styles + +If `columnStyles` is shorter than the number of columns, Aspose will apply the default style to the remaining columns. This is handy when you only care about a few columns. + +--- + +## Full Working Example (All Steps Combined) + +Below is the complete program you can copy‑paste into a console app. It includes all the pieces we discussed, plus a few helpful comments. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // Step 1: Build sample DataTable (import datatable to excel) + // ------------------------------------------------- + DataTable dataTable = new DataTable(); + dataTable.Columns.Add("Product", typeof(string)); + dataTable.Columns.Add("Price", typeof(double)); + dataTable.Rows.Add("Apple", 1.23); + dataTable.Rows.Add("Banana", 0.78); + dataTable.Rows.Add("Cherry", 2.50); + // You can add as many rows as you like here. + + // ------------------------------------------------- + // Step 2: Create a new workbook (create excel workbook c#) + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // Step 3: Define a currency style (format cells currency) + // ------------------------------------------------- + Style priceStyle = workbook.CreateStyle(); + priceStyle.Number = 164; // "$#,##0.00" – built‑in currency format + + // ------------------------------------------------- + // Step 4: Build the style array (apply currency format column) + // ------------------------------------------------- + // First column gets default style (null), second column uses priceStyle. + Style[] columnStyles = { null, priceStyle }; + + // ------------------------------------------------- + // Step 5: Import the DataTable with the style array + // ------------------------------------------------- + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // ------------------------------------------------- + // Step 6: Save the workbook to disk + // ------------------------------------------------- + string outputPath = @"YOUR_DIRECTORY\StyledTable.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } +} +``` + +**Expected result:** Opening `StyledTable.xlsx` shows the `Price` column with a dollar sign and two decimal places, exactly as the `format cells currency` instruction demanded. + +--- + +## Frequently Asked Questions + +**Q: Does this work with .NET Core?** +A: Absolutely. Aspose.Cells is .NET‑standard compliant, so you can target .NET 5, .NET 6, or later without changes. + +**Q: What if my DataTable has 10 columns but I only want to format column 5?** +A: Create a `Style[]` of length 10, fill positions 0‑4 and 6‑9 with `null`, and put your custom style at index 4 (zero‑based). Aspose will respect each entry. + +**Q: Can I hide the header row?** +A: After import, set `worksheet.Cells.Rows[0].Hidden = true;` or simply pass `false` for the `includeColumnNames` parameter in `ImportDataTable`. + +--- + +## Conclusion + +We’ve just **created an Excel workbook C#**, imported a `DataTable`, and **applied a currency format column** using Aspose.Cells. The primary steps—preparing data, defining a style, building a style array, importing with `ImportDataTable`, and saving—cover the core of most Excel‑automation tasks. + +From here you might explore: + +- **add number format excel** for dates or percentages +- Exporting multiple worksheets in a single file +- Using **format cells currency** with locale‑specific symbols +- Automating chart creation based on the same data + +Give those a try, and you’ll quickly become the go‑to person for Excel reporting in your team. Got a twist you’d like to share? Drop a comment below—happy coding! + +![create excel workbook c# screenshot](image.png "create excel workbook c#") + +{{< /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/korean/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md b/cells/korean/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md new file mode 100644 index 0000000000..fc443293b3 --- /dev/null +++ b/cells/korean/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md @@ -0,0 +1,251 @@ +--- +category: general +date: 2026-03-30 +description: C#를 사용해 JSON 데이터를 삽입하고 워크북을 XLSX 형식으로 저장하여 Excel 워크북을 빠르게 만들기. JSON에서 + Excel을 생성하고, JSON을 Excel에 쓰는 방법 및 JSON을 Excel에 삽입하는 방법을 배워보세요. +draft: false +keywords: +- create excel workbook c# +- save workbook as xlsx +- generate excel from json +- write json to excel +- insert json into excel +language: ko +og_description: JSON 데이터를 삽입하고 워크북을 XLSX 형식으로 저장하여 C#으로 Excel 워크북을 빠르게 만들세요. JSON에서 + Excel을 생성하는 단계별 가이드를 따라보세요. +og_title: C#로 Excel 워크북 만들기 – JSON 삽입 및 XLSX로 저장 +tags: +- Aspose.Cells +- C# +- Excel automation +title: C#로 Excel 워크북 만들기 – JSON 삽입 및 XLSX로 저장 +url: /ko/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel 워크북 만들기 C# – JSON 삽입 및 XLSX로 저장 + +Excel 워크북을 C#으로 **create Excel workbook C#**하고 JSON을 바로 셀에 넣어야 했던 적이 있나요? 당신만 그런 것이 아닙니다—개발자들은 종종 API 페이로드나 설정 파일을 보고서나 공유를 위해 스프레드시트에 넣어야 할 때 같은 문제에 직면합니다. + +좋은 소식은 Aspose.Cells를 사용하면 몇 줄만으로도 **save workbook as XLSX**를 수행하고 전체 과정을 타입‑안전하게 유지할 수 있다는 것입니다. 이 튜토리얼에서는 **generate Excel from JSON**, **write JSON to Excel**을 수행하고, **insert JSON into Excel**을 위한 정확한 단계를 보여드리겠습니다. 복잡한 문자열 연결 없이도 가능합니다. + +## 이 가이드에서 다루는 내용 + +다음 순서대로 진행합니다: + +1. 새 워크북 설정하기. +2. JSON을 기대하는 Smart Marker 추가하기. +3. 마커에 JSON 배열 전달하기. +4. `SmartMarkerOptions`를 조정해 JSON이 한 셀에 머물도록 하기. +5. 파일을 XLSX 워크북으로 저장하기. + +끝까지 진행하면 바로 사용할 수 있는 `JsonSingleCell.xlsx` 파일과 모든 JSON‑to‑Excel 시나리오에 재사용 가능한 견고한 패턴을 얻게 됩니다. 외부 서비스 없이 순수 C#과 Aspose.Cells 라이브러리만으로 구현합니다. + +**Prerequisites** + +- .NET 6+ (또는 .NET Framework 4.6+). +- Visual Studio 2022 또는 C# 호환 IDE. +- NuGet 패키지 `Aspose.Cells` (무료 체험 또는 정식 라이선스). + +위 조건을 갖추셨다면, 별도 설정 없이 바로 시작해 보세요. + +--- + +## Step 1: Create a New Workbook in C# + +먼저 빈 워크북 객체가 필요합니다. 이는 데이터를 기다리는 새로운 Excel 파일이라고 생각하면 됩니다. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is your empty Excel file +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; +``` + +**Why this matters:** +`Workbook`은 모든 Excel 작업의 진입점입니다. 먼저 이를 생성함으로써 이후 **save workbook as xlsx** 호출이 직렬화할 구체적인 객체를 갖게 됩니다. + +> **Pro tip:** 여러 시트를 사용할 계획이라면 `workbook.Worksheets.Add()`로 지금 추가할 수 있습니다. + +--- + +## Step 2: Place a Smart Marker that Expects JSON + +Smart Marker는 Aspose.Cells가 런타임에 교체하는 자리표시자입니다. 여기서는 `data`라는 이름의 JSON 문자열을 찾도록 지정합니다. + +```csharp +// Put a Smart Marker in cell A1 – {{data:json}} tells Aspose to expect JSON +worksheet.Cells["A1"].PutValue("{{data:json}}"); +``` + +**Why this matters:** +`:json` 접미사는 엔진에 전달되는 값이 일반 텍스트가 아니라 JSON임을 알려줍니다. 이는 **write json to excel**을 수동 파싱 없이 수행하는 핵심입니다. + +--- + +## Step 3: Define the JSON Array + +이제 삽입할 JSON을 작성합니다. 예시로 간단한 사람 목록을 사용합니다. + +```csharp +// Sample JSON array – could come from an API, file, or DB +string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; +``` + +**Edge case:** +JSON에 큰따옴표가 포함되어 있다면 (예시와 같이) 이스케이프하거나, 컴파일 오류를 방지하기 위해 verbatim 문자열(`@"..."`)을 사용할 수 있습니다. + +--- + +## Step 4: Configure Smart Marker Options – Keep the Array Whole + +기본적으로 Aspose는 배열을 행으로 확장하려고 합니다. 우리는 전체 JSON 문자열이 하나의 셀에 머물기를 원합니다. 이는 **insert json into excel** 시나리오에서 소비자가 나중에 JSON을 파싱할 때 이상적입니다. + +```csharp +SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions +{ + // Treat the whole array as a single cell value + ArrayAsSingle = true +}; +``` + +**Why this matters:** +`ArrayAsSingle = true`는 행 확장을 방지하고, 깔끔한 단일 셀 JSON 블롭을 제공합니다. 스프레드시트가 보고서가 아니라 전송 포맷일 때 필수적인 설정입니다. + +--- + +## Step 5: Process the Smart Marker with the JSON Data + +이제 JSON을 마커에 바인딩하고 Aspose에게 작업을 맡깁니다. + +```csharp +// Process the marker – the anonymous object maps "data" to our JSON string +worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); +``` + +**What happens under the hood:** +Aspose는 자리표시자 `{{data:json}}`를 평가하고, `jsonData` 문자열을 직렬화한 뒤 옵션에 맞춰 셀 A1에 기록합니다. + +--- + +## Step 6: Save the Workbook as an XLSX File + +마지막으로 워크북을 디스크에 기록합니다. 여기서 **save workbook as xlsx**가 실제로 작동합니다. + +```csharp +// Save the workbook – the extension determines the format (XLSX here) +workbook.Save("JsonSingleCell.xlsx"); +``` + +**Result:** +Excel에서 `JsonSingleCell.xlsx`를 열면 정의한 JSON 배열이 셀 A1에 깔끔히 들어 있는 것을 확인할 수 있습니다. + +--- + +## Full, Runnable Example + +아래는 콘솔 앱에 복사‑붙여넣기만 하면 바로 실행되는 전체 프로그램입니다. 앞서 설명한 모든 단계를 포함하고 있으며, Aspose.Cells NuGet 패키지가 설치되어 있으면 바로 동작합니다. + +```csharp +using System; +using Aspose.Cells; + +namespace JsonToExcelDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add a Smart Marker that expects JSON + worksheet.Cells["A1"].PutValue("{{data:json}}"); + + // 3️⃣ Define the JSON array + string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; + + // 4️⃣ Configure options – keep array as a single cell value + SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions + { + ArrayAsSingle = true + }; + + // 5️⃣ Process the marker with the JSON payload + worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); + + // 6️⃣ Save the workbook as XLSX + workbook.Save("JsonSingleCell.xlsx"); + + Console.WriteLine("Excel file created successfully! Check JsonSingleCell.xlsx."); + } + } +} +``` + +**Expected output in Excel** + +| A | +|---| +| `[{"Name":"John","Age":30},{"Name":"Jane","Age":28}]` | + +이 단일 셀은 이제 다운스트림 처리에 사용할 수 있는 완전한 JSON 배열을 담고 있습니다. + +--- + +## Common Questions & Edge Cases + +### What if I need the JSON spread across rows? + +`ArrayAsSingle = false`(기본값)로 설정하면 Aspose가 배열 요소마다 행을 생성하고 객체 속성을 열에 매핑합니다. 이는 원시 JSON 문자열 대신 표 형태로 보고 싶을 때 유용합니다. + +### Can I use a JSON file instead of a hard‑coded string? + +물론 가능합니다. 파일을 문자열로 읽어들입니다: + +```csharp +string jsonData = File.ReadAllText("people.json"); +``` + +그 후 동일한 `Process` 호출에 `jsonData`를 전달하면 됩니다. 파이프라인의 나머지 부분은 그대로 유지됩니다. + +### Does this work with large JSON payloads? + +예, 하지만 메모리 사용량을 주시하세요. 대용량 배열의 경우 스트리밍을 고려하거나 (`ArrayAsSingle = false`) 직접 행에 기록하여 Excel이 거대한 단일 셀을 처리하지 못하는 상황을 피할 수 있습니다. + +### Is the generated XLSX compatible with older Excel versions? + +`.xlsx` 포맷은 Office Open XML 기반이며 Excel 2007 이후 버전에서 작동합니다. 레거시 `.xls` 포맷이 필요하면 저장 호출을 다음과 같이 변경하면 됩니다: + +```csharp +workbook.Save("JsonSingleCell.xls", SaveFormat.Excel97To2003); +``` + +--- + +## Pro Tips for Working with JSON and Excel + +- **Validate JSON first** – `System.Text.Json.JsonDocument.Parse(jsonData)`를 사용해 입력이 올바른지 미리 확인합니다. +- **Escape special characters** – JSON에 줄바꿈이 포함되어 있으면 셀에 리터럴 `\n`으로 표시됩니다. 처리 전에 `Environment.NewLine`으로 교체하면 가독성이 향상됩니다. +- **Reuse Smart Markers** – 같은 시트에 여러 마커를 배치하고 각각 다른 JSON 속성을 가리키게 할 수 있습니다. +- **Combine with formulas** – JSON이 셀에 들어간 뒤, 최신 Excel에서는 `FILTERXML` 함수를 이용해 셀 내 JSON을 즉시 파싱할 수 있습니다. + +--- + +## Conclusion + +이제 **create excel workbook c#**, JSON 페이로드 삽입, 그리고 **save workbook as xlsx**를 Aspose.Cells로 구현하는 방법을 알게 되었습니다. 이 패턴을 활용하면 **generate excel from json**, **write json to excel**, **insert json into excel**을 몇 줄의 코드만으로 손쉽게 수행할 수 있어 서비스와 분석가 간 데이터 교환이 훨씬 간편해집니다. + +다음 단계에 도전해 보세요: `ArrayAsSingle = false`로 설정해 JSON 배열을 표 형태로 변환하거나, 삽입 후 시트 스타일을 적용해 보세요. 동일한 접근 방식은 CSV, XML, 혹은 사용자 정의 객체에도 적용할 수 있습니다—Smart Marker 유형만 적절히 바꾸면 됩니다. + +즐거운 코딩 되시고, 궁금한 점이 있으면 댓글을 남기거나 Aspose 공식 문서를 참고해 깊이 있게 파고들어 보세요. + +{{< /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/korean/net/excel-workbook/_index.md b/cells/korean/net/excel-workbook/_index.md index e65341fb48..e1c7335a2d 100644 --- a/cells/korean/net/excel-workbook/_index.md +++ b/cells/korean/net/excel-workbook/_index.md @@ -86,6 +86,7 @@ Excel 실력을 향상시킬 이 기회를 놓치지 마세요! 각 튜토리얼 | [통합 문서 인쇄 미리보기](./workbook-print-preview/) | Aspose.Cells for .NET을 사용하여 Excel 파일의 인쇄 미리보기를 만드는 방법을 알아보세요. 자세하고 따라하기 쉬운 튜토리얼을 통해 코딩 단계를 익혀보세요. | | [콘텐츠 유형 속성 작업](./working-with-content-type-properties/) | Aspose.Cells for .NET을 사용하여 콘텐츠 유형 속성을 처리하고 향상된 Excel 메타데이터 관리를 구현하는 방법을 알아보세요. 이 간단한 단계별 가이드를 따라 해 보세요. | | [Xades 서명 지원](./xades-signature-support/) | Aspose.Cells for .NET을 사용하여 Excel 파일에 Xades 서명을 추가하는 방법을 단계별 가이드를 통해 알아보세요. 문서를 안전하게 보호하세요. | +| [C#에서 마스터 시트 만들기 – Aspose.Cells 완전 가이드](./create-master-sheet-in-c-complete-aspose-cells-guide/) | Aspose.Cells for .NET을 사용하여 C#에서 마스터 시트를 만드는 방법을 단계별 가이드를 통해 알아보세요. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/korean/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md b/cells/korean/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md new file mode 100644 index 0000000000..1603d5a36b --- /dev/null +++ b/cells/korean/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md @@ -0,0 +1,244 @@ +--- +category: general +date: 2026-03-30 +description: C#에서 Aspose.Cells를 사용하여 마스터 시트를 생성합니다. Excel 워크북을 C#으로 만드는 방법, 중복 시트 + 이름 허용 및 워크북을 XLSX 형식으로 저장하는 방법을 몇 단계만에 배워보세요. +draft: false +keywords: +- create master sheet +- create excel workbook c# +- save workbook as xlsx +- allow duplicate sheet names +language: ko +og_description: Aspose.Cells를 사용하여 C#에서 마스터 시트를 만들기. 이 가이드는 C#에서 Excel 워크북을 생성하고, + 중복 시트 이름을 허용하며, 워크북을 XLSX 형식으로 저장하는 방법을 보여줍니다. +og_title: C#에서 마스터 시트 만들기 – 완전한 Aspose.Cells 가이드 +tags: +- Aspose.Cells +- C# +- Excel automation +title: C#에서 마스터 시트 만들기 – 완전 Aspose.Cells 가이드 +url: /ko/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#에서 마스터 시트 만들기 – 완전한 Aspose.Cells 가이드 + +Excel 파일에서 **마스터 시트**를 만들어야 했지만, 같은 기본 이름을 공유하는 여러 상세 시트를 어떻게 처리해야 할지 몰랐던 적이 있나요? 당신만 그런 것이 아닙니다. 많은 보고 시나리오에서 수십 개의 상세 탭이 생기며, 대부분의 라이브러리는 두 시트가 동일한 이름이 될 경우 예외를 발생시킵니다. + +다행히도 Aspose.Cells를 사용하면 **마스터 시트**를 만들고, 엔진을 **중복 시트 이름 허용**하도록 구성한 뒤 **워크북을 XLSX로 저장**하는 작업을 깔끔한 C# 코드만으로 손쉽게 할 수 있습니다. 이 튜토리얼에서는 완전하게 실행 가능한 예제를 단계별로 살펴보고, 각 라인의 의미를 설명하며, 바로 프로젝트에 적용할 수 있는 팁을 몇 가지 제공합니다. + +> **얻을 수 있는 내용** +> * Aspose.Cells를 사용하여 **C# 스타일의 Excel 워크북 만들기** 방법. +> * 각 데이터 행마다 상세 시트를 생성하는 스마트‑마커 삽입 방법. +> * `DetailSheetNewName = DuplicateAllowed` 설정으로 라이브러리가 자동으로 숫자 접미사를 추가하도록 하는 방법. +> * 추가 단계 없이 디스크에 **워크북을 XLSX로 저장**하는 방법. + +외부 문서는 필요 없습니다—필요한 모든 것이 여기 있습니다. + +--- + +## 사전 요구 사항 + +시작하기 전에 다음이 준비되어 있는지 확인하세요: + +| 요건 | 중요한 이유 | +|------|--------------| +| .NET 6.0 이상 (또는 .NET Framework 4.7+) | Aspose.Cells 23.x+가 이 런타임을 대상으로 합니다. | +| Visual Studio 2022 (또는 any C# IDE) | 프로젝트 생성 및 디버깅을 쉽게 하기 위해. | +| Aspose.Cells for .NET NuGet 패키지 (`Install-Package Aspose.Cells`) | 스마트‑마커 기능을 제공하는 라이브러리. | +| 기본 C# 지식 | 별도의 강의 없이도 문법을 이해할 수 있습니다. | + +이 중 하나라도 부족하다면 지금 바로 추가하세요—반쯤 준비된 환경으로 진행할 의미가 없습니다. + +--- + +## 단계 1: Aspose.Cells로 마스터 시트 만들기 + +먼저 `Workbook` 객체를 인스턴스화하여 **C# 스타일의 Excel 워크북 만들기**를 수행합니다. 이 객체에는 기본 워크시트가 이미 포함되어 있으며, 이를 “Master”로 이름을 바꾸고 모든 상세 페이지의 템플릿으로 사용합니다. + +```csharp +using Aspose.Cells; + +// Step 1: Initialise a new workbook – this automatically gives us one sheet +Workbook workbook = new Workbook(); + +// Grab the first (and only) worksheet that comes with a fresh workbook +Worksheet masterSheet = workbook.Worksheets[0]; + +// Give it a meaningful name – this will be our master sheet +masterSheet.Name = "Master"; +``` + +*시트를 이름을 바꾸는 이유는?* +“Sheet1” 같은 기본 이름은 의도를 전달하지 못하고, 파일을 살펴볼 때 마스터 탭을 즉시 인식하기 어렵습니다. 이름을 지정하면 나중에 시트를 추가할 때 우연한 충돌을 방지할 수도 있습니다. + +--- + +## 단계 2: 상세 시트를 생성할 스마트‑마커 준비하기 + +스마트‑마커는 Aspose.Cells가 런타임에 데이터를 삽입하는 자리표시자입니다. 셀 **A1**에 `{{#detail:DataSheetName}}`를 넣으면 엔진에 “데이터 소스의 각 레코드마다 `DataSheetName` 필드 값을 이름으로 하는 새로운 시트를 생성하라”는 지시를 내리는 것입니다. + +```csharp +// Step 2: Insert a smart‑marker into cell A1. +// The marker #detail tells Aspose.Cells to generate a new sheet per data row. +masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); +``` + +마커를 워크시트에 붙어 있는 작은 지시 카드라고 생각하세요. 프로세서가 실행되면 카드를 읽고 데이터 소스에서 해당 값을 가져와 마스터 시트를 복제하여 새로운 탭을 만듭니다. + +--- + +## 단계 3: 데이터 소스 구축 – 의도적으로 중복 시트 이름 만들기 + +실제 환경에서는 데이터베이스에서 가져올 수 있지만, 데모에서는 메모리 내 익명 객체 배열을 사용합니다. 두 항목 모두 동일한 기본 이름 `"Detail"`을 사용한다는 점에 주목하세요; 이 경우 **중복 시트 이름 허용**이 매우 중요해집니다. + +```csharp +// Step 3: Create a data source with two items that share the same base sheet name. +var dataSource = new[] +{ + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } +}; +``` + +특별한 옵션 없이 시도하면 두 번째 반복에서 “Detail”이라는 시트가 이미 존재한다는 예외가 발생합니다. 그래서 다음 단계가 중요한 것입니다. + +--- + +## 단계 4: 중복 시트 이름 활성화 + +Aspose.Cells는 `SmartMarkerOptions.DetailSheetNewName`을 제공합니다. 이를 `DetailSheetNewName.DuplicateAllowed`로 설정하면 이름 충돌이 발생할 때마다 엔진이 자동으로 숫자 접미사(예: “Detail_1”)를 추가합니다. + +```csharp +// Step 4: Configure SmartMarker options to permit duplicate sheet names. +var smartMarkerOptions = new SmartMarkerOptions +{ + // This makes the library rename clashes to "Detail_1", "Detail_2", etc. + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed +}; +``` + +*각 행에 고유 이름을 수동으로 지정하지 않는 이유는?* +소스 데이터가 고유성을 보장하지 않는 경우가 많으며, 특히 사용자가 자유 형식 텍스트를 입력할 때 그렇습니다. 라이브러리가 접미사를 처리하도록 하면 전체적인 버그 유형을 제거할 수 있습니다. + +--- + +## 단계 5: 스마트‑마커 처리 및 상세 시트 생성 + +이제 `SmartMarkers.Process`를 호출하면서 데이터 소스와 방금 설정한 옵션을 전달합니다. 이 메서드는 각 항목을 순회하면서 마스터 시트를 복제하고, 복제본을 `DataSheetName` 필드에 따라 (필요 시 접미사와 함께) 이름을 바꿉니다. + +```csharp +// Step 5: Run the smart‑marker processor – this creates the detail sheets. +masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); +``` + +이 라인을 실행하면 워크북에 세 개의 탭이 생깁니다: + +1. **Master** – 원본 템플릿. +2. **Detail** – 첫 번째 생성된 시트(접미사 없음). +3. **Detail_1** – 두 번째 생성된 시트(자동으로 접미사 추가). + +Excel에서 파일을 열어 보면 두 개의 상세 시트가 나란히 표시되는 것을 확인할 수 있습니다. + +--- + +## 단계 6: 워크북을 XLSX 파일로 저장 + +마지막으로 파일을 디스크에 저장합니다. `.xlsx` 확장자를 지정하면 `Save` 메서드가 자동으로 XLSX 형식을 선택합니다. + +```csharp +// Step 6: Persist the workbook – this is the moment we finally “save workbook as XLSX”. +string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; +workbook.Save(outputPath); +``` + +**프로 팁:** 파일을 웹 응답(예: ASP.NET Core)으로 직접 스트리밍해야 할 경우 파일 경로 대신 `workbook.Save(stream, SaveFormat.Xlsx)`를 사용하세요. + +--- + +## 전체 작업 예제 + +아래는 완전하고 바로 실행 가능한 프로그램입니다. 콘솔 앱에 복사·붙여넣기하고 F5를 눌러 실행한 뒤 생성된 파일을 열어 결과를 확인하세요. + +```csharp +using System; +using Aspose.Cells; + +namespace MasterSheetDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook and rename the default sheet to "Master" + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert a smart‑marker that will generate a detail sheet per data row + masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); + + // 3️⃣ Prepare a data source where two rows share the same sheet name + var dataSource = new[] + { + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } + }; + + // 4️⃣ Allow duplicate sheet names – the library will add "_1", "_2", … + var smartMarkerOptions = new SmartMarkerOptions + { + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed + }; + + // 5️⃣ Process the smart‑markers; this creates the detail sheets + masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); + + // 6️⃣ Save the workbook as an XLSX file + string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**예상 결과:** `DuplicateDetailSheets.xlsx` 파일을 열면 `Master`, `Detail`, `Detail_1` 세 개의 워크시트가 표시됩니다. 각 상세 시트는 마스터 시트와 정확히 동일하며, 이후 행별 데이터를 채울 준비가 되어 있습니다. + +--- + +## 일반적인 질문 및 엣지 케이스 + +### 두 개 이상의 중복 시트가 필요하면 어떻게 하나요? + +문제 없습니다. 동일한 `DuplicateAllowed` 설정이 `Detail_2`, `Detail_3` … 와 같이 순차적인 숫자를 계속 붙여 각 행마다 별도의 탭을 만들게 됩니다. + +### 접미사 형식을 커스터마이즈할 수 있나요? + +기본적으로 Aspose.Cells는 언더스코어와 숫자 인덱스를 사용합니다. 다른 패턴(예: “Detail‑A”, “Detail‑B”)이 필요하면 `Process` 실행 후 워크북을 후처리하여 `workbook.Worksheets`를 순회하면서 원하는 대로 이름을 바꿔야 합니다. + +### 대규모 데이터 세트(수백 행)에도 이 방법이 적용되나요? + +네, 하지만 메모리 사용량을 주시해야 합니다. 생성된 각 시트는 마스터의 전체 복사본이므로 행 수가 많아지면 파일 크기가 급격히 커집니다. 시트당 몇 개의 행만 필요하다면 `SmartMarkerOptions.RemoveEmptyRows = true`를 사용해 불필요한 셀을 제거하는 것을 고려하세요. + +### 생성된 파일이 실제 XLSX 파일인가요? + +물론입니다. `Save` 메서드는 Excel이 기대하는 Open XML 패키지를 작성합니다. LibreOffice나 Google Sheets에서도 별도의 변환 없이 파일을 열 수 있습니다. + +--- + +## 프로덕션 수준 코드 팁 + +| 팁 | 중요한 이유 | +|-----|----------------| +| **Dispose `Workbook + +{{< /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/korean/net/formulas-functions/_index.md b/cells/korean/net/formulas-functions/_index.md index 061487aa00..7bb4a8c1f6 100644 --- a/cells/korean/net/formulas-functions/_index.md +++ b/cells/korean/net/formulas-functions/_index.md @@ -102,6 +102,10 @@ Aspose.Cells .NET을 사용하여 Excel 파일의 언어를 지정하는 방법 ### [Aspose.Cells .NET을 사용하여 Excel Power Query 수식 업데이트](./update-power-query-formulas-aspose-cells-net) Aspose.Cells for .NET을 사용하여 Excel 통합 문서에서 Power Query 수식을 프로그래밍 방식으로 업데이트하는 방법을 알아보세요. 동적 보고를 위한 마스터 데이터 소스 관리 방법을 알아보세요. +### [C#에서 WRAPCOLS 사용 방법 – 랩 함수로 Excel 통합 문서 만들기](./how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/) + +### [Excel 워크북 만들기 C# – Lambda, SEQUENCE 및 EXPAND 가이드](./create-excel-workbook-c-lambda-sequence-expand-guide/) + ## Excel 수식 유형 이해 Excel 수식은 다양한 형태로 제공되며, 각각 Aspose.Cells에서 관리할 수 있는 고유한 특성이 있습니다. diff --git a/cells/korean/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md b/cells/korean/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md new file mode 100644 index 0000000000..a4fa94dd37 --- /dev/null +++ b/cells/korean/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md @@ -0,0 +1,211 @@ +--- +category: general +date: 2026-03-30 +description: Aspose.Cells를 사용하여 C#으로 Excel 워크북을 생성합니다. Excel에서 람다 함수, 시퀀스 함수, 배열 확장 + 기능을 적용하는 방법을 배우고 워크북을 xlsx 형식으로 저장합니다. +draft: false +keywords: +- create excel workbook c# +- lambda function excel +- save workbook as xlsx +- sequence function excel +- expand array excel +language: ko +og_description: C#로 Excel 워크북을 빠르게 만들기. 이 가이드는 람다 함수 Excel, 시퀀스 함수 Excel, 배열 확장 Excel을 + 사용하는 방법과 워크북을 xlsx 형식으로 저장하는 방법을 보여줍니다. +og_title: Excel 워크북 만들기 C# – Lambda, SEQUENCE 및 EXPAND 가이드 +tags: +- Aspose.Cells +- C# +- Excel automation +title: C#로 Excel 워크북 만들기 – Lambda, SEQUENCE 및 EXPAND 가이드 +url: /ko/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Create Excel Workbook C# – Lambda, SEQUENCE & EXPAND Guide + +자동 보고서를 위해 **create Excel workbook C#** 가 필요했지만 어떤 API 호출을 사용해야 할지 몰랐던 적이 있나요? 처음으로 프로그래밍 방식 Excel 생성을 시도하는 개발자들은 같은 벽에 부딪히곤 합니다. 이 가이드에서는 새로운 **SEQUENCE function Excel**부터 강력한 **LAMBDA function Excel**, 그리고 **expand array Excel** 결과까지 모두 다루는 완전 실행 가능한 예제를 보여드립니다. + +또한 **save workbook as xlsx** 하는 정확한 단계도 알려드리니, 파일을 Excel을 사용하는 누구에게든 전달할 수 있습니다. 이 튜토리얼을 마치면 .NET 프로젝트에 바로 넣을 수 있는 견고하고 프로덕션‑레디한 스니펫을 얻게 됩니다. 모호한 “문서 참고” 링크가 아니라, 오늘 바로 동작하는 코드만 제공합니다. + +## What You’ll Need + +- **.NET 6.0 or later** – 예제는 .NET 6을 대상으로 하지만 최신 버전이면 모두 동작합니다. +- **Aspose.Cells for .NET** – NuGet을 통해 설치 (`Install-Package Aspose.Cells`). +- C# 문법에 대한 기본 이해 (변수, 객체, 람다식). +- 익숙한 IDE (Visual Studio, Rider, 혹은 VS Code). + +이것만 있으면 됩니다. 별도의 COM interop이나 서버에 Office 설치가 필요하지 않으며, Aspose.Cells가 메모리 내에서 모든 작업을 처리합니다. + +## Create Excel Workbook C# – Step‑by‑Step Implementation + +아래에서는 과정을 한 단계씩 나누어 설명합니다. 각 단계마다 명확한 헤더, 짧은 코드 발췌, 그리고 **왜** 그렇게 하는지에 대한 설명이 포함됩니다. 마지막에 전체 블록을 복사해 콘솔 앱으로 바로 실행해 보세요. + +### Step 1 – Initialize a New Workbook + +먼저 메모리 상에 Excel 파일을 나타내는 빈 워크북 객체가 필요합니다. + +```csharp +using Aspose.Cells; + +// Step 1: Create a new workbook and get the first worksheet +Workbook workbook = new Workbook(); // empty workbook +Worksheet sheet = workbook.Worksheets[0]; // default first sheet +``` + +*Why this matters:* `Workbook`은 Aspose.Cells 모든 작업의 진입점입니다. 첫 번째 `Worksheet`를 가져오면 수식, 값, 서식을 쓸 수 있는 캔버스를 얻게 됩니다. + +> **Pro tip:** 여러 시트가 필요하면 `workbook.Worksheets.Add()`를 호출하고 각 시트에 대한 참조를 유지하면 됩니다. + +### Step 2 – Use the SEQUENCE function Excel to Generate Data + +**sequence function excel**는 VBA 없이 동적 배열 형태의 숫자를 생성합니다. 이를 셀 `A1`에 넣고 Excel이 자동으로 확장하도록 합니다. + +```csharp +// Step 2: Generate a 5‑row, 1‑column array from a SEQUENCE +sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; // 1..3 padded with blanks +``` + +*Why this matters:* `SEQUENCE(3)`은 `[1,2,3]`을 반환합니다. `EXPAND`로 감싸면 결과가 5행 범위로 강제 확장되어 남은 행은 빈 셀로 채워집니다. 이렇게 하면 **sequence function excel**과 **expand array excel**을 한 번에 보여줄 수 있습니다. + +### Step 3 – Aggregate Numbers with LAMBDA function Excel + +이제 **lambda function excel** 기능을 시연합니다. 새로운 `REDUCE` 함수를 사용해 1‑5 숫자를 합산합니다. `REDUCE`는 내부적으로 람다를 활용합니다. + +```csharp +// Step 3: Aggregate a sequence (sum 1..5) using REDUCE/LAMBDA +sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; // result = 15 +``` + +*Why this matters:* `REDUCE`는 `SEQUENCE(5)`가 만든 배열을 순회하면서 각 요소(`b`)와 누적값(`a`)을 람다 `a+b`에 전달합니다. 결과적으로 `B1`에 `15`가 들어갑니다. 이는 C#에서 루프를 돌리지 않고도 수식만으로 축소 연산을 수행하는 깔끔한 방법입니다. + +### Step 4 – Apply Trigonometric Functions Directly in Cells + +Excel에 내장된 수학 함수는 빠른 계산에 유용합니다. 인접 셀에 코탄젠트와 쌍곡 코탄젠트를 넣어 보겠습니다. + +```csharp +// Step 4: Trigonometric functions directly in Excel cells +sheet["C1"].Formula = "COT(PI()/4)"; // evaluates to 1 +sheet["D1"].Formula = "COTH(1)"; // hyperbolic cotangent of 1 +``` + +*Why this matters:* 최신 동적 배열 수식과 고전적인 수학 함수를 혼합해서 사용할 수 있음을 보여줍니다. 특별한 성능 이유가 없다면 C#에서 직접 계산할 필요가 없습니다. + +### Step 5 – Calculate All Formulas + +Aspose.Cells는 수식을 설정한다고 자동으로 계산하지 않습니다. 직접 계산을 요청해야 합니다. + +```csharp +// Step 5: Force calculation so that cells store the results +workbook.CalculateFormula(); +``` + +*Why this matters:* 이 호출 이후 각 셀의 `Value` 속성에 평가된 결과가 들어가며, 이를 저장하거나 다시 읽어올 수 있습니다. + +### Step 6 – Save the Workbook as Xlsx + +마지막으로 **save workbook as xlsx** 패턴을 사용해 워크북을 디스크에 저장합니다. + +```csharp +// Step 6: Save the workbook to an Excel file (XLSX format) +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + +workbook.Save(outputPath); +Console.WriteLine($"Workbook saved to: {outputPath}"); +``` + +*Why this matters:* `Save` 메서드는 파일 확장자를 자동으로 인식합니다. “.xlsx”를 사용하면 최신 Excel 버전과 호환되는 파일이 생성됩니다. 경로는 테스트 중에 쉽게 접근할 수 있도록 데스크톱을 가리킵니다. + +### Full Working Example + +아래는 새 콘솔 프로젝트에 붙여넣을 수 있는 전체 프로그램입니다. 앞서 설명한 모든 단계와, 계산된 값을 콘솔에 출력하는 작은 검증 블록이 포함되어 있습니다. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialize workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + + // SEQUENCE + EXPAND + sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; + + // REDUCE with LAMBDA + sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; + + // Trig functions + sheet["C1"].Formula = "COT(PI()/4)"; + sheet["D1"].Formula = "COTH(1)"; + + // Calculate formulas + workbook.CalculateFormula(); + + // Verify results (optional) + Console.WriteLine("A1‑A5 (expanded SEQUENCE):"); + for (int i = 0; i < 5; i++) + { + Console.WriteLine($" Row {i + 1}: {sheet.Cells[i, 0].Value ?? "blank"}"); + } + Console.WriteLine($"B1 (sum 1‑5): {sheet["B1"].Value}"); + Console.WriteLine($"C1 (cot(π/4)): {sheet["C1"].Value}"); + Console.WriteLine($"D1 (coth(1)): {sheet["D1"].Value}"); + + // Save workbook + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + workbook.Save(outputPath); + Console.WriteLine($"Workbook saved to: {outputPath}"); + } +} +``` + +**Expected output in the console** + +``` +A1‑A5 (expanded SEQUENCE): + Row 1: 1 + Row 2: 2 + Row 3: 3 + Row 4: blank + Row 5: blank +B1 (sum 1‑5): 15 +C1 (cot(π/4)): 1 +D1 (coth(1)): 1.31303528549933 +Workbook saved to: C:\Users\YourName\Desktop\NewFunctions.xlsx +``` + +그리고 *NewFunctions.xlsx* 파일을 열면 첫 네 열에 동일한 숫자들이 배치된 것을 확인할 수 있습니다. + +![create excel workbook c# screenshot of the resulting spreadsheet](/images/create-excel-workbook-csharp.png) + +## Edge Cases, Tips, and Common Questions + +- **What if I need more than one sheet?** + `workbook.Worksheets.Add()`를 호출하고 각 새로운 `Worksheet` 객체에 수식 할당을 반복하면 됩니다. + +- **Can I use older Excel versions?** + 동적 배열 함수(`SEQUENCE`, `EXPAND`, `REDUCE`)는 Excel 365 또는 Excel 2021 이상이 필요합니다. 이전 버전을 대상으로 할 경우 클래식 수식을 사용하거나 값을 C#에서 미리 계산해 워크시트에 기록하세요. + +- **Performance concerns?** + 수천 행을 다룰 때는 범위에 수식을 한 번에 설정하고 `CalculateFormula`를 호출하는 것이, 값을 하나씩 할당하면서 루프를 도는 것보다 일반적으로 빠릅니다. + +- **Saving to a stream instead of a file?** + `work + +{{< /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/korean/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md b/cells/korean/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md new file mode 100644 index 0000000000..5fbf91e885 --- /dev/null +++ b/cells/korean/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md @@ -0,0 +1,210 @@ +--- +category: general +date: 2026-03-30 +description: C#에서 WRAPCOLS를 사용해 Excel 워크북을 만들고, Excel에 데이터를 추가하며, WRAPROWS도 활용하면서 + 수식 계산을 강제로 수행하는 방법을 배워보세요. +draft: false +keywords: +- how to use wrapcols +- create excel workbook c# +- add data to excel +- force formula calculation +- how to use wraprows +language: ko +og_description: C#에서 WRAPCOLS를 사용하여 Excel 워크북을 만들고, 데이터를 추가하며, 수식 계산을 강제하고, 배열 수식을 + 위해 WRAPROWS를 활용하는 방법을 알아보세요. +og_title: C#에서 WRAPCOLS 사용 방법 – 완전 가이드 +tags: +- Aspose.Cells +- C# +- Excel Automation +title: C#에서 WRAPCOLS 사용 방법 – 랩 함수로 Excel 워크북 만들기 +url: /ko/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#에서 WRAPCOLS 사용 방법 – Wrap 함수로 Excel 워크북 만들기 + +C#로 Excel을 자동화할 때 **WRAPCOLS 사용 방법**이 궁금했던 적이 있나요? 당신만 그런 것이 아닙니다—많은 개발자들이 수많은 코드를 작성하지 않고 가로 범위를 세로 배열로 변환해야 할 때 난관에 부딪힙니다. 좋은 소식은 Aspose.Cells가 이를 손쉽게 해결해 준다는 것입니다. + +이 튜토리얼에서는 **WRAPCOLS 사용 방법**, **C# 스타일로 Excel 워크북 만들기**, **Excel에 데이터 추가** 방법, 그리고 결과가 즉시 표시되도록 **수식 계산 강제**하는 방법을 보여주는 완전하고 실행 가능한 예제를 단계별로 살펴보겠습니다. 또한 반대 변환을 위한 **WRAPROWS 사용 방법**도 간략히 소개합니다. 마지막까지 진행하면 바로 실행할 수 있는 프로그램과 각 단계가 왜 중요한지에 대한 명확한 이해를 얻을 수 있습니다. + +--- + +![How to use WRAPCOLS in C# example](alt="C#에서 WRAPCOLS를 사용한 후 Excel 워크북을 보여주는 스크린샷") + +## 이 가이드에서 다루는 내용 + +* Aspose.Cells를 사용하여 새 워크북 설정하기. +* 코드로 셀 채우기 (**Excel에 데이터 추가**). +* `WRAPCOLS` 함수를 적용하여 행을 열로 변환하기. +* `WRAPROWS`를 사용하여 열을 다시 행으로 전환하기 (**wraprows 사용 방법**). +* 엔진이 수식을 즉시 계산하도록 강제하기 (**수식 계산 강제**). +* 파일 저장 및 출력 확인하기. + +외부 문서는 필요 없습니다—필요한 모든 것이 여기 있습니다. + +--- + +## C#에서 WRAPCOLS 사용 방법 – 단계별 구현 + +아래는 전체 소스 파일입니다. 새 콘솔 프로젝트에 복사‑붙여넣기하고, Aspose.Cells NuGet 패키지를 추가한 뒤 **F5**를 눌러 실행해 보세요. + +```csharp +// ------------------------------------------------------------ +// How to Use WRAPCOLS in C# – Complete Example +// ------------------------------------------------------------ +using System; +using Aspose.Cells; + +namespace WrapFunctionsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a fresh workbook (this is how we **create excel workbook c#** style) + Workbook workbook = new Workbook(); + + // 2️⃣ Grab the first worksheet – it's created by default + Worksheet sheet = workbook.Worksheets[0]; + + // 3️⃣ **Add data to Excel**: place two numbers side‑by‑side + sheet.Cells["A1"].PutValue(1); // first value + sheet.Cells["B1"].PutValue(2); // second value + + // 4️⃣ **How to use WRAPCOLS** – turn the horizontal range A1:B1 into a vertical array + // The second argument (1) tells WRAPCOLS to create 1 column per element. + sheet["C1"].Formula = "WRAPCOLS(A1:B1, 1)"; + + // 5️⃣ **How to use WRAPROWS** – the opposite; turn the same range into a horizontal array + // Here we ask for 2 rows per element, which produces a single row with both values. + sheet["C2"].Formula = "WRAPROWS(A1:B1, 2)"; + + // 6️⃣ **Force formula calculation** so the workbook reflects the results immediately + workbook.CalculateFormula(); + + // 7️⃣ Save the workbook to disk – change the path to a folder you own + string outputPath = @"WrapFunctions.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + Console.WriteLine("Check cells C1 and C2 for the WRAPCOLS / WRAPROWS results."); + } + } +} +``` + +### 각 라인이 중요한 이유 + +| 단계 | 설명 | +|------|------| +| **1️⃣ 새 워크북 만들기** | 이것이 기본입니다. Aspose.Cells는 `Workbook` 객체를 전체 Excel 파일로 취급하므로 사실상 **C# 스타일로 Excel 워크북을 생성**하는 것입니다. | +| **2️⃣ 첫 번째 워크시트 가져오기** | 새 워크북에는 항상 최소 하나의 워크시트(`Worksheets[0]`)가 포함됩니다. 초기에 접근하면 null 참조 오류를 방지할 수 있습니다. | +| **3️⃣ Excel에 데이터 추가** | `PutValue`를 사용하면 셀 서식을 신경 쓰지 않고 **Excel에 데이터를 추가**할 수 있습니다. 숫자 `1`과 `2`는 wrap 함수 테스트용 데이터입니다. | +| **4️⃣ WRAPCOLS 사용 방법** | `WRAPCOLS(A1:B1, 1)`은 Excel에 범위 `A1:B1`의 값을 세로로, 행당 하나씩 펼치도록 지시합니다. 결과는 `C1`에 위치하고 아래로 펼쳐집니다(`C1`, `C2`, …). | +| **5️⃣ WRAPROWS 사용 방법** | `WRAPROWS(A1:B1, 2)`는 반대 작업을 수행합니다: 가로로 값을 펼쳐 두 값을 `C2`부터 시작하는 하나의 행에 배치합니다. | +| **6️⃣ 수식 계산 강제** | 기본적으로 Aspose.Cells는 파일이 Excel에서 열릴 때까지 계산을 미룰 수 있습니다. `CalculateFormula()`를 호출하면 **수식 계산을 강제**하여 저장 직후 결과를 즉시 읽을 수 있습니다. | +| **7️⃣ 워크북 저장** | 마지막 단계에서는 모든 내용을 디스크에 기록합니다. 결과 파일 `WrapFunctions.xlsx`를 열어 결과를 확인하세요. | + +--- + +## C#에서 Excel 워크북 만들기 – 환경 설정 + +코드를 실행하기 전에 올바른 도구가 준비되어 있는지 확인하세요: + +1. **.NET 6.0+** – 최신 LTS 버전이 가장 좋습니다. +2. **Visual Studio 2022** (또는 C# 확장 기능이 포함된 VS Code). +3. **Aspose.Cells for .NET** – NuGet을 통해 설치: + ```bash + dotnet add package Aspose.Cells + ``` +4. 출력 파일을 저장할 쓰기 가능한 폴더. + +이 전제조건들은 최소 수준이며, COM 인터옵이나 Office 설치가 필요 없기 때문에 Aspose.Cells가 서버‑사이드 Excel 생성에 인기 있는 선택입니다. + +--- + +## Excel에 데이터 추가 – 모범 사례 + +코드로 **Excel에 데이터를 추가**할 때는 다음 팁을 고려하세요: + +* `PutValue` **사용**: 원시 숫자나 문자열에 사용하면 데이터 유형을 자동으로 감지합니다. +* 대규모 프로젝트에서는 **셀 주소를 하드코딩하지** 말고 루프나 이름 정의 범위를 사용해 확장성을 확보하세요. +* **셀 스타일은 최소한으로** 설정하세요; 스타일 변경마다 오버헤드가 발생합니다. 서식이 필요하면 하나의 스타일 객체를 만들고 여러 셀에 적용하세요. + +우리의 작은 예제에서는 두 개의 숫자만 삽입하지만, 동일한 패턴을 수천 행까지 확장할 수 있습니다. + +--- + +## WRAPROWS 사용 방법 – 가로 배열 예제 + +`WRAPCOLS`와 반대가 필요하다면 `WRAPROWS`를 사용하면 됩니다. 구문은 다음과 같습니다: + +``` +WRAPROWS(source_range, [rows_per_item]) +``` + +* `source_range` – 변환하려는 범위. +* `rows_per_item` – 선택 사항; 각 요소가 차지할 행 수를 지정합니다. 데모에서는 두 값을 하나의 행에 배치하기 위해 `2`를 사용했습니다. + +두 번째 인수를 바꿔 실험해 볼 수 있습니다: + +```csharp +// Example: split each value into its own column, three rows per item +sheet["D1"].Formula = "WRAPROWS(A1:B1, 3)"; +``` + +워크북을 열면 값이 세 개의 열에 걸쳐 펼쳐지고, 각 열에는 원래 숫자가 필요에 따라 반복되어 표시됩니다. + +--- + +## 수식 계산 강제 – 언제, 왜 + +`CalculateFormula()`를 호출해야 할까요?” 라고 궁금할 수 있습니다. 답은 **예**이며, 다음 경우에 필요합니다: + +* 저장 후 **프로그램matically** 계산된 값을 읽을 계획이라면. +* Excel에서 파일을 열 때 이미 올바른 결과가 표시되도록 보장하고 싶다면. +* **헤드리스 환경**(예: 웹 API)에서 실행 중이며 사용자가 수동으로 재계산을 트리거하지 않을 경우. + +이 단계를 건너뛰어도 워크북이 손상되지는 않지만, Excel이 재계산하기 전까지 셀에 계산된 값 대신 수식 텍스트(`=WRAPCOLS(...)`)가 표시됩니다. + +--- + +## 예상 출력 – 확인 포인트 + +프로그램을 실행하고 `WrapFunctions.xlsx`를 연 후: + +| 셀 | 수식 | 표시 값 | +|------|---------|-----------------| +| **C1** | `=WRAPCOLS(A1:B1, 1)` | `1`(C1에) 및 `2`(C2에) – 세로 목록 | +| **C2** | `=WRAPROWS(A1:B1, 2)` | `1`이 C2에, `2`가 D2에 – 가로 목록 | + +따라서 **C1**부터 시작하는 값 열과 **C2**부터 시작하는 값 행을 보게 됩니다. 이는 두 wrap 함수가 예상대로 동작했음을 확인시켜 줍니다. + +--- + +## 엣지 케이스 및 변형 + +| 시나리오 | 무엇이 바뀌나요? | 추천 수정 | +|----------|----------------|------------| +| **Large range (A1:Z1)** | 세로로 펼칠 값이 더 많음 | 그룹당 여러 열이 필요하면 `WRAPCOLS`의 두 번째 인수를 늘리세요. | +| **Non‑numeric data** | 문자열도 동일하게 처리됩니다 | 코드 변경 필요 없음; `PutValue`는 모든 객체를 허용합니다. | +| **Dynamic range** | 컴파일 시 크기를 알 수 없음 | `sheet.Cells.MaxDataColumn`와 `MaxDataRow`를 사용해 주소 문자열을 구성하세요. | +| **Multiple worksheets** | 다른 시트에 wrap 함수를 적용해야 함 | 올바른 워크시트를 참조하세요(`workbook.Worksheets["Sheet2"]`). | + +--- + +## 현장에서 얻은 프로 팁 + +* **프로 팁:** .NET Core 3.1+을 대상으로 할 경우 워크북 생성을 `using` 블록으로 감싸서 모든 리소스가 즉시 해제되도록 하세요. +* **주의:** `CalculateFormula()`를 호출하지 않고 큰 범위에 동일한 수식을 설정하면 성능 병목이 발생할 수 있습니다. 가능한 경우 수식을 일괄 처리하세요. +* **팁:** 코드에서 계산된 값을 다시 읽어야 한다면, 호출하세요` + +{{< /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/korean/net/tables-and-lists/_index.md b/cells/korean/net/tables-and-lists/_index.md index ae781c8261..065c92d057 100644 --- a/cells/korean/net/tables-and-lists/_index.md +++ b/cells/korean/net/tables-and-lists/_index.md @@ -51,6 +51,8 @@ Aspose.Cells for .NET을 사용하여 Excel에서 표를 범위로 쉽게 변환 Aspose.Cells for .NET의 강력한 기능을 활용하세요. 이 자세한 단계별 가이드를 통해 쿼리 데이터 소스를 사용하여 테이블을 읽고 쓰는 방법을 알아보세요. ### [Excel에서 표 또는 목록의 주석 설정](./setting-comment-of-table-or-list/) 간단한 단계별 가이드를 통해 Aspose.Cells for .NET을 사용하여 Excel에서 표에 주석을 설정하는 방법을 알아보세요. +### [C#에서 범위로부터 표 만들기 – 완전 Aspose.Cells 튜토리얼](./create-table-from-range-in-c-complete-aspose-cells-tutorial/) +Aspose.Cells for .NET을 사용하여 C# 코드로 범위에서 표를 생성하는 방법을 단계별로 안내합니다. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/korean/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md b/cells/korean/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md new file mode 100644 index 0000000000..38ea8cbcb0 --- /dev/null +++ b/cells/korean/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md @@ -0,0 +1,230 @@ +--- +category: general +date: 2026-03-30 +description: Aspose.Cells를 사용하여 C#에서 범위로 테이블 만들기 – 셀에 데이터 추가, 범위를 ListObject로 변환하고 + 필터 없이 Excel 저장. +draft: false +keywords: +- create table from range +- create excel workbook c# +- add data to cells +- convert range to listobject +- save excel without filter +language: ko +og_description: C#에서 Aspose.Cells를 사용해 범위에서 테이블을 만들기. 셀에 데이터를 추가하고, 범위를 ListObject로 + 변환하며, 필터 없이 Excel을 저장하는 방법을 배워보세요. +og_title: C#에서 범위로 테이블 만들기 – 완전한 Aspose.Cells 튜토리얼 +tags: +- Aspose.Cells +- C# +- Excel Automation +title: C#에서 범위로 테이블 만들기 – 완전한 Aspose.Cells 튜토리얼 +url: /ko/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#에서 범위로 테이블 만들기 – 완전 Aspose.Cells 튜토리얼 + +C#에서 **create table from range**를 만들어야 하는데 일반 데이터 블록을 완전한 Excel 테이블로 바꾸는 방법을 몰라 고민한 적이 있나요? 당신만 그런 것이 아닙니다. 보고서를 자동화하거나, 스코어카드를 생성하거나, 다운스트림 분석을 위해 데이터를 정리할 때 이 작은 트릭을 마스터하면 수작업을 크게 줄일 수 있습니다. + +이 가이드에서는 **create excel workbook c#**, **add data to cells**, **convert range to ListObject**, 그리고 최종적으로 **save excel without filter**까지 전체 과정을 단계별로 살펴봅니다. 끝까지 읽으면 Aspose.Cells를 참조하는 .NET 프로젝트에 바로 넣어 실행할 수 있는 완전한 코드 스니펫을 얻을 수 있습니다. + +--- + +## Prerequisites + +- .NET 6+ (또는 .NET Framework 4.7.2+)가 설치되어 있어야 합니다 +- Aspose.Cells for .NET (NuGet 패키지 `Aspose.Cells`) – 작성 시점 최신 버전(23.10)에서 완벽히 동작합니다. +- C# 문법에 대한 기본 이해 – 깊은 Excel Interop 지식은 필요 없습니다. + +필요한 것이 모두 준비되었다면, 시작해 봅시다. + +--- + +## Step 1: Create an Excel Workbook in C# + +먼저 새 워크북 객체가 필요합니다. 이는 결국 테이블을 담게 될 빈 Excel 파일이라고 생각하면 됩니다. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is equivalent to opening a blank .xlsx file. +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (default) worksheet. +``` + +> **Pro tip:** `Workbook()`에 인자를 전달하지 않으면 기본 워크시트 하나가 포함된 워크북이 생성되며, 빠른 데모에 안성맞춤입니다. 여러 시트가 필요하면 나중에 `workbook.Worksheets.Add()`로 추가할 수 있습니다. + +--- + +## Step 2: Add Data to Cells + +이제 시트에 작은 데이터 세트를 채워 보겠습니다 – 두 개의 열(Name, Score)과 세 개의 행을 갖는 값들입니다. 이는 **add data to cells**를 깔끔하고 읽기 쉬운 방식으로 보여줍니다. + +```csharp +// Header row +worksheet.Cells["A1"].PutValue("Name"); +worksheet.Cells["B1"].PutValue("Score"); + +// Data rows +worksheet.Cells["A2"].PutValue("Alice"); +worksheet.Cells["B2"].PutValue(85); +worksheet.Cells["A3"].PutValue("Bob"); +worksheet.Cells["B3"].PutValue(92); +``` + +`PutValue`를 사용하는 이유는 무엇일까요? 데이터 유형(문자열 vs 숫자)을 자동으로 감지하고 셀 서식을 자동으로 지정해 주어, 간단한 상황에서 `Style` 객체를 직접 다루는 수고를 덜어줍니다. + +> **Expected output:** 이 단계가 끝난 뒤 Excel에서 워크북을 열면 “Name”과 “Score”라는 헤더가 있는 두 열 그리드와 두 개의 데이터 행이 표시됩니다. + +--- + +## Step 3: Convert the Range into a ListObject (Table) + +여기서 마법이 일어납니다: 일반 범위를 Excel 테이블(**ListObject**라 불리는 Aspose.Cells API의 객체)로 변환합니다. 이렇게 하면 시각적 스타일링이 추가될 뿐만 아니라 정렬, 필터링, 구조화된 참조와 같은 내장 기능도 사용할 수 있게 됩니다. + +```csharp +// Define the range boundaries. +// startRow and startColumn are zero‑based indexes. +// rowCount includes the header row. +int startRow = 0; // Row 1 in Excel +int startColumn = 0; // Column A +int rowCount = 3; // Header + 2 data rows +int columnCount = 2; // Two columns: Name & Score + +// Add a ListObject to the worksheet and retrieve the object. +int listIndex = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); +ListObject table = worksheet.ListObjects[listIndex]; + +// Turn on the UI filter dropdowns so users can interact with the table. +table.ShowAutoFilter = true; +``` + +> **Why use a ListObject?** +> - **Structured references**: 수식에서 열 이름으로 참조할 수 있습니다. +> - **Auto‑filter UI**: 사용자는 드롭다운 화살표를 통해 빠르게 필터링할 수 있습니다. +> - **Styling**: 나중에 한 줄만으로 내장 테이블 스타일을 적용할 수 있습니다. + +--- + +## Step 4: Remove the AutoFilter UI (Save Excel Without Filter) + +때때로 필터 화살표가 없는 깔끔한 시트가 필요합니다 – 예를 들어 워크북이 최종 보고서일 때. Aspose.Cells 23.10에서는 필터 UI를 완전히 제거하는 간단한 방법을 도입했습니다. + +```csharp +// Remove the filter UI completely. +table.AutoFilter = null; // Clears the underlying filter object. +table.ShowAutoFilter = false; // Hides the dropdown arrows. +``` + +데이터 자체를 삭제하는 것이 아니라 시각적인 필터 컨트롤만 끄는 것이므로, **save excel without filter** 요구사항을 만족합니다. + +--- + +## Step 5: Save the Workbook + +마지막으로 워크북을 디스크에 저장합니다. 파일에는 테이블이 포함되지만 필터 UI는 없습니다. + +```csharp +// Choose a folder you have write access to. +string outputPath = @"C:\Temp\NoAutoFilter.xlsx"; +workbook.Save(outputPath); +``` + +`NoAutoFilter.xlsx`를 Excel에서 열면 기본 서식이 적용된 테이블이 보이지만 필터 화살표는 없습니다. 데이터는 그대로이며 파일은 배포 준비가 완료되었습니다. + +--- + +![Screenshot showing create table from range in Excel using Aspose.Cells](image.png "Create table from range screenshot") + +*이미지 설명:* **Aspose.Cells를 사용하여 Excel에서 범위로 테이블을 만드는 스크린샷** – 필터 드롭다운 없이 테이블이 존재함을 시각적으로 증명합니다. + +--- + +## Full, Runnable Example + +아래는 콘솔 앱에 복사‑붙여넣기 할 수 있는 전체 프로그램입니다. 앞서 설명한 모든 단계와 몇 가지 추가 주석이 포함되어 있습니다. + +```csharp +using System; +using Aspose.Cells; + +namespace AsposeTableDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add data to cells – this is the “add data to cells” part. + worksheet.Cells["A1"].PutValue("Name"); + worksheet.Cells["B1"].PutValue("Score"); + worksheet.Cells["A2"].PutValue("Alice"); + worksheet.Cells["B2"].PutValue(85); + worksheet.Cells["A3"].PutValue("Bob"); + worksheet.Cells["B3"].PutValue(92); + + // 3️⃣ Convert the range into a ListObject (i.e., create table from range). + int startRow = 0, startColumn = 0, rowCount = 3, columnCount = 2; + int listIdx = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); + ListObject table = worksheet.ListObjects[listIdx]; + table.ShowAutoFilter = true; // optional UI filter + + // 4️⃣ Remove the AutoFilter UI – “save excel without filter”. + table.AutoFilter = null; + table.ShowAutoFilter = false; + + // 5️⃣ Save the workbook. + string filePath = @"C:\Temp\NoAutoFilter.xlsx"; + workbook.Save(filePath); + + Console.WriteLine($"Workbook saved to {filePath}"); + } + } +} +``` + +프로그램을 실행한 뒤 `C:\Temp\NoAutoFilter.xlsx`를 열어 보세요. 깔끔하게 서식이 적용된 테이블과 필터 화살표가 없으며, 우리가 입력한 데이터가 그대로 표시됩니다. 이것이 **create excel workbook c#** 작업 흐름을 60줄 이하의 코드로 구현한 전체 과정입니다. + +--- + +## Frequently Asked Questions & Edge Cases + +**Q: 데이터 범위가 연속되지 않은 경우는 어떻게 하나요?** +A: `ListObjects.Add`는 직사각형 범위를 요구합니다. 연속되지 않은 데이터가 있다면 임시 범위를 먼저 만들고(예: 새 워크시트에 조각들을 복사) 그 범위를 변환하십시오. + +**Q: 사용자 정의 테이블 스타일을 적용할 수 있나요?** +A: 물론 가능합니다. `ListObject`를 만든 뒤 `table.TableStyleType = TableStyleType.TableStyleMedium9;`(또는 65개의 내장 스타일 중 하나)로 설정하면 테이블을 기업 브랜드에 맞게 스타일링할 수 있습니다. + +**Q: 필터는 유지하고 화살표만 숨기려면 어떻게 하나요?** +A: 필터 로직은 `table.AutoFilter`에 존재합니다. `ShowAutoFilter = false`로 설정하면 UI만 숨겨지고, 기본 필터는 그대로 유지됩니다. 따라서 이후에 프로그래밍적으로 행을 필터링할 수 있습니다. + +**Q: 대용량 데이터셋(10k+ 행)은 어떻게 처리하나요?** +A: 동일한 API가 작동하지만, 대량 삽입 전에 자동 계산(`workbook.CalcEngine = false`)을 끄고 작업이 끝난 뒤 다시 켜는 것이 성능에 도움이 됩니다. + +--- + +## Wrap‑Up + +우리는 Aspose.Cells를 사용해 C#에서 **create table from range**를 단계별로 구현하는 방법—**create excel workbook c#**, **add data to cells**, **convert range to ListObject**, 그리고 **save excel without filter**—을 모두 다뤘습니다. 코드는 완전하고 실행 가능하며 실제 프로덕션에 바로 사용할 수 있습니다. + +다음에 시도해 볼 만한 내용: + +- 상위 점수를 강조하는 조건부 서식 추가. +- `workbook.Save("Report.pdf", SaveFormat.Pdf);`를 사용해 워크북을 PDF로 내보내기. +- `table.Columns["Score"].DataBodyRange.Sort`를 이용해 프로그램matically 테이블 정렬하기. + +다양한 데이터 세트, 테이블 스타일, 혹은 여러 워크시트를 실험해 보세요. API는 작은 점수표부터 방대한 재무 원장까지 모든 상황을 유연하게 처리할 수 있습니다. + +궁금한 점이 있거나 문제가 발생하면 아래에 댓글을 남기거나 GitHub에서 저에게 ping 주세요. 즐거운 코딩 되시고, 원시 범위를 깔끔한 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/polish/net/conversion-to-pdf/_index.md b/cells/polish/net/conversion-to-pdf/_index.md index 055729783f..e8850b0c61 100644 --- a/cells/polish/net/conversion-to-pdf/_index.md +++ b/cells/polish/net/conversion-to-pdf/_index.md @@ -34,6 +34,8 @@ Ale czekaj, to nie wszystko! Co jeśli chcesz przekonwertować wykresy z arkuszy Konwertuj arkusze kalkulacyjne Excela do PDF-ów z łatwością dzięki Aspose.Cells dla .NET! Postępuj zgodnie z naszym przewodnikiem krok po kroku, aby uzyskać bezproblemowe działanie. ### [Konwertuj wykres do pliku PDF w .NET](./convert-chart-to-pdf/) Dowiedz się, jak konwertować wykresy Excela do PDF w .NET przy użyciu Aspose.Cells dzięki temu przewodnikowi krok po kroku! Idealne dla programistów na każdym poziomie. +### [Zapisz skoroszyt jako PDF przy użyciu Aspose.Cells – kompletny przewodnik krok po kroku](./save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/) +Dowiedz się, jak zapisać skoroszyt Excela jako plik PDF przy użyciu Aspose.Cells, krok po kroku, z praktycznymi przykładami. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/polish/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md b/cells/polish/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md new file mode 100644 index 0000000000..4fff79b88a --- /dev/null +++ b/cells/polish/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md @@ -0,0 +1,247 @@ +--- +category: general +date: 2026-03-30 +description: Dowiedz się, jak zapisać skoroszyt jako PDF przy użyciu Aspose.Cells. + Ten samouczek obejmuje również eksport arkusza do PDF, jak wyeksportować Excel do + PDF oraz tworzenie PDF z arkusza. +draft: false +keywords: +- save workbook as pdf +- export worksheet to pdf +- how to export excel to pdf +- save excel as pdf +- create pdf from worksheet +language: pl +og_description: Łatwo zapisz skoroszyt jako PDF. Ten przewodnik pokazuje, jak wyeksportować + arkusz do PDF, jak wyeksportować Excel do PDF oraz jak utworzyć PDF z arkusza przy + użyciu C#. +og_title: Zapisz skoroszyt jako PDF przy użyciu Aspose.Cells – Kompletny przewodnik +tags: +- Aspose.Cells +- C# +- PDF generation +title: Zapisz skoroszyt jako PDF za pomocą Aspose.Cells – Kompletny przewodnik krok + po kroku +url: /pl/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Zapisz skoroszyt jako pdf – Kompletny przewodnik krok po kroku + +Kiedykolwiek potrzebowałeś **save workbook as pdf**, ale nie byłeś pewien, która biblioteka zachowa Twoje liczby nienaruszone? Nie jesteś sam. W wielu projektach musimy przekształcić dane z Excela w elegancki PDF, a zrobienie tego w odpowiedni sposób oszczędza godziny debugowania. + +W tym samouczku przeprowadzimy Cię przez dokładny kod, którego potrzebujesz, aby **save workbook as pdf** z Aspose.Cells, a po drodze pokażemy, jak **export worksheet to pdf**, odpowiemy na pytania *how to export excel to pdf* i zademonstrujemy czysty sposób **create pdf from worksheet** z niestandardowymi ustawieniami precyzji. + +Pod koniec przewodnika będziesz mieć gotową do uruchomienia aplikację konsolową C#, która generuje PDF zawierający tylko istotne cyfry, które Cię interesują. Bez zbędnych dodatków, po prostu solidne, gotowe do produkcji rozwiązanie. + +--- + +## Czego się nauczysz + +- Jak utworzyć nowy `Workbook` i skierować się do pierwszego arkusza. +- Dokładna metoda **save workbook as pdf** przy zachowaniu precyzji numerycznej. +- Dlaczego właściwość `SignificantDigits` ma znaczenie, gdy **export worksheet to pdf**. +- Typowe pułapki przy próbie **how to export excel to pdf** i jak ich uniknąć. +- Szybkie sposoby **save excel as pdf** z różnymi opcjami strony oraz jak **create pdf from worksheet** programowo. + +### Wymagania wstępne + +- .NET 6.0 lub nowszy (kod działa również z .NET Framework 4.5+). +- Ważna licencja Aspose.Cells (lub darmowa tymczasowa licencja do testów). +- Visual Studio 2022 lub dowolne IDE kompatybilne z C#. + +Jeśli masz już te podstawy, zanurzmy się. + +--- + +## Krok 1 – Zainstaluj Aspose.Cells i zainicjalizuj Workbook + +First things first: you need the Aspose.Cells NuGet package. Open a terminal in your project folder and run: + +```bash +dotnet add package Aspose.Cells +``` + +Once the package is installed, create a new `Workbook` object. This is the object you’ll eventually **save workbook as pdf**. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialise a fresh workbook – think of it as a blank Excel file. + Workbook workbook = new Workbook(); + + // Grab the first worksheet (index 0). This is where we’ll put our data. + Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Dlaczego ten krok?* +Creating the workbook gives you a clean canvas, and selecting the first worksheet ensures you’re working with a known location. Skipping this can lead to *null reference* errors when you later try to **export worksheet to pdf**. + +--- + +## Krok 2 – Wstaw dane o wysokiej precyzji + +Now we’ll put a number that has more decimal places than we actually want to show in the PDF. This demonstrates how the `SignificantDigits` setting trims the output. + +```csharp + // Place a high‑precision number in cell A1. + worksheet.Cells["A1"].PutValue(1234.56789); +``` + +If you run the program now and simply call `workbook.Save("output.pdf")`, the PDF will show the full `1234.56789`. That’s fine for some cases, but often you need to round to a specific number of significant digits—especially for financial reports. + +--- + +## Krok 3 – Skonfiguruj opcje zapisu PDF + +Aspose.Cells gives you fine‑grained control via `PdfSaveOptions`. The property we care about is `SignificantDigits`. Setting it to `4` tells the engine to keep only four significant figures when it **save workbook as pdf**. + +```csharp + // Configure PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 // This trims the number to 1235 in the PDF. + }; +``` + +*Dlaczego używać `SignificantDigits`?* +When you **create pdf from worksheet**, you often need to obey regulatory rounding rules. This option does the rounding for you, so you don’t have to manually format each cell. + +--- + +## Krok 4 – Eksportuj arkusz do PDF z opcjami + +Here’s the moment of truth: we actually **save workbook as pdf** using the options we just defined. + +```csharp + // Save the workbook as a PDF using the configured options. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + } +} +``` + +Running the program will generate a file called `SignificantDigits.pdf` in your project's output folder. Open it and you’ll see `1235` in cell A1 – the number has been rounded to four significant digits. + +*Kluczowy punkt:* The `Save` method takes both the file path and the `PdfSaveOptions`. If you omit the options, you’ll fall back to the default behavior, which may not meet your precision requirements. + +--- + +## Krok 5 – Zweryfikuj wynik i rozwiąż typowe problemy + +### Oczekiwany wynik + +- Jednostronicowy PDF o nazwie `SignificantDigits.pdf`. +- Komórka A1 wyświetla `1235` (cztery znaczące cyfry). +- Nie pojawiają się dodatkowe arkusze ani ukryta zawartość. + +### Najczęściej zadawane pytania + +| Pytanie | Odpowiedź | +|----------|--------| +| **Co jeśli potrzebuję więcej niż jednego arkusza?** | Iteruj przez `workbook.Worksheets` i zastosuj te same `PdfSaveOptions` przy zapisywaniu każdego arkusza osobno, lub ustaw `OnePagePerSheet = true` w opcjach. | +| **Czy mogę zachować oryginalny format liczby?** | Tak – ustaw `PdfSaveOptions.AllColumnsInOnePage = true` i pozwól regułom formatowania Excela się tym zająć, ale pamiętaj, że `SignificantDigits` nadal nadpisze precyzję numeryczną. | +| **Czy to działa z istniejącymi plikami .xlsx?** | Zdecydowanie. Zastąp `new Workbook()` przez `new Workbook("input.xlsx")` i reszta kodu pozostaje bez zmian. | +| **Co jeśli PDF jest pusty?** | Sprawdź, czy skoroszyt faktycznie zawiera dane i czy zapisujesz do katalogu z prawami zapisu. Również upewnij się, że licencja Aspose.Cells jest poprawnie zastosowana; nielicencjonowana wersja próbna może ograniczać wyjście. | + +### Porada pro + +If you need to **save excel as pdf** with a specific page orientation, set `pdfSaveOptions.PageSetup.Orientation = PageOrientation.Landscape;` before calling `Save`. This small tweak often saves you from having to manually adjust the PDF later. + +--- + +## Warianty: Eksportowanie wielu arkuszy lub niestandardowe ustawienia strony + +### Eksportuj wszystkie arkusze w jednym wywołaniu + +```csharp +PdfSaveOptions allSheetsOptions = new PdfSaveOptions +{ + SignificantDigits = 4, + OnePagePerSheet = true // Each worksheet gets its own page. +}; + +workbook.Save("AllSheets.pdf", allSheetsOptions); +``` + +### Eksportuj pojedynczy arkusz jako PDF + +If you only want to **export worksheet to pdf** for a specific sheet, use the `Worksheet` object's `ToPdf` method: + +```csharp +Worksheet sheet = workbook.Worksheets["Sheet2"]; +sheet.ToPdf("Sheet2.pdf", pdfSaveOptions); +``` + +### Dostosuj marginesy strony + +```csharp +pdfSaveOptions.PageSetup.TopMargin = 20; +pdfSaveOptions.PageSetup.BottomMargin = 20; +``` + +These tweaks let you fine‑tune the final document without post‑processing. + +--- + +## Pełny działający przykład + +Below is the complete, copy‑and‑paste‑ready program that incorporates everything we’ve discussed. Save it as `Program.cs` and run `dotnet run`. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and select the first worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Insert a high‑precision number. + worksheet.Cells["A1"].PutValue(1234.56789); + + // 3️⃣ Set PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 + }; + + // 4️⃣ Save the workbook as PDF. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + + // Optional: Export another sheet with custom settings. + // Worksheet sheet2 = workbook.Worksheets.Add("Report"); + // sheet2.Cells["B2"].PutValue(9876.54321); + // sheet2.ToPdf("Report.pdf", pdfSaveOptions); + } +} +``` + +**Result:** Open `SignificantDigits.pdf` – you’ll see the rounded value `1235`. The file size is modest, and the layout matches the original Excel sheet. + +--- + +## Zakończenie + +We’ve just shown you how to **save workbook as pdf** using Aspose.Cells, covering everything from basic setup to advanced options like **export worksheet to pdf**, **how to export excel to pdf**, and **create pdf from worksheet** with precise numeric control. + +The approach is straightforward, requires only a few lines of C#, and works across .NET versions. Next, you might explore adding headers/footers, embedding images, or generating PDFs from templates—each of which builds on the foundation you now have. + +Got a twist you’d like to try? Maybe you need to password‑protect the PDF or merge several PDFs together. Those are natural extensions, and the Aspose.Cells API has you covered. Dive in, experiment, and let the library do the heavy lifting. + +*Happy coding! If you ran into any snags, drop a comment below and we’ll troubleshoot together.* + +![save workbook as pdf screenshot](/images/save-workbook-as-pdf.png){alt="save workbook as pdf example showing the generated PDF file"} + +{{< /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/polish/net/converting-excel-files-to-other-formats/_index.md b/cells/polish/net/converting-excel-files-to-other-formats/_index.md index 83879f17dd..8c855d41e1 100644 --- a/cells/polish/net/converting-excel-files-to-other-formats/_index.md +++ b/cells/polish/net/converting-excel-files-to-other-formats/_index.md @@ -56,6 +56,8 @@ Dowiedz się, jak konwertować pliki Excel do PDF/A-1a w celach archiwalnych, u Dowiedz się, jak programowo przekonwertować JSON na CSV w .NET przy użyciu Aspose.Cells. Postępuj zgodnie z naszym przewodnikiem krok po kroku, aby zapewnić bezproblemową transformację danych. ### [Konwersja pliku Excel do formatu PPTX programowo w środowisku .NET](./converting-excel-file-to-pptx/) Dowiedz się, jak programowo przekonwertować plik Excela na prezentację PowerPoint (PPTX) przy użyciu Aspose.Cells dla .NET, korzystając z tego przewodnika krok po kroku. +### [Tworzenie prezentacji PowerPoint z Excela – przewodnik krok po kroku w C#](./create-powerpoint-from-excel-step-by-step-c-guide/) +Dowiedz się, jak programowo przekształcić arkusz Excel w prezentację PowerPoint przy użyciu Aspose.Cells w C#. ### [Określanie HTML CrossType w wyjściowym HTML programowo w .NET](./specifying-html-crosstype-in-output-html/) Dowiedz się, jak określić HTML CrossType w Aspose.Cells dla .NET. Postępuj zgodnie z naszym samouczkiem krok po kroku, aby precyzyjnie przekonwertować pliki Excel na HTML. ### [Odczyt arkusza kalkulacyjnego liczb programowo w .NET](./reading-numbers-spreadsheet/) diff --git a/cells/polish/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md b/cells/polish/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md new file mode 100644 index 0000000000..dc8d9f10f1 --- /dev/null +++ b/cells/polish/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md @@ -0,0 +1,239 @@ +--- +category: general +date: 2026-03-30 +description: Szybko twórz prezentacje PowerPoint z Excela przy użyciu Aspose.Cells + i Aspose.Slides. Dowiedz się, jak wyeksportować arkusz jako obraz i zapisać prezentację + jako PPTX w C#. +draft: false +keywords: +- create powerpoint from excel +- convert excel to powerpoint +- export worksheet as image +- save presentation as pptx +- export excel chart as picture +language: pl +og_description: Utwórz prezentację PowerPoint z Excela w C# przy użyciu Aspose. Wyeksportuj + arkusz jako obraz, zachowaj edytowalne kształty i zapisz wynik jako plik PPTX. +og_title: Utwórz PowerPoint z Excela – Kompletny samouczek C# +tags: +- Aspose +- C# +- Office Automation +title: Tworzenie PowerPointa z Excela – Przewodnik krok po kroku w C# +url: /pl/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Utwórz PowerPoint z Excela – Kompletny samouczek C# + +Kiedykolwiek potrzebowałeś **utworzyć PowerPoint z Excela**, ale nie byłeś pewien, która biblioteka pozwoli zachować edytowalność wykresów? Nie jesteś sam. W wielu scenariuszach raportowania chcesz zamienić arkusz kalkulacyjny w zestaw slajdów, nie tracąc możliwości późniejszej edycji pól tekstowych. Ten przewodnik pokazuje dokładnie, jak **przekształcić Excel w PowerPoint** przy użyciu Aspose.Cells i Aspose.Slides, a także jak **wyeksportować arkusz jako obraz** i w końcu **zapisać prezentację jako PPTX**. + +Przejdziemy przez każdy wiersz kodu, wyjaśnimy *dlaczego* każde ustawienie ma znaczenie i omówimy, co zrobić, gdy Twój skoroszyt zawiera złożone wykresy, które wolisz wyeksportować jako obraz. Po zakończeniu będziesz mieć gotową do uruchomienia aplikację konsolową C#, która przyjmuje `ShapesDemo.xlsx` i generuje `Result.pptx` – wszystko z edytowalnymi polami tekstowymi i wyraźnymi obrazami. + +## Czego będziesz potrzebować + +- .NET 6.0 lub nowszy (API działa także z .NET Framework, ale .NET 6 jest optymalnym wyborem). +- Pakiety NuGet **Aspose.Cells** i **Aspose.Slides** (darmowe licencje trial działają w testach). +- Podstawowa znajomość składni C# – jeśli potrafisz napisać `Console.WriteLine`, jesteś gotowy. + +Nie potrzebujesz dodatkowego COM interopu, nie musisz mieć zainstalowanego Office na serwerze i nie musisz ręcznie kopiować‑wklejać obrazów. Wszystko jest obsługiwane programowo. + +--- + +## Utwórz PowerPoint z Excela – Załaduj skoroszyt i ustaw opcje eksportu + +Pierwszą rzeczą, którą robimy, jest otwarcie pliku Excel i poinformowanie Aspose.Cells, jak ma zostać wyrenderowany arkusz. Obiekt `ImageOrPrintOptions` to miejsce, w którym dzieje się magia: włączamy `ExportShapes` i `ExportEditableTextBoxes`, aby wszystkie kształty (w tym wykresy) stały się częścią slajdu **i** pozostały edytowalne po konwersji. + +```csharp +using Aspose.Cells; +using Aspose.Slides; + +// 1️⃣ Load the Excel workbook +string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; +Workbook workbook = new Workbook(excelPath); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first sheet + +// 2️⃣ Configure image export – keep shapes editable +ImageOrPrintOptions imageOptions = new ImageOrPrintOptions +{ + OnePagePerSheet = true, // Export the whole sheet as one slide + ExportShapes = true, // Include shapes (charts, drawings) + ExportEditableTextBoxes = true // Make text boxes editable in PPTX +}; +``` + +**Dlaczego te flagi?** +- `OnePagePerSheet` zapobiega podziałowi arkusza na wiele slajdów – otrzymujesz jedną, pełnowymiarową grafikę. +- `ExportShapes` instruuje Aspose.Cells, aby rasteryzował wykresy *i* wektorowe kształty, zachowując ich wygląd. +- `ExportEditableTextBoxes` to tajny składnik, który pozwala dwukrotnie kliknąć pole tekstowe w PowerPoint i edytować tekst bez ponownego otwierania Excela. + +> **Pro tip:** Jeśli potrzebujesz tylko statycznego obrazu wykresu, ustaw `ExportShapes = false` i użyj metody `ExportExcelChartAsPicture` później (zobacz sekcję końcową). + +## Konwertuj Excel do PowerPoint – Generuj obraz z arkusza + +Mając gotowe opcje, przekształcamy arkusz w obiekt `System.Drawing.Image`. `WorksheetToImageConverter` wykonuje ciężką pracę, stosując właśnie zdefiniowane ustawienia. + +```csharp +// 3️⃣ Convert the worksheet to an image using the options above +WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); +System.Drawing.Image sheetImage = converter.ConvertToImage(0, imageOptions); +``` + +Argument `0` wskazuje pierwszą stronę (mamy tylko jedną ze względu na `OnePagePerSheet`). Powstały `sheetImage` zachowuje oryginalną rozdzielczość DPI, więc Twój slajd nie będzie wyglądał pikselowo nawet na wyświetlaczach o wysokiej rozdzielczości. + +## Zapisz prezentację jako PPTX – Wstaw obraz na slajd + +Teraz tworzymy nowy plik PowerPoint, dodajemy slajd i umieszczamy bitmapę. Aspose.Slides traktuje obraz jako kształt *picture frame*, który możesz później skalować lub przesuwać tak, jak każdy natywny obiekt PowerPoint. + +```csharp +// 4️⃣ Create a new PowerPoint presentation +Presentation presentation = new Presentation(); +ISlide slide = presentation.Slides[0]; // The default blank slide + +// Add the Excel‑derived image as a picture frame +slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, // Simple rectangle container + 0, 0, // Top‑left corner (0,0) + sheetImage.Width, // Width of the picture + sheetImage.Height, // Height of the picture + sheetImage); // The bitmap we generated +``` + +> **Co zrobić, gdy obraz jest większy niż rozmiar slajdu?** +> PowerPoint automatycznie przytnie wszystko, co wykracza poza wymiary slajdu. Szybkim rozwiązaniem jest skalowanie obrazu przed wstawieniem: + +```csharp +float scale = Math.Min(presentation.SlideSize.Size.Width / (float)sheetImage.Width, + presentation.SlideSize.Size.Height / (float)sheetImage.Height); +int newWidth = (int)(sheetImage.Width * scale); +int newHeight = (int)(sheetImage.Height * scale); +``` + +Następnie możesz przekazać `newWidth` i `newHeight` do `AddPictureFrame`. + +## Eksportuj arkusz jako obraz – Zapisz plik PPTX + +Na koniec zapisujemy prezentację na dysku. Flaga `SaveFormat.Pptx` zapewnia nowoczesny format OpenXML, który działa we wszystkich recentnych wersjach PowerPoint. + +```csharp +// 5️⃣ Save the presentation as a PPTX file +string pptxPath = "YOUR_DIRECTORY/Result.pptx"; +presentation.Save(pptxPath, SaveFormat.Pptx); +``` + +Gdy otworzysz `Result.pptx`, zobaczysz pojedynczy slajd wyglądający dokładnie jak Twój arkusz Excel, ale nadal możesz kliknąć dowolne pole tekstowe i edytować jego zawartość bezpośrednio w PowerPoint. + +## Eksportuj wykres Excel jako obraz – Gdy preferowane są obrazy rastrowe + +Czasami nie potrzebujesz edytowalnych kształtów; wystarczy wysokiej jakości PNG wykresu. Aspose.Cells może wyeksportować konkretny wykres do obrazu bez konwertowania całego arkusza: + +```csharp +// Example: Export the first chart on the sheet as a PNG +int chartIndex = 0; // Adjust if you have multiple charts +Chart chart = worksheet.Charts[chartIndex]; +ImageOrPrintOptions chartOptions = new ImageOrPrintOptions +{ + ImageFormat = ImageFormat.Png, + OnePagePerSheet = false +}; +chart.ToImage("chart.png", chartOptions); +``` + +Następnie możesz osadzić `chart.png` na slajdzie w ten sam sposób, w jaki dodaliśmy `sheetImage`. To podejście zmniejsza rozmiar pliku PPTX i jest przydatne, gdy otaczające dane nie są potrzebne na slajdzie. + +## Częste pułapki i jak ich unikać + +| Problem | Dlaczego się pojawia | Rozwiązanie | +|-------|----------------|-----| +| **Tekst jest rozmyty** | Eksport przy niskim DPI (domyślnie 96). | Ustaw `imageOptions.Dpi = 300;` przed konwersją. | +| **Kształty znikają** | `ExportShapes` ustawiono na `false`. | Upewnij się, że `ExportShapes = true`, gdy potrzebujesz edytowalnej grafiki. | +| **Niezgodność rozmiaru slajdu** | Obraz większy niż wymiary slajdu. | Skaluj obraz (zobacz fragment kodu) lub zmień rozmiar slajdu poprzez `presentation.SlideSize`. | +| **Wyjątek licencyjny** | Używanie wersji trial bez prawidłowej aktywacji. | Wywołaj `License license = new License(); license.SetLicense("Aspose.Total.lic");` na początku `Main`. | + +## Pełny działający przykład (gotowy do kopiowania i wklejania) + +Poniżej znajduje się cały program, gotowy do wklejenia w nowym projekcie konsolowym. Zamień `YOUR_DIRECTORY` na folder, w którym znajduje się Twój plik Excel. + +```csharp +using System; +using Aspose.Cells; +using Aspose.Slides; +using System.Drawing; + +namespace ExcelToPowerPointDemo +{ + class Program + { + static void Main(string[] args) + { + // ----------------------------------------------------------------- + // 1️⃣ Load the Excel workbook + // ----------------------------------------------------------------- + string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; + Workbook workbook = new Workbook(excelPath); + Worksheet worksheet = workbook.Worksheets[0]; + + // ----------------------------------------------------------------- + // 2️⃣ Set up export options – keep shapes editable + // ----------------------------------------------------------------- + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + OnePagePerSheet = true, + ExportShapes = true, + ExportEditableTextBoxes = true, + Dpi = 300 // High‑resolution output + }; + + // ----------------------------------------------------------------- + // 3️⃣ Convert worksheet to an image + // ----------------------------------------------------------------- + WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); + Image sheetImage = converter.ConvertToImage(0, imageOptions); + + // ----------------------------------------------------------------- + // 4️⃣ Create PowerPoint and add the image as a slide + // ----------------------------------------------------------------- + Presentation presentation = new Presentation(); + ISlide slide = presentation.Slides[0]; + slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, + 0, 0, + sheetImage.Width, + sheetImage.Height, + sheetImage); + + // ----------------------------------------------------------------- + // 5️⃣ Save the PPTX file + // ----------------------------------------------------------------- + string pptxPath = "YOUR_DIRECTORY/Result.pptx"; + presentation.Save(pptxPath, SaveFormat.Pptx); + + Console.WriteLine("✅ PowerPoint created successfully at: " + pptxPath); + } + } +} +``` + +**Oczekiwany wynik:** +Uruchomienie programu wypisuje `✅ PowerPoint created successfully at: YOUR_DIRECTORY/Result.pptx`. Otwarcie pliku PPTX pokazuje pojedynczy slajd odzwierciedlający oryginalny arkusz Excel, z edytowalnymi polami tekstowymi. + +## Podsumowanie i kolejne kroki + +Teraz wiesz, jak **utworzyć PowerPoint z Excela** przy użyciu potężnych API Aspose, jak **wyeksportować arkusz jako obraz** oraz jak **zapisać prezentację jako PPTX**, zachowując edytowalność. Ten sam wzorzec działa dla skoroszytów wielo‑arkuszowych – po prostu iteruj po `workbook.Worksheets` i dodawaj nowy slajd dla każdego. + +**Co warto zbadać dalej?** + +- **Konwersja wsadowa:** Przejdź przez folder plików Excel i generuj zestaw slajdów dla każdego pliku. +- **Dynamiczne układy:** Użyj `slide.LayoutSlide`, aby zastosować wcześniej zaprojektowane szablony PowerPoint. +- **Eksport tylko wykresu:** Połącz fragment „Export Excel chart as picture” z placeholderami slajdów, aby uzyskać lżejszą prezentację. +- **Zaawansowane stylizacje:** Dodaj własne tła slajdów, przejścia lub animacje za pomocą Aspose.Slides. + +Śmiało eksperymentuj – zmieniaj DPI, zamień `ShapeType.Ellipse` na okrągłą ramkę obrazu, a nawet osadzaj wiele obrazów na jednym slajdzie. Niebo jest granicą, gdy masz programistyczną kontrolę nad + +{{< /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/polish/net/document-properties/_index.md b/cells/polish/net/document-properties/_index.md index 38850c6c58..a0a7fa2f8f 100644 --- a/cells/polish/net/document-properties/_index.md +++ b/cells/polish/net/document-properties/_index.md @@ -35,6 +35,8 @@ Dowiedz się, jak uzyskać dostęp do właściwości dokumentu w programie Excel Dowiedz się, jak uzyskać dostęp do właściwości dokumentu w programie Excel za pomocą Aspose.Cells dla .NET dzięki naszemu przewodnikowi krok po kroku. Zarządzaj arkuszami kalkulacyjnymi wydajnie. ### [Dodawanie właściwości dokumentu w .NET](./adding-document-properties/) Dowiedz się, jak dodawać właściwości dokumentu w programie Excel za pomocą Aspose.Cells dla platformy .NET, korzystając ze szczegółowego przewodnika krok po kroku. +### [Jak zapisać plik XLSB z własnymi właściwościami w C# – przewodnik krok po kroku](./how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/) +Dowiedz się, jak zapisać plik XLSB z niestandardowymi właściwościami w C# przy użyciu Aspose.Cells dla .NET, krok po kroku. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/polish/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md b/cells/polish/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md new file mode 100644 index 0000000000..3b49abdf0c --- /dev/null +++ b/cells/polish/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md @@ -0,0 +1,232 @@ +--- +category: general +date: 2026-03-30 +description: Naucz się zapisywać pliki XLSB w C#, jednocześnie dodając własną właściwość, + odczytywać ją z powrotem oraz opanować zapisywanie skoroszytu jako XLSB przy użyciu + Aspose.Cells. Pełny kod w zestawie. +draft: false +keywords: +- how to save xlsb +- add custom property +- how to add property +- how to read property +- save workbook as xlsb +language: pl +og_description: Jak zapisać plik XLSB w C#? Ten samouczek pokazuje, jak dodać własną + właściwość, odczytać ją ponownie i zapisać skoroszyt jako XLSB przy użyciu Aspose.Cells. +og_title: Jak zapisać plik XLSB z własnymi właściwościami w C# – Kompletny przewodnik +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Jak zapisać plik XLSB z własnymi właściwościami w C# – Przewodnik krok po kroku +url: /pl/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak zapisać XLSB z własnymi właściwościami w C# – przewodnik krok po kroku + +Zastanawiałeś się kiedyś, **jak zapisać XLSB**, zachowując dodatkowe metadane dołączone do arkusza? Nie jesteś sam. W wielu scenariuszach korporacyjnych potrzebny jest binarny plik Excel, który nadal przechowuje własne pary klucz/wartość — pomyśl o identyfikatorze umowy, fladze przetwarzania lub tagu wersji. + +Dobra wiadomość jest taka, że Aspose.Cells robi to dziecinnie proste. W tym przewodniku zobaczysz dokładnie, jak dodać własną właściwość, zapisać ją i potem odczytać, wszystko przy **zapisywaniu skoroszytu jako XLSB**. Bez niejasnych odniesień, tylko kompletny, gotowy do uruchomienia przykład, który możesz od razu wkleić do swojego projektu. + +## Co zdobędziesz po przeczytaniu + +- Świeży plik `.xlsb` utworzony od podstaw. +- Możliwość **dodania własnej właściwości** do arkusza. +- Kod demonstrujący **jak odczytać właściwość** po ponownym wczytaniu pliku. +- Wskazówki dotyczące pułapek, które mogą pojawić się przy **zapisywaniu skoroszytu jako XLSB**. + +> **Wymagania wstępne:** .NET 6+ (lub .NET Framework 4.6+), Visual Studio (lub dowolne IDE C#) oraz biblioteka Aspose.Cells for .NET zainstalowana przez NuGet. Nic więcej. + +--- + +## Krok 1: Konfiguracja projektu i utworzenie nowego skoroszytu + +Na początek — uzyskaj czysty obiekt skoroszytu. + +```csharp +using Aspose.Cells; +using System; + +// Initialize a new workbook; this will be an in‑memory Excel file. +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0) – it’s created automatically. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Dlaczego to ważne:* `Workbook` jest punktem wejścia dla każdej operacji w Aspose.Cells. Rozpoczynając od nowej instancji, unikasz ukrytego stanu, który mógłby później uszkodzić twoje własne metadane. + +--- + +## Krok 2: **Dodanie własnej właściwości** do arkusza + +Teraz dołączymy parę klucz/wartość, która istnieje wyłącznie w tym arkuszu. + +```csharp +// Add a user‑defined property called "MyProperty" with the value "CustomValue". +worksheet.CustomProperties.Add("MyProperty", "CustomValue"); +``` + +> **Pro tip:** Nazwy właściwości rozróżniają wielkość liter. Jeśli później spróbujesz pobrać `"myproperty"`, otrzymasz `KeyNotFoundException`. Trzymaj się konwencji nazewnictwa — camelCase lub PascalCase — od samego początku. + +--- + +## Krok 3: **Zapisz skoroszyt jako XLSB** – utrwalenie właściwości + +Magia dzieje się, gdy zapisujesz skoroszyt w binarnym formacie XLSB. + +```csharp +// Define the output path. Adjust the folder to something writable on your machine. +string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + +// Save the workbook; the custom property travels with the file. +workbook.Save(outputPath, SaveFormat.Xlsb); +``` + +*Co tak naprawdę robisz:* Enum `SaveFormat.Xlsb` instruuje Aspose.Cells, aby wyemitował binarny plik Excel (szybszy w otwieraniu, mniejszy na dysku). Wszystkie własne właściwości na poziomie arkusza są automatycznie serializowane — nie są potrzebne dodatkowe kroki. + +--- + +## Krok 4: Ponowne wczytanie pliku i **jak odczytać właściwość** + +Udowodnijmy, że właściwość przetrwała pełen cykl. + +```csharp +// Load the just‑saved XLSB file back into memory. +Workbook reloadedWorkbook = new Workbook(outputPath); + +// Access the same worksheet (index 0) and fetch the property value. +string customValue = reloadedWorkbook.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); +``` + +Jeśli wszystko poszło gładko, `customValue` będzie teraz zawierać `"CustomValue"`. + +--- + +## Krok 5: Weryfikacja wyniku – szybki wynik w konsoli + +Mała kontrola poprawności pomaga w trakcie developmentu. + +```csharp +Console.WriteLine($"Custom property value: {customValue}"); +``` + +Uruchomienie programu powinno wypisać: + +``` +Custom property value: CustomValue +``` + +Widząc ten wiersz, wiesz, że opanowałeś **jak zapisać XLSB**, **dodać własną właściwość** oraz **jak odczytać właściwość** — wszystko w jednym schludnym przepływie. + +--- + +## Pełny działający przykład (gotowy do kopiowania) + +Poniżej znajduje się cały program. Wklej go do nowej aplikacji konsolowej, naciśnij **F5** i obserwuj, jak konsola potwierdza wartość właściwości. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // 1️⃣ Create a new workbook and get its first sheet + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // 2️⃣ Add a custom property (key/value) to the sheet + // ------------------------------------------------- + worksheet.CustomProperties.Add("MyProperty", "CustomValue"); + + // ------------------------------------------------- + // 3️⃣ Save the workbook as XLSB – the property is kept + // ------------------------------------------------- + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(outputPath, SaveFormat.Xlsb); + + // ------------------------------------------------- + // 4️⃣ Reload the saved file to demonstrate persistence + // ------------------------------------------------- + Workbook reloaded = new Workbook(outputPath); + + // ------------------------------------------------- + // 5️⃣ Retrieve the custom property's value + // ------------------------------------------------- + string customValue = reloaded.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); + + // ------------------------------------------------- + // 6️⃣ Display the retrieved value (optional) + // ------------------------------------------------- + Console.WriteLine($"Custom property value: {customValue}"); + } +} +``` + +> **Pamiętaj:** Zmień `outputPath` na folder, do którego masz prawo zapisu. Jeśli pracujesz na Linux/macOS, użyj ścieżki typu `"/tmp/WithCustomProp.xlsb"`. + +--- + +## Częste pytania i przypadki brzegowe + +### Co zrobić, gdy właściwość już istnieje? +Wywołanie `Add` z istniejącym kluczem rzuca `ArgumentException`. Użyj `ContainsKey` lub otocz wywołanie w `try/catch`, jeśli nie masz pewności. + +```csharp +if (!worksheet.CustomProperties.ContainsKey("MyProperty")) +{ + worksheet.CustomProperties.Add("MyProperty", "AnotherValue"); +} +``` + +### Czy mogę przechowywać wartości nie‑tekstowe? +Oczywiście. Właściwość `Value` przyjmuje dowolny `object`. Dla liczb, dat lub wartości logicznych przekaż odpowiedni typ — Aspose.Cells zajmie się konwersją przy odczycie. + +### Czy właściwość przetrwa konwersję do XLSX? +Tak. Własne właściwości są częścią reprezentacji XML arkusza, więc zachowują się przy formatach XLSX, XLS i XLSB. + +### Jak **dodać właściwość** do wielu arkuszy? +Iteruj po kolekcji `Worksheets` i zastosuj to samo wywołanie `CustomProperties.Add` do każdego arkusza, który potrzebuje tej właściwości. + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + ws.CustomProperties.Add("ExportedBy", "MyApp"); +} +``` + +### Wskazówka wydajnościowa przy **zapisywaniu skoroszytu jako XLSB** w dużej ilości +Jeśli generujesz setki plików, ponownie używaj tej samej instancji `Workbook` i wywołuj `Clear` po każdym zapisie, aby zwolnić pamięć. Dodatkowo ustaw `Workbook.Settings.CalculateFormulaOnOpen = false`, jeśli nie potrzebujesz obliczania formuł przy otwieraniu. + +--- + +## Zakończenie + +Teraz wiesz, **jak zapisać XLSB** w C# jednocześnie osadzając i później odczytując własną właściwość przy użyciu Aspose.Cells. Kompletny proces — tworzenie skoroszytu, dodawanie właściwości, utrwalenie jej przy **zapisie skoroszytu jako XLSB**, ponowne wczytanie i odczyt wartości — mieści się w mniej niż 50 linijkach kodu. + +Od tego momentu możesz rozważyć: + +- Dodawanie wielu własnych właściwości do każdego arkusza. +- Przechowywanie złożonych obiektów jako ciągi JSON. +- Szyfrowanie pliku XLSB dla dodatkowego bezpieczeństwa. + +Wypróbuj te pomysły i szybko zostaniesz osobą, do której zespół zwróci się w sprawie automatyzacji Excela. Masz pytania lub trudny scenariusz? zostaw komentarz poniżej i powodzenia w kodowaniu! + +![Jak zapisać XLSB z własną właściwością](/images/how-to-save-xlsb.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/polish/net/excel-copy-worksheet/_index.md b/cells/polish/net/excel-copy-worksheet/_index.md index 97e1701dc4..6e4397f26b 100644 --- a/cells/polish/net/excel-copy-worksheet/_index.md +++ b/cells/polish/net/excel-copy-worksheet/_index.md @@ -42,6 +42,7 @@ Aspose.Cells for .NET oferuje potężną funkcjonalność do manipulowania plika | [Arkusz kalkulacyjny do kopiowania w programie Excel](./excel-copy-worksheet/) | Dowiedz się, jak skopiować arkusz kalkulacyjny programu Excel za pomocą Aspose.Cells dla .NET dzięki temu łatwemu w użyciu przewodnikowi krok po kroku. Idealne dla programistów .NET, którzy chcą zautomatyzować zadania programu Excel. | | [Excel Kopiuj arkusze kalkulacyjne między skoroszytami](./excel-copy-worksheets-between-workbooks/) | Dowiedz się, jak kopiować arkusze kalkulacyjne między skoroszytami programu Excel przy użyciu Aspose.Cells dla .NET. Przewodnik krok po kroku z przykładami kodu, który usprawni zarządzanie arkuszami kalkulacyjnymi. | | [Arkusz kalkulacyjny programu Excel Move](./excel-move-worksheet/) | Naucz się przenosić arkusze kalkulacyjne w programie Excel za pomocą Aspose.Cells dla .NET w naszym przewodniku krok po kroku. Opanuj sztukę programowania w programie Excel. | +| [Jak skopiować arkusz kalkulacyjny w C# przy użyciu Aspose.Cells – Kompletny przewodnik](./how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/) | Kompletny przewodnik pokazujący, jak skopiować arkusz w C# przy użyciu Aspose.Cells, z przykładami kodu i wskazówkami. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/polish/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md b/cells/polish/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md new file mode 100644 index 0000000000..271532510c --- /dev/null +++ b/cells/polish/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md @@ -0,0 +1,268 @@ +--- +category: general +date: 2026-03-30 +description: Jak skopiować arkusz w C# przy użyciu Aspose.Cells – krok po kroku przewodnik + obejmujący kopiowanie zakresu komórek, kopiowanie kolumn między arkuszami, kopiowanie + tabeli przestawnej arkusza oraz dodawanie kodu nowego arkusza. +draft: false +keywords: +- how to copy worksheet +- copy cell range +- copy columns between sheets +- copy worksheet pivot table +- add new worksheet code +language: pl +og_description: Dowiedz się, jak kopiować arkusz w C# przy użyciu Aspose.Cells. Ten + przewodnik pokazuje, jak kopiować zakres komórek, zachować tabele przestawne, kopiować + kolumny między arkuszami oraz dodać kod nowego arkusza. +og_title: Jak skopiować arkusz w C# – Pełny samouczek Aspose.Cells +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Jak skopiować arkusz w C# przy użyciu Aspose.Cells – kompletny przewodnik +url: /pl/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak skopiować arkusz w C# przy użyciu Aspose.Cells – Kompletny przewodnik + +Zastanawiałeś się kiedyś **how to copy worksheet** w C# bez utraty żadnej tabeli przestawnej ani formuły? Nie jesteś sam — wielu programistów napotyka problem, gdy muszą zduplikować arkusz, zachowując wszystkie elementy w niezmienionej formie. W tym samouczku przeprowadzimy Cię przez praktyczne, kompleksowe rozwiązanie, które nie tylko kopiuje dane, ale także zachowuje **copy worksheet pivot table**, obsługuje **copy cell range** i pokazuje **add new worksheet code**, którego będziesz potrzebował. + +Omówimy wszystko, od wczytania źródłowego skoroszytu po zapisanie pliku docelowego, abyś mógł **copy columns between sheets**, zachować obiekty i utrzymać kod w czystości. Bez niejasnych odniesień, tylko kompletny, gotowy do uruchomienia przykład, który możesz od razu wkleić do swojego projektu. + +## Co obejmuje ten samouczek + +- Ładowanie istniejącego pliku Excel przy użyciu Aspose.Cells +- Użycie **add new worksheet code** do utworzenia arkusza docelowego +- Definiowanie **copy cell range**, które zawiera tabelę przestawną +- Konfigurowanie **CopyOptions**, aby zachować wykresy, formuły i tabele przestawne w niezmienionej formie +- Wykonywanie **copy columns between sheets** z precyzją wiersz po wierszu +- Zapis wyniku i weryfikacja, że arkusz został skopiowany poprawnie + +Po zakończeniu tego przewodnika będziesz w stanie pewnie odpowiedzieć na pytanie „how to copy worksheet”, niezależnie od tego, czy automatyzujesz raporty, czy tworzysz interfejs oparty na arkuszach kalkulacyjnych. + +## Jak skopiować arkusz – przegląd + +Zanim przejdziemy do kodu, przedstawmy ogólny przebieg. Pomyśl o tym jak o przepisie: + +1. **Load** źródłowy skoroszyt (`Source.xlsx`). +2. **Add** nowy arkusz, w którym umieścisz kopię (`add new worksheet code`). +3. **Define** obszar, który chcesz zduplikować (`copy cell range`). +4. **Configure** opcje kopiowania, aby tabela przestawna przetrwała (`copy worksheet pivot table`). +5. **Copy** wiersze i kolumny (`copy columns between sheets`). +6. **Save** nowy skoroszyt (`Destination.xlsx`). + +To wszystko — sześć kroków, bez magii. Każdy krok jest wyjaśniony poniżej wraz z fragmentami kodu i uzasadnieniem. + +## Krok 1 – Ładowanie źródłowego skoroszytu + +Na początek: potrzebujesz instancji `Workbook`, wskazującej na plik, który chcesz zduplikować. Ten krok jest niezbędny, ponieważ Aspose.Cells działa bezpośrednio na systemie plików, a nie w interfejsie Office. + +```csharp +using Aspose.Cells; + +// Path to the original file +string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; +string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + +// Load the workbook – this is the starting point for how to copy worksheet +Workbook workbook = new Workbook(sourcePath); +``` + +*Dlaczego to ważne:* Ładowanie pliku tworzy w pamięci reprezentację każdego arkusza, komórki i obiektu. Bez tego nie ma nic do skopiowania, a każda próba użycia `add new worksheet code` później zakończy się niepowodzeniem, ponieważ dane źródłowe nie istnieją. + +## Krok 2 – Dodanie nowego arkusza (add new worksheet code) + +Teraz potrzebujemy miejsca, aby wkleić skopiowane dane. To właśnie **add new worksheet code** błyszczy. Możesz nazwać arkusz dowolnie; tutaj nazywamy go `"Copy"`. + +```csharp +// Grab the first worksheet (the one we want to copy) +Worksheet sourceSheet = workbook.Worksheets[0]; + +// Add a fresh worksheet to receive the copy +Worksheet copySheet = workbook.Worksheets.Add("Copy"); +``` + +*Wskazówka:* Jeśli planujesz kopiować wiele arkuszy, wywołaj `Worksheets.Add` w pętli i nadaj każdemu arkuszowi unikalną nazwę. Dzięki temu unikniesz kolizji nazw i utrzymasz porządek w skoroszycie. + +## Krok 3 – Definiowanie zakresu kopiowania komórek + +**copy cell range** informuje Aspose.Cells dokładnie, które wiersze i kolumny należy zduplikować. W wielu rzeczywistych scenariuszach zakres zawiera tabelę przestawną, więc musimy być precyzyjni. + +```csharp +// Define the area that contains the pivot table (A1:G20) +CellArea sourceRange = new CellArea +{ + StartRow = 0, // Row 1 (zero‑based) + StartColumn = 0, // Column A + EndRow = 19, // Row 20 + EndColumn = 6 // Column G +}; + +// Destination range – we start at the same top‑left corner +CellArea destinationRange = new CellArea +{ + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 +}; +``` + +*Dlaczego tego potrzebujemy:* Określając zakres explicite, unikamy kopiowania całego arkusza (co może być nieefektywne) i zapewniamy, że tabela przestawna znajduje się w skopiowanym obszarze. To jest sedno **how to copy worksheet**, gdy potrzebujesz tylko części arkusza. + +## Krok 4 – Ustawienie opcji kopiowania (zachowanie copy worksheet pivot table) + +Aspose.Cells udostępnia obiekt `CopyOptions`, który kontroluje, co zostaje wklejone. Aby zachować tabelę przestawną, wykresy i formuły, ustawiamy `PasteType.All` i włączamy `PasteSpecial`. + +```csharp +CopyOptions copyOptions = new CopyOptions +{ + PasteType = PasteType.All, // Copy everything: values, formats, objects + PasteSpecial = true // Enable special paste to retain pivot tables +}; +``` + +*Wyjaśnienie:* `PasteType.All` jest najbardziej inkluzywną opcją, natomiast `PasteSpecial` instruuje silnik, aby prawidłowo obsługiwał złożone obiekty — takie jak tabele przestawne. Pominięcie tego kroku jest częstym pułapką; skopiowany arkusz straciłby interaktywne funkcje. + +## Krok 5 – Kopiowanie wierszy i kolumn (copy columns between sheets) + +Teraz następuje najcięższa część: faktyczne przenoszenie danych. Użyjemy `CopyRows` i `CopyColumns`, aby obsłużyć **copy columns between sheets**. Wykonanie obu zapewnia zachowanie scalonych komórek i szerokości kolumn. + +```csharp +// Copy rows from the source to the destination sheet +sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + +// Copy columns from the source to the destination sheet +sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); +``` + +*Co się dzieje:* `CopyRows` przenosi dane wiersz po wierszu, natomiast `CopyColumns` robi to samo kolumna po kolumnie. Uruchomienie obu gwarantuje, że cały prostokątny blok zostanie zduplikowany, co jest niezbędne, gdy musisz **copy columns between sheets**, które mają różne szerokości kolumn lub ukryte kolumny. + +## Krok 6 – Zapis skoroszytu + +Na koniec zapisz zmiany na dysku. Ten krok finalizuje proces **how to copy worksheet**. + +```csharp +// Save the workbook with the newly copied sheet +workbook.Save(destinationPath); +``` + +*Wskazówka weryfikacyjna:* Otwórz `Destination.xlsx` i sprawdź, czy arkusz `"Copy"` wygląda identycznie jak oryginał, tabele przestawne działają, a szerokości kolumn się zgadzają. Jeśli coś jest nie tak, sprawdź ponownie ustawienia `CopyOptions`. + +## Przypadki brzegowe i typowe wariacje + +### Kopiowanie wielu arkuszy + +Jeśli musisz zduplikować kilka arkuszy, otocz powyższą logikę pętlą `foreach`: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + Worksheet newWs = workbook.Worksheets.Add(ws.Name + "_Copy"); + // Re‑use sourceRange/destinationRange or calculate per sheet + // Then call CopyRows/CopyColumns as shown earlier +} +``` + +### Zachowanie formuł w różnych skoroszytach + +Gdy źródłowy i docelowy skoroszyt mają różne nazwy zakresów, ustaw `copyOptions` na `PasteType.Formulas` oprócz `All`: + +```csharp +copyOptions.PasteType = PasteType.All | PasteType.Formulas; +``` + +### Duże zakresy i wydajność + +Dla ogromnych zestawów danych (setki tysięcy wierszy) rozważ użycie wyłącznie `CopyRows` i pominięcie `CopyColumns`, jeśli szerokości kolumn nie są krytyczne. To może zaoszczędzić kilka sekund. + +## Pełny działający przykład + +Poniżej znajduje się kompletny, gotowy do uruchomienia program, który zawiera wszystko, o czym rozmawialiśmy. Wklej go do aplikacji konsolowej, dostosuj ścieżki plików i naciśnij **F5**. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // ---------- Step 1: Load the source workbook ---------- + string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; + string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + Workbook workbook = new Workbook(sourcePath); + + // ---------- Step 2: Add a new worksheet (add new worksheet code) ---------- + Worksheet sourceSheet = workbook.Worksheets[0]; + Worksheet copySheet = workbook.Worksheets.Add("Copy"); + + // ---------- Step 3: Define the copy cell range ---------- + CellArea sourceRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + CellArea destinationRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + + // ---------- Step 4: Set copy options (preserve copy worksheet pivot table) ---------- + CopyOptions copyOptions = new CopyOptions + { + PasteType = PasteType.All, + PasteSpecial = true + }; + + // ---------- Step 5: Copy rows and columns (copy columns between sheets) ---------- + sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + + sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); + + // ---------- Step 6: Save the workbook ---------- + workbook.Save(destinationPath); + } +} +``` + +**Oczekiwany rezultat:** Otworzenie `Destination.xlsx` pokazuje arkusz o nazwie **Copy**, który odzwierciedla pierwszy arkusz `Source.xlsx` — włącznie z tabelami przestawnymi, formatowaniem i szerokościami kolumn. Oryginalny plik pozostaje niezmieniony. + +## Najczęściej zadawane pytania + +**Q: Czy to działa z plikami .xlsx utworzonymi w Excel 2019?** +A: Zdecydowanie tak. Aspose.Cells obsługuje wszystkie współczesne formaty Excel, więc ten sam kod działa dla plików `.xlsx`, `.xlsm`, a nawet starszych `.xls`. + +{{< /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/polish/net/excel-custom-number-date-formatting/_index.md b/cells/polish/net/excel-custom-number-date-formatting/_index.md index 90165acefb..0020875141 100644 --- a/cells/polish/net/excel-custom-number-date-formatting/_index.md +++ b/cells/polish/net/excel-custom-number-date-formatting/_index.md @@ -36,6 +36,10 @@ Ten samouczek wyposaży Cię w umiejętności importowania zestawów danych przy Dowiedz się, jak sprawdzić wartości komórek programu Excel pod kątem niestandardowych formatów liczbowych za pomocą Aspose.Cells dla platformy .NET, korzystając z tego samouczka krok po kroku. ### [Określ pola formuły podczas importowania danych do arkusza programu Excel](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) W tym szczegółowym samouczku dowiesz się, jak importować dane do arkuszy Excela z określonymi polami formuły za pomocą Aspose.Cells for .NET. +### [Formatowanie liczb z separatorem w C# – Kompletny przewodnik Aspose.Cells](./format-number-with-separator-in-c-complete-aspose-cells-guid/) +Dowiedz się, jak formatować liczby z separatorem w C# przy użyciu Aspose.Cells, krok po kroku. +### [Formatowanie daty ISO z Excela – Kompletny przewodnik C#](./format-date-iso-from-excel-complete-c-guide/) +Dowiedz się, jak konwertować daty w formacie ISO w Excelu przy użyciu Aspose.Cells i C#, krok po kroku. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/polish/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md b/cells/polish/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..36653cc07c --- /dev/null +++ b/cells/polish/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md @@ -0,0 +1,219 @@ +--- +category: general +date: 2026-03-30 +description: Naucz się formatować datę w formacie ISO, odczytując wartości daty i + czasu z Excela oraz wyodrębniając dane daty i czasu z Excela przy użyciu Aspose.Cells + w C#. +draft: false +keywords: +- format date iso +- read excel datetime +- extract datetime excel +- Aspose.Cells date parsing +- Japanese era dates +language: pl +og_description: formatowanie daty ISO z danych Excel przy użyciu Aspose.Cells. Ten + przewodnik pokazuje, jak odczytać daty i godziny z Excela, wyodrębnić ich wartości + oraz wyświetlić daty w formacie ISO. +og_title: Formatowanie daty ISO z Excela – krok po kroku tutorial C# +tags: +- C# +- Excel +- DateTime +- Aspose.Cells +title: formatowanie daty ISO z Excela – Kompletny przewodnik C# +url: /pl/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# formatowanie daty iso z Excela – Kompletny przewodnik C# + +Czy kiedykolwiek potrzebowałeś **format date iso** przy wyciąganiu dat z arkusza Excel? Być może operujesz na japońskich datach ery, albo po prostu chcesz czysty ciąg `yyyy‑MM‑dd` do ładunku API. W tym samouczku zobaczysz dokładnie, jak **read Excel datetime** komórki, **extract datetime Excel** wartości i przekształcić je do formatu ISO‑8601 — bez zgadywania. + +Przejdziemy przez rzeczywisty przykład wykorzystujący Aspose.Cells, wyjaśnimy, dlaczego każda linia ma znaczenie, i pokażemy ostateczny wynik, który możesz skopiować‑wkleić do swojego projektu. Po zakończeniu będziesz w stanie obsłużyć dziwaczne ciągi ery, takie jak „令和3年5月1日”, i wygenerować standardową datę ISO, gotową do baz danych, JSON lub gdziekolwiek jej potrzebujesz. + +## Wymagania wstępne + +- .NET 6.0 lub nowszy (kod działa również z .NET Framework) +- Aspose.Cells dla .NET (bezpłatna wersja próbna lub licencjonowana) +- Podstawowa znajomość C# i koncepcji Excela +- Visual Studio lub dowolny edytor C#, który lubisz + +Żadne dodatkowe pakiety NuGet nie są wymagane poza Aspose.Cells, więc konfiguracja jest dość prosta. + +--- + +## Krok 1: Utwórz skoroszyt i skieruj się do pierwszego arkusza + +Pierwszą rzeczą, którą robisz, jest utworzenie nowego obiektu `Workbook`. Daje to pamięciową reprezentację pliku Excel, którą możesz następnie manipulować lub odczytywać. + +```csharp +using Aspose.Cells; +using System.Globalization; + +// Step 1: Initialize a new workbook and grab the first worksheet +Workbook workbook = new Workbook(); // creates an empty .xlsx +Worksheet worksheet = workbook.Worksheets[0]; // the default sheet is "Sheet1" +``` + +*Dlaczego to ważne:* +Tworzenie skoroszytu programowo pozwala uniknąć pracy z fizycznymi plikami podczas testów. Zapewnia również, że odwołanie do arkusza jest zawsze prawidłowe — bez niespodziewanych null‑reference później, gdy próbujesz **read Excel datetime** wartości. + +--- + +## Krok 2: Wpisz ciąg daty japońskiej ery do komórki + +Naszym celem jest pokazanie parsowania daty nie‑gregoriańskiej. Umieścimy ciąg ery bezpośrednio w komórce **A1**. + +```csharp +// Step 2: Insert a Japanese era date string into cell A1 +worksheet.Cells["A1"].PutValue("令和3年5月1日"); +``` + +*Wskazówka:* Jeśli pobierasz dane z istniejącego skoroszytu, pominiesz wywołanie `PutValue` i po prostu odwołasz się do komórki, która już zawiera datę. Kluczowe jest, aby komórka zawierała **string**, który reprezentuje datę w japońskim kalendarzu lunarnym. + +--- + +## Krok 3: Skonfiguruj kulturę rozumiejącą japoński kalendarz lunarny + +Klasa `CultureInfo` w .NET pozwala określić, jak daty mają być interpretowane. Zamieniając domyślny kalendarz gregoriański na `JapaneseLunisolarCalendar`, dostarczasz parserowi potrzebny kontekst. + +```csharp +// Step 3: Set up a culture using the Japanese lunisolar calendar +CultureInfo japaneseCulture = new CultureInfo("ja-JP"); +japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); +``` + +*Dlaczego to robimy:* +Gdybyś próbował sparsować „令和3年5月1日” przy użyciu domyślnej kultury, .NET wyrzuci `FormatException`. Wstawienie kalendarza lunarskiego informuje środowisko dokładnie, jak zamapować „令和3年” (3. rok ery Reiwa) na rok gregoriański 2021. + +--- + +## Krok 4: Sparsuj wartość komórki jako `DateTime` przy użyciu skonfigurowanej kultury + +Teraz następuje serce operacji — przekształcenie tego ciągu ery w prawidłowy obiekt `DateTime`. Aspose.Cells udostępnia wygodny przeciążony `GetDateTime`, który przyjmuje `CultureInfo`. + +```csharp +// Step 4: Retrieve the cell value as a DateTime, respecting the Japanese culture +DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); +``` + +*Co się dzieje w tle:* +`GetDateTime` odczytuje surowy ciąg, stosuje reguły kalendarza dostarczonej kultury i zwraca `DateTime`, który reprezentuje tę samą chwilę w kalendarzu gregoriańskim. To jest moment, w którym **extract datetime Excel** dane w formie, z którą możesz pracować w .NET. + +--- + +## Krok 5: Wyświetl sparsowaną datę w formacie ISO 8601 + +Na koniec formatujemy `DateTime` jako ciąg ISO — `yyyy‑MM‑dd` — który jest powszechnie akceptowany przez API, bazy danych i frameworki front‑end. + +```csharp +// Step 5: Print the date in ISO format (e.g., 2021-05-01) +Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // Output: 2021-05-01 +``` + +*Dlaczego ISO?* +ISO 8601 eliminuje niejednoznaczność. „05/01/2021” może oznaczać 1 maja lub 5 stycznia w zależności od ustawień regionalnych. `2021-05-01` jest całkowicie jasne, dlatego **format date iso** w prawie każdym scenariuszu integracji. + +--- + +## Pełny działający przykład + +Poniżej znajduje się kompletny, gotowy do uruchomienia program. Skopiuj go do projektu aplikacji konsolowej, dodaj odwołanie do Aspose.Cells i naciśnij **F5**. + +```csharp +using Aspose.Cells; +using System; +using System.Globalization; + +class Program +{ + static void Main() + { + // 1️⃣ Create workbook and select the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("令和3年5月1日"); + + // 3️⃣ Set up Japanese lunisolar culture + CultureInfo japaneseCulture = new CultureInfo("ja-JP"); + japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); + + // 4️⃣ Parse the cell value as DateTime using the culture + DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); + + // 5️⃣ Output the date in ISO format + Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // 2021-05-01 + } +} +``` + +**Oczekiwany wynik** + +``` +2021-05-01 +``` + +Uruchom go raz, a zobaczysz datę w formacie ISO wydrukowaną w konsoli. To cały potok od **read Excel datetime** do **format date iso**. + +--- + +## Obsługa typowych przypadków brzegowych + +### 1. Komórki zawierające rzeczywiste liczby dat w Excelu + +Czasami Excel przechowuje daty jako liczby seryjne (np. `44204`). W takim przypadku nie potrzebujesz kultury; po prostu wywołaj `GetDateTime()` bez parametrów: + +```csharp +DateTime serialDate = worksheet.Cells["B2"].GetDateTime(); // B2 holds a numeric date +Console.WriteLine(serialDate.ToString("yyyy-MM-dd")); +``` + +### 2. Puste lub nieprawidłowe komórki + +Jeśli komórka jest pusta lub zawiera nieparsowalny ciąg, `GetDateTime` wyrzuci wyjątek. Owiń wywołanie w `try/catch` lub najpierw sprawdź `IsDateTime`: + +```csharp +if (worksheet.Cells["C3"].Type == CellValueType.IsDateTime) +{ + DateTime safeDate = worksheet.Cells["C3"].GetDateTime(); + Console.WriteLine(safeDate.ToString("yyyy-MM-dd")); +} +else +{ + Console.WriteLine("Cell C3 does not contain a valid date."); +} +``` + +### 3. Różne formaty ery + +Inne japońskie ery (Heisei, Showa) podążają za tym samym schematem. Ten sam `JapaneseLunisolarCalendar` obsłuży je automatycznie, więc nie potrzebujesz dodatkowej logiki — po prostu podaj ciąg. + +--- + +## Porady i pułapki + +- **Wydajność:** Podczas przetwarzania dużych arkuszy, ponownie używaj jednej instancji `CultureInfo` zamiast tworzyć nową w pętli. +- **Bezpieczeństwo wątków:** Obiekty `CultureInfo` są tylko do odczytu po ustawieniu kalendarza, więc można je bezpiecznie udostępniać między wątkami. +- **Licencjonowanie Aspose.Cells:** Jeśli używasz wersji próbnej, pamiętaj, że niektóre funkcje mogą być ograniczone po wygaśnięciu okresu próbnego. Parsowanie dat pokazane tutaj działa zarówno w trybie próbnym, jak i licencjonowanym. +- **Strefy czasowe:** `DateTime`, który otrzymujesz, jest **nieokreślony** (brak strefy czasowej). Jeśli potrzebujesz UTC, wywołaj `DateTime.SpecifyKind(parsedDate, DateTimeKind.Utc)` lub skonwertuj przy użyciu `TimeZoneInfo`. + +--- + +## Zakończenie + +Omówiliśmy wszystko, co potrzebne, aby **format date iso** z skoroszytu Excel przy użyciu C#. Zaczynając od surowego ciągu japońskiej ery, **read Excel datetime**, ustawiliśmy odpowiednią kulturę, **extract datetime excel** dane i w końcu wyprowadziliśmy czysty ciąg ISO‑8601. Podejście działa dla każdej reprezentacji daty, jaką Excel może Ci przedstawić, niezależnie czy to liczba seryjna, ciąg zależny od ustawień regionalnych, czy tradycyjny format ery. + +Kolejne kroki? Spróbuj przeiterować całą kolumnę dat, zapisać wyniki ISO z powrotem do nowego arkusza lub wprowadzić je bezpośrednio do ładunku JSON dla usługi webowej. Jeśli jesteś ciekawy innych systemów kalendarzowych (hebrajski, islamski), Aspose.Cells i `CultureInfo` w .NET ułatwiają takie eksperymenty. + +Masz pytania lub trudny format daty, którego nie możesz rozgryźć? zostaw komentarz poniżej i szczęśliwego kodowania! + +{{< /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/polish/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md b/cells/polish/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md new file mode 100644 index 0000000000..73dff93edb --- /dev/null +++ b/cells/polish/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md @@ -0,0 +1,251 @@ +--- +category: general +date: 2026-03-30 +description: Dowiedz się, jak formatować liczbę z separatorem przy użyciu Aspose.Cells + w C#. Zawiera ustawianie własnego formatu liczby, dodawanie separatora tysięcy, + formatowanie miejsc dziesiętnych oraz sposób formatowania komórki. +draft: false +keywords: +- format number with separator +- set custom number format +- add thousands separator +- format decimal places +- how to format cell +language: pl +og_description: Formatuj liczbę z separatorem w C#. Ten przewodnik pokazuje, jak ustawić + własny format liczby, dodać separator tysięcy, sformatować miejsca dziesiętne oraz + jak sformatować komórkę przy użyciu Aspose.Cells. +og_title: Formatowanie liczb z separatorem w C# – Poradnik Aspose.Cells +tags: +- C# +- Aspose.Cells +- Number Formatting +title: Formatowanie liczb z separatorem w C# – Kompletny przewodnik Aspose.Cells +url: /pl/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Formatuj liczbę z separatorem w C# – Kompletny przewodnik Aspose.Cells + +Kiedykolwiek potrzebowałeś **formatować liczbę z separatorem** w arkuszu kalkulacyjnym, ale nie byłeś pewien, którego wywołania API użyć? Nie jesteś jedyny — programiści nieustannie zmagają się z separatorami tysięcy, miejscami dziesiętnymi i niestandardowymi wzorcami przy eksportowaniu danych. + +Dobre wieści: Aspose.Cells sprawia, że to dziecinnie proste. W tym samouczku przeprowadzimy Cię przez praktyczny przykład, który **ustawia niestandardowy format liczby**, **dodaje separator tysięcy**, **formatuje miejsca dziesiętne** i pokazuje **jak formatować komórkę** jako ciąg znaków. Po zakończeniu będziesz mieć gotowy fragment kodu, który możesz wkleić do dowolnego projektu .NET. + +## Co obejmuje ten przewodnik + +* Dokładny pakiet NuGet, którego potrzebujesz, oraz sposób jego instalacji. +* Krok po kroku kod, który tworzy skoroszyt, zapisuje wartość liczbową i stosuje niestandardowy format. +* Dlaczego `ExportTableOptions.ExportAsString` jest preferowanym sposobem pobierania sformatowanej wartości. +* Typowe pułapki — np. zapomnienie o włączeniu `ExportAsString` lub użycie niewłaściwej maski formatowania. +* Jak dostosować maskę formatu, jeśli potrzebujesz innej liczby miejsc dziesiętnych lub innego stylu separatora. + +Nie są potrzebne żadne zewnętrzne linki do dokumentacji; wszystko, czego potrzebujesz, znajduje się tutaj. Zanurzmy się. + +--- + +## Prerequisites + +| Wymaganie | Powód | +|-------------|--------| +| .NET 6.0 lub nowszy | Aspose.Cells 23.10+ celuje w .NET Standard 2.0+, więc .NET 6 jest bezpieczny i aktualny. | +| Visual Studio 2022 (lub dowolne IDE C#) | Ułatwia debugowanie i zarządzanie pakietami. | +| Aspose.Cells for .NET NuGet package | Dostarcza klasy `Workbook`, `Worksheet` i `ExportTableOptions`, których użyjemy. | + +Możesz zainstalować pakiet za pomocą konsoli Menedżera Pakietów: + +```powershell +Install-Package Aspose.Cells +``` + +To wszystko — żadnych dodatkowych DLL, żadnego COM interop, tylko pojedyncze odwołanie NuGet. + +--- + +## Krok 1: Inicjalizacja nowego skoroszytu (Jak formatować komórkę) + +Pierwszą rzeczą, którą robimy, jest stworzenie nowej instancji `Workbook`. Traktuj to jak pusty plik Excel gotowy do przyjęcia danych. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Create a new workbook – this is where we’ll format the cell. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Dlaczego to ważne:** `Workbook` jest punktem wejścia dla każdej operacji w Aspose.Cells. Pobierając pierwszą arkusz (`Worksheets[0]`) uzyskujemy czyste płótno bez konieczności nadawania nazwy arkuszowi. + +--- + +## Krok 2: Zapisz wartość liczbową w docelowej komórce + +Następnie umieszczamy surową liczbę w komórce **A1**. Sama wartość nie jest jeszcze sformatowana — to po prostu typ double. + +```csharp + // Step 2: Insert a raw numeric value. + worksheet.Cells["A1"].PutValue(12345.6789); +``` + +> **Wskazówka:** Używaj `PutValue` zamiast `PutString`, gdy zamierzasz później zastosować formatowanie liczbowe. To zachowuje podstawowy typ danych, umożliwiając obliczenia zgodne z Excelem. + +--- + +## Krok 3: Ustaw niestandardowy format liczby (Dodaj separator tysięcy i formatuj miejsca dziesiętne) + +Teraz przychodzi serce samouczka: definiowanie maski formatu, która mówi Aspose.Cells, jak wyświetlić liczbę. Maska `#,##0.00` robi trzy rzeczy: + +1. **`#,##0`** – dodaje separator tysięcy (domyślnie przecinek). +2. **`.00`** – wymusza dokładnie dwie miejsca dziesiętne. + +Jeśli potrzebujesz innej liczby miejsc dziesiętnych, po prostu zmień liczbę `0` po przecinku. + +```csharp + // Step 3: Configure the custom number format. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, // Return the value as a formatted string. + NumberFormat = "#,##0.00" // Add thousands separator and fix to 2 decimals. + }; +``` + +> **Dlaczego używamy `ExportAsString`**: Domyślnie `ExportString` zwraca surową wartość. Ustawienie `ExportAsString = true` zmusza API do zastosowania maski `NumberFormat` przed konwersją na tekst. Jest to niezbędne, gdy potrzebujesz dokładnej reprezentacji ciągu znaków dla raportów, ładunków JSON lub wyświetlania w interfejsie użytkownika. + +--- + +## Krok 4: Eksportowanie sformatowanego tekstu (Jak formatować komórkę) + +Mając gotowe opcje, wywołujemy `ExportString` na tej samej komórce. Metoda respektuje maskę, którą właśnie zdefiniowaliśmy, i zwraca ładnie sformatowany ciąg znaków. + +```csharp + // Step 4: Export the formatted value. + string formattedCellText = worksheet.Cells["A1"].ExportString(exportOptions); + + // Step 5: Show the result. + Console.WriteLine(formattedCellText); // Expected output: 12,345.68 + } +} +``` + +Uruchomienie programu wypisuje **`12,345.68`** w konsoli — dokładnie w żądanym formacie. + +> **Przypadek brzegowy:** Jeśli źródłowa liczba ma więcej niż dwie miejsca dziesiętne, maska ją zaokrągla. Jeśli potrzebujesz przycięcia zamiast zaokrąglenia, musisz wstępnie przetworzyć wartość przy użyciu `Math.Truncate` przed wywołaniem `PutValue`. + +--- + +## Krok 5: Dostosowywanie formatu – typowe wariacje + +### 5.1 Zmiana precyzji dziesiętnej + +Chcesz trzy miejsca dziesiętne? Po prostu zamień maskę: + +```csharp +NumberFormat = "#,##0.000" // → 12,345.679 +``` + +### 5.2 Użycie innego separatora tysięcy + +Niektóre lokalizacje preferują spację lub kropkę. Możesz wstawić znak bezpośrednio: + +```csharp +NumberFormat = "# ##0.00" // Uses a non‑breaking space as separator. +``` + +Albo polegać na ustawieniach kultury skoroszytu: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("de-DE"); +NumberFormat = "#.##0,00"; // German style: 12.345,68 +``` + +### 5.3 Prefiks lub sufiks (Waluta, Procent) + +Dodaj znak dolara lub procenta bezpośrednio w masce: + +```csharp +NumberFormat = "$#,##0.00"; // → $12,345.68 +NumberFormat = "0.00%"; // → 1,234,568.00% +``` + +> **Uwaga:** Maska jest rozróżniająca wielkość liter. `$` i `%` są symbolami literałowymi; nie wpływają na podstawową wartość liczbową. + +--- + +## Krok 6: Pełny działający przykład (Gotowy do kopiowania i wklejenia) + +Poniżej znajduje się kompletny program, który możesz skopiować do nowej aplikacji konsolowej. Zawiera wszystkie kroki, komentarze oraz weryfikację końcowego wyniku. + +```csharp +using System; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write raw numeric value to A1. + worksheet.Cells["A1"].PutValue(12345.6789); + + // 3️⃣ Define custom format: thousands separator + two decimals. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + NumberFormat = "#,##0.00" + }; + + // 4️⃣ Export the formatted string. + string result = worksheet.Cells["A1"].ExportString(exportOptions); + + // 5️⃣ Display the outcome. + Console.WriteLine(result); // Output: 12,345.68 + + // Optional: keep console open. + Console.WriteLine("Press any key to exit..."); + Console.ReadKey(); + } +} +``` + +Uruchom program (`dotnet run` w terminalu lub naciśnij F5 w Visual Studio) i zobaczysz sformatowaną liczbę wypisaną dokładnie tak, jak na ekranie. + +--- + +## Najczęściej zadawane pytania (FAQ) + +**P:** Czy to działa ze starszymi wersjami Excela? +**O:** Tak. Maska formatu podąża za natywną składnią formatowania liczb w Excelu, więc każda wersja rozumiejąca `#,##0.00` wyświetli ten sam ciąg znaków. + +**P:** Co zrobić, jeśli muszę sformatować zakres komórek? +**O:** Przejdź pętlą po żądanym zakresie i zastosuj te same `ExportTableOptions` do każdej komórki, albo ustaw właściwość `Style.Custom` na zakresie i następnie wywołaj `ExportString` na jednej komórce. + +**P:** Czy mogę wyeksportować bezpośrednio do CSV z zastosowanymi formatami? +**O:** Oczywiście. Użyj `Workbook.Save("output.csv", SaveFormat.CSV);` po ustawieniu formatu w każdej komórce. Aspose.Cells respektuje `Style` komórki przy generowaniu CSV. + +--- + +## Zakończenie + +Właśnie pokazaliśmy, jak **formatować liczbę z separatorem** w C# przy użyciu Aspose.Cells, obejmując wszystko od **ustawiania niestandardowego formatu liczby** po **dodawanie separatora tysięcy**, **formatowanie miejsc dziesiętnych** oraz niezbędne **jak formatować komórkę** przy eksporcie do ciągu znaków. Kod jest w pełni samodzielny, działa z .NET 6+ i może być dostosowany do dowolnej lokalizacji lub wymagań precyzji. + +Następnie możesz zbadać: + +* Zastosowanie tej samej techniki do dat i godzin (`NumberFormat = "dd‑MMM‑yyyy"`). +* Automatyzację masowych eksportów, w których każda kolumna wymaga innej maski. +* Integrację sformatowanych ciągów znaków w raportach PDF przy użyciu Aspose.Words. + +Wypróbuj je, a szybko staniesz się osobą, do której zespół zwróci się po pomoc w formatowaniu arkuszy kalkulacyjnych. Szczęśliwego kodowania! (Image: ![Screenshot showing formatted number with separator in Aspose.Cells](image-placeholder.png){alt="Sformatowana liczba z separatorem wyświetlona w wyniku 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/polish/net/excel-data-import-export/_index.md b/cells/polish/net/excel-data-import-export/_index.md index 5fbe587d0f..73d8d483c9 100644 --- a/cells/polish/net/excel-data-import-export/_index.md +++ b/cells/polish/net/excel-data-import-export/_index.md @@ -32,6 +32,10 @@ Następne jest kolejne typowe wyzwanie: wstawianie wierszy DataTable do programu W tym łatwym do zrozumienia samouczku dowiesz się, jak importować dane do programu Excel z niestandardowym formatowaniem DB Num przy użyciu Aspose.Cells dla platformy .NET. ### [Przesuń pierwszy wiersz w dół podczas wstawiania wierszy tabeli danych w programie Excel](./shift-first-row-down-when-inserting-cells-datatable-rows-in-excel/) Naucz się wstawiać wiersze DataTable w programie Excel bez przesuwania pierwszego wiersza w dół za pomocą Aspose.Cells dla .NET. Przewodnik krok po kroku dla bezproblemowej automatyzacji. +### [Utwórz skoroszyt Excel w C# – wstaw JSON i zapisz jako XLSX](./create-excel-workbook-c-insert-json-and-save-as-xlsx/) +Dowiedz się, jak w C# utworzyć skoroszyt Excel, wstawić dane JSON i zapisać go jako plik XLSX przy użyciu Aspose.Cells. +### [Utwórz skoroszyt Excel w C# – zastosuj format waluty i zaimportuj DataTable](./create-excel-workbook-c-apply-currency-format-and-import-dat/) +Dowiedz się, jak w C# utworzyć skoroszyt Excel, zastosować format waluty i zaimportować dane z DataTable przy użyciu Aspose.Cells. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/polish/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md b/cells/polish/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md new file mode 100644 index 0000000000..1e1afdfd55 --- /dev/null +++ b/cells/polish/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md @@ -0,0 +1,285 @@ +--- +category: general +date: 2026-03-30 +description: Utwórz skoroszyt Excel w C# z formatowaniem walutowym. Dowiedz się, jak + zaimportować DataTable, dodać format liczbowy w Excelu i zastosować format waluty + w kolumnie w kilka minut. +draft: false +keywords: +- create excel workbook c# +- format cells currency +- import datatable to excel +- add number format excel +- apply currency format column +language: pl +og_description: Utwórz skoroszyt Excel w C# i natychmiast sformatuj komórki jako walutę. + Ten krok po kroku poradnik pokazuje, jak zaimportować DataTable do Excela i dodać + format liczbowy w Excelu dla kolumny. +og_title: Tworzenie skoroszytu Excel w C# – Przewodnik formatowania walut +tags: +- Aspose.Cells +- C# +- Excel automation +title: Utwórz skoroszyt Excel w C# – zastosuj format waluty i zaimportuj DataTable +url: /pl/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tworzenie skoroszytu Excel C# – Zastosowanie formatu walutowego i importowanie DataTable + +Kiedykolwiek potrzebowałeś **create Excel workbook C#**, który od razu wygląda jak dopracowany raport? Może pobierasz liczby sprzedaży z bazy danych i chcesz, aby kolumna z ceną wyświetlała się w dolarach bez ręcznego formatowania w Excelu. Brzmi znajomo? Nie jesteś sam — większość programistów napotyka ten problem, gdy po raz pierwszy automatyzuje eksport do Excela. + +W tym przewodniku przejdziemy krok po kroku przez kompletną, gotową do uruchomienia rozwiązanie, które **creates an Excel workbook C#**, importuje `DataTable` i **formats the Price column as currency**. Na koniec otrzymasz plik o nazwie `StyledTable.xlsx`, który otworzysz i zobaczysz ładnie sformatowane liczby. Bez dodatkowego przetwarzania po fakcie. + +> **What you’ll learn** +> - Jak skonfigurować Aspose.Cells w projekcie .NET +> - Jak **import datatable to excel** przy użyciu tablicy stylów +> - Jak **add number format excel** dla konkretnej kolumny +> - Wskazówki dotyczące obsługi większej liczby kolumn lub różnych locale + +> **Prerequisites** +> - .NET 6+ (lub .NET Framework 4.6+) zainstalowany +> - Pakiet NuGet Aspose.Cells for .NET (`Install-Package Aspose.Cells`) +> - Podstawowa znajomość C# i DataTables + +--- + +## Krok 1: Przygotowanie DataTable (import datatable to excel) + +Najpierw potrzebujemy przykładowych danych. W rzeczywistej aplikacji prawdopodobnie wypełnisz tę tabelę wynikiem zapytania do bazy, ale przykładowy, na sztywno zapisany zestaw ułatwia zrozumienie. + +```csharp +using System.Data; + +// Create a DataTable with two columns: Product (string) and Price (double) +DataTable dataTable = new DataTable(); +dataTable.Columns.Add("Product", typeof(string)); +dataTable.Columns.Add("Price", typeof(double)); + +// Add a few rows – you can add as many as you like +dataTable.Rows.Add("Apple", 1.23); +dataTable.Rows.Add("Banana", 0.78); +dataTable.Rows.Add("Cherry", 2.50); +``` + +*Dlaczego to ważne*: `DataTable` jest mostem między danymi biznesowymi a plikiem Excel. Aspose.Cells może go zaimportować bezpośrednio, zachowując nazwy kolumn i typy danych. + +--- + +## Krok 2: Utworzenie nowego skoroszytu (create excel workbook c#) + +Teraz tworzymy rzeczywisty obiekt pliku Excel. Pomyśl o nim jak o czystym płótnie, na którym będziesz malować. + +```csharp +using Aspose.Cells; + +// Instantiate a fresh workbook – this is the core of create excel workbook c# +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0). You could also add more sheets later. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Pro tip:** Jeśli potrzebujesz wielu arkuszy, wywołaj `workbook.Worksheets.Add()` i nadaj każdemu znaczącą nazwę. + +--- + +## Krok 3: Definicja stylu walutowego (format cells currency) + +Aspose.Cells pozwala stworzyć obiekt `Style`, który opisuje, jak mają wyglądać komórki. Dla waluty używamy wbudowanego formatu liczbowego ID 164 (`"$#,##0.00"`). + +```csharp +// Create a new style object for the price column +Style priceStyle = workbook.CreateStyle(); +priceStyle.Number = 164; // Built‑in currency format "$#,##0.00" +``` + +*Dlaczego nie ustawić po prostu ciągu formatowania?* Użycie wbudowanego ID zapewnia kompatybilność między wersjami Excela i unika specyficznych dla locale problemów. + +--- + +## Krok 4: Zbudowanie tablicy stylów (apply currency format column) + +Podczas importowania `DataTable` możesz przekazać tablicę obiektów `Style` — po jednej na kolumnę. `null` oznacza „użyj domyślnego stylu”. Tutaj stosujemy `priceStyle` tylko do drugiej kolumny. + +```csharp +// Column 0 (Product) gets the default style, Column 1 (Price) gets the currency style +Style[] columnStyles = { null, priceStyle }; +``` + +Jeśli później dodasz więcej kolumn, po prostu rozszerz tablicę. Długość `columnStyles` musi odpowiadać liczbie importowanych kolumn, w przeciwnym razie Aspose zgłosi wyjątek. + +--- + +## Krok 5: Import DataTable ze stylami (import datatable to excel) + +Teraz dzieje się magia — nasz `DataTable` trafia do arkusza, a kolumna cen natychmiast wyświetla się jako waluta. + +```csharp +// Parameters: +// - dataTable: source data +// - true: include column headers +// - startRow: 0 (top of sheet) +// - startColumn: 0 (first column) +// - columnStyles: style array defined above +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +*Co jeśli masz więcej niż dwie kolumny?* Rozszerz `columnStyles`, aby każda kolumna otrzymała odpowiedni styl (lub `null` dla domyślnego). To najczystszy sposób na **add number format excel** selektywnie. + +--- + +## Krok 6: Zapis skoroszytu (create excel workbook c#) + +Na koniec zapisujemy plik na dysku. Wybierz dowolny folder, do którego masz prawo zapisu. + +```csharp +// Save the workbook as an XLSX file +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +Otwórz `StyledTable.xlsx` w Excelu i powinieneś zobaczyć: + +| Produkt | Cena | +|---------|------| +| Apple | $1.23 | +| Banana | $0.78 | +| Cherry | $2.50 | + +Kolumna **Cena** jest już sformatowana jako waluta — nie są potrzebne żadne dodatkowe kroki. + +--- + +## Przypadki brzegowe i warianty + +### Więcej kolumn, różne formaty + +Jeśli musisz **format cells currency** dla kilku kolumn (np. Koszt, Podatek, Łącznie), utwórz osobny `Style` dla każdej i wypełnij `columnStyles` odpowiednio: + +```csharp +Style costStyle = workbook.CreateStyle(); +costStyle.Number = 164; // currency + +Style taxStyle = workbook.CreateStyle(); +taxStyle.Number = 164; + +// Assuming columns: Product, Cost, Tax, Total +Style[] styles = { null, costStyle, taxStyle, priceStyle }; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, styles); +``` + +### Waluta specyficzna dla locale + +Dla euro lub funta brytyjskiego użyj innych wbudowanych ID (np. 165 dla `€#,##0.00`). Alternatywnie ustaw własny ciąg formatowania: + +```csharp +priceStyle.Custom = "€#,##0.00"; +``` + +### Duże zestawy danych + +Aspose.Cells radzi sobie z milionami wierszy, ale zużycie pamięci rośnie wraz z obiektami stylów. Ponownie używaj jednej instancji `Style` dla wszystkich kolumn walutowych, aby zmniejszyć zużycie pamięci. + +### Brakujące style + +Jeśli `columnStyles` jest krótszy niż liczba kolumn, Aspose zastosuje domyślny styl do pozostałych kolumn. To przydatne, gdy zależy Ci tylko na kilku kolumnach. + +--- + +## Pełny działający przykład (wszystkie kroki razem) + +Poniżej znajduje się kompletny program, który możesz skopiować i wkleić do aplikacji konsolowej. Zawiera wszystkie elementy, o których rozmawialiśmy, oraz kilka pomocnych komentarzy. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // Step 1: Build sample DataTable (import datatable to excel) + // ------------------------------------------------- + DataTable dataTable = new DataTable(); + dataTable.Columns.Add("Product", typeof(string)); + dataTable.Columns.Add("Price", typeof(double)); + dataTable.Rows.Add("Apple", 1.23); + dataTable.Rows.Add("Banana", 0.78); + dataTable.Rows.Add("Cherry", 2.50); + // You can add as many rows as you like here. + + // ------------------------------------------------- + // Step 2: Create a new workbook (create excel workbook c#) + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // Step 3: Define a currency style (format cells currency) + // ------------------------------------------------- + Style priceStyle = workbook.CreateStyle(); + priceStyle.Number = 164; // "$#,##0.00" – built‑in currency format + + // ------------------------------------------------- + // Step 4: Build the style array (apply currency format column) + // ------------------------------------------------- + // First column gets default style (null), second column uses priceStyle. + Style[] columnStyles = { null, priceStyle }; + + // ------------------------------------------------- + // Step 5: Import the DataTable with the style array + // ------------------------------------------------- + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // ------------------------------------------------- + // Step 6: Save the workbook to disk + // ------------------------------------------------- + string outputPath = @"YOUR_DIRECTORY\StyledTable.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } +} +``` + +**Oczekiwany rezultat:** Otwarcie `StyledTable.xlsx` pokazuje kolumnę `Price` z symbolem dolara i dwoma miejscami po przecinku, dokładnie tak, jak wymagało polecenie **format cells currency**. + +--- + +## Najczęściej zadawane pytania + +**Q: Czy to działa z .NET Core?** +A: Absolutnie. Aspose.Cells jest zgodny z .NET standard, więc możesz celować w .NET 5, .NET 6 lub nowsze bez zmian. + +**Q: Co jeśli mój DataTable ma 10 kolumn, a ja chcę sformatować tylko kolumnę 5?** +A: Utwórz `Style[]` o długości 10, wypełnij pozycje 0‑4 i 6‑9 wartością `null`, a własny styl umieść pod indeksem 4 (licząc od zera). Aspose zastosuje każdy wpis. + +**Q: Czy mogę ukryć wiersz nagłówka?** +A: Po imporcie ustaw `worksheet.Cells.Rows[0].Hidden = true;` lub po prostu przekaż `false` dla parametru `includeColumnNames` w metodzie `ImportDataTable`. + +--- + +## Podsumowanie + +Właśnie **created an Excel workbook C#**, zaimportowaliśmy `DataTable` i **applied a currency format column** przy użyciu Aspose.Cells. Główne kroki — przygotowanie danych, definiowanie stylu, budowanie tablicy stylów, importowanie za pomocą `ImportDataTable` i zapis — obejmują rdzeń większości zadań automatyzacji Excela. + +Od tego momentu możesz eksplorować: + +- **add number format excel** dla dat lub procentów +- Eksportowanie wielu arkuszy w jednym pliku +- Używanie **format cells currency** z symbolami specyficznymi dla locale +- Automatyzację tworzenia wykresów na podstawie tych samych danych + +Spróbuj tych pomysłów, a szybko zostaniesz osobą, do której zespół zwróci się po raporty w Excelu. Masz własny pomysł, którym chcesz się podzielić? zostaw komentarz poniżej — miłego kodowania! + +![create excel workbook c# screenshot](image.png "create excel workbook c#") + +{{< /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/polish/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md b/cells/polish/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md new file mode 100644 index 0000000000..46e39bfff7 --- /dev/null +++ b/cells/polish/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md @@ -0,0 +1,253 @@ +--- +category: general +date: 2026-03-30 +description: Szybko utwórz skoroszyt Excel w C# poprzez wstawienie danych JSON i zapisanie + go jako plik XLSX. Dowiedz się, jak generować Excel z JSON, zapisywać JSON do Excela + i wstawiać JSON do Excela. +draft: false +keywords: +- create excel workbook c# +- save workbook as xlsx +- generate excel from json +- write json to excel +- insert json into excel +language: pl +og_description: Szybko utwórz skoroszyt Excel w C# poprzez wstawienie danych JSON + i zapisanie go jako XLSX. Postępuj zgodnie z tym przewodnikiem krok po kroku, aby + wygenerować Excel z JSON. +og_title: Utwórz skoroszyt Excel w C# – Wstaw JSON i zapisz jako XLSX +tags: +- Aspose.Cells +- C# +- Excel automation +title: Utwórz skoroszyt Excel w C# – wstaw JSON i zapisz jako XLSX +url: /pl/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Utwórz skoroszyt Excel w C# – Wstaw JSON i zapisz jako XLSX + +Czy kiedykolwiek potrzebowałeś **create Excel workbook C#** i wrzucić jakiś JSON prosto do komórki? Nie jesteś jedyny — programiści często napotykają ten sam problem, gdy mają ładunki API lub pliki konfiguracyjne, które muszą trafić do arkusza kalkulacyjnego w celu raportowania lub udostępniania. + +Dobre wieści są takie, że z Aspose.Cells możesz zrobić to w kilku linijkach, **save workbook as XLSX**, i zachować cały proces typowo‑bezpieczny. W tym poradniku **generate Excel from JSON**, **write JSON to Excel**, oraz pokażemy dokładne kroki, aby **insert JSON into Excel** bez uciążliwych konkatenacji łańcuchów. + +## Co obejmuje ten przewodnik + +Przejdziemy przez: + +1. Utworzenie nowego skoroszytu. +2. Dodanie Smart Marker, który oczekuje JSON. +3. Przekazanie tablicy JSON do markera. +4. Dostosowanie `SmartMarkerOptions`, aby JSON pozostał w jednej komórce. +5. Zapisanie pliku jako skoroszyt XLSX. + +Po zakończeniu będziesz mieć gotowy do użycia plik `JsonSingleCell.xlsx` oraz solidny wzorzec, który możesz ponownie wykorzystać w dowolnym scenariuszu JSON‑to‑Excel. Bez zewnętrznych usług, tylko czysty C# i biblioteka Aspose.Cells. + +**Wymagania wstępne** + +- .NET 6+ (lub .NET Framework 4.6+). +- Visual Studio 2022 lub dowolne IDE kompatybilne z C#. +- Pakiet NuGet `Aspose.Cells` (bezpłatna wersja próbna lub licencjonowana). + +Jeśli masz te elementy, zanurzmy się — bez dodatkowej konfiguracji. + +--- + +## Krok 1: Utwórz nowy skoroszyt w C# + +Pierwszą rzeczą, której potrzebujesz, jest pusty obiekt workbook. Pomyśl o nim jak o nowym pliku Excel czekającym na dane. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is your empty Excel file +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; +``` + +**Dlaczego to ważne:** +`Workbook` jest punktem wejścia dla wszystkich operacji Excel. Tworząc go najpierw, zapewniasz, że późniejsze wywołanie **save workbook as xlsx** ma konkretny obiekt do serializacji. + +> **Wskazówka:** Jeśli planujesz pracować z wieloma arkuszami, możesz dodać je teraz za pomocą `workbook.Worksheets.Add()`. + +--- + +## Krok 2: Umieść Smart Marker, który oczekuje JSON + +Smart Markery są symbolami zastępczymi, które Aspose.Cells zamienia w czasie wykonywania. Tutaj informujemy go, aby szukał ciągu JSON o nazwie `data`. + +```csharp +// Put a Smart Marker in cell A1 – {{data:json}} tells Aspose to expect JSON +worksheet.Cells["A1"].PutValue("{{data:json}}"); +``` + +**Dlaczego to ważne:** +Sufiks `:json` informuje silnik, że przychodząca wartość jest JSON, a nie zwykłym tekstem. To klucz do **write json to excel** bez ręcznego parsowania. + +--- + +## Krok 3: Zdefiniuj tablicę JSON + +Teraz tworzymy JSON, który chcemy wstawić. Dla demonstracji użyjemy prostej listy osób. + +```csharp +// Sample JSON array – could come from an API, file, or DB +string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; +``` + +**Przypadek brzegowy:** +Jeśli Twój JSON zawiera podwójne cudzysłowy, upewnij się, że są one escapowane (jak pokazano) lub użyj łańcucha dosłownego (`@"..."`), aby uniknąć błędów kompilacji. + +--- + +## Krok 4: Skonfiguruj opcje Smart Marker – zachowaj całą tablicę + +Domyślnie Aspose próbowałby rozwinąć tablicę na wiele wierszy. Chcemy, aby cały ciąg JSON pozostał w jednej komórce, co jest idealne w scenariuszach **insert json into excel**, gdzie odbiorca później sparsuje JSON. + +```csharp +SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions +{ + // Treat the whole array as a single cell value + ArrayAsSingle = true +}; +``` + +**Dlaczego to ważne:** +`ArrayAsSingle = true` zapobiega rozciąganiu na wiersze, dając czysty, jednowierszowy JSON w jednej komórce. To kluczowe, gdy arkusz jest formatem transportowym, a nie raportem. + +--- + +## Krok 5: Przetwórz Smart Marker z danymi JSON + +Teraz wiążemy JSON z markerem i pozwalamy Aspose wykonać ciężką pracę. + +```csharp +// Process the marker – the anonymous object maps "data" to our JSON string +worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); +``` + +**Co się dzieje w tle:** +Aspose ocenia placeholder `{{data:json}}`, serializuje ciąg `jsonData` i zapisuje go w komórce A1, respektując ustawione opcje. + +--- + +## Krok 6: Zapisz skoroszyt jako plik XLSX + +Na koniec zapisujemy skoroszyt na dysku. To właśnie moment, w którym wkracza **save workbook as xlsx**. + +```csharp +// Save the workbook – the extension determines the format (XLSX here) +workbook.Save("JsonSingleCell.xlsx"); +``` + +**Wynik:** +Otwórz `JsonSingleCell.xlsx` w Excelu, a zobaczysz tablicę JSON dokładnie tak, jak ją zdefiniowaliśmy, ładnie umieszczoną w komórce A1. + +--- + +## Pełny, gotowy do uruchomienia przykład + +Poniżej znajduje się kompletny program, który możesz skopiować i wkleić do aplikacji konsolowej. Zawiera wszystkie powyższe kroki i działa od razu (zakładając, że pakiet NuGet Aspose.Cells jest zainstalowany). + +```csharp +using System; +using Aspose.Cells; + +namespace JsonToExcelDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add a Smart Marker that expects JSON + worksheet.Cells["A1"].PutValue("{{data:json}}"); + + // 3️⃣ Define the JSON array + string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; + + // 4️⃣ Configure options – keep array as a single cell value + SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions + { + ArrayAsSingle = true + }; + + // 5️⃣ Process the marker with the JSON payload + worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); + + // 6️⃣ Save the workbook as XLSX + workbook.Save("JsonSingleCell.xlsx"); + + Console.WriteLine("Excel file created successfully! Check JsonSingleCell.xlsx."); + } + } +} +``` + +**Oczekiwany wynik w Excelu** + +| A | +|---| +| `[{"Name":"John","Age":30},{"Name":"Jane","Age":28}]` | + +Ta pojedyncza komórka teraz zawiera w pełni prawidłową tablicę JSON gotową do dalszego przetwarzania. + +--- + +## Częste pytania i przypadki brzegowe + +### Co zrobić, jeśli potrzebuję rozłożyć JSON na wiersze? + +Ustaw `ArrayAsSingle = false` (wartość domyślna). Aspose utworzy wiersz dla każdego elementu tablicy, mapując właściwości obiektu na kolumny. To przydatne, gdy chcesz widok tabelaryczny zamiast surowego ciągu JSON. + +### Czy mogę użyć pliku JSON zamiast łańcucha zakodowanego na sztywno? + +Oczywiście. Odczytaj plik do łańcucha: + +```csharp +string jsonData = File.ReadAllText("people.json"); +``` + +Następnie przekaż `jsonData` do tego samego wywołania `Process`. Reszta potoku pozostaje niezmieniona. + +### Czy to działa z dużymi ładunkami JSON? + +Tak, ale obserwuj zużycie pamięci. Przy ogromnych tablicach rozważ strumieniowanie danych lub bezpośrednie zapisywanie do wierszy (`ArrayAsSingle = false`), aby uniknąć jednej gigantycznej komórki, z którą Excel może mieć problemy. + +### Czy wygenerowany XLSX jest kompatybilny ze starszymi wersjami Excela? + +Format `.xlsx` oparty jest na Office Open XML i działa od Excela 2007 wzwyż. Jeśli potrzebujesz starszego formatu `.xls`, zmień wywołanie zapisu: + +```csharp +workbook.Save("JsonSingleCell.xls", SaveFormat.Excel97To2003); +``` + +--- + +## Pro tipy do pracy z JSON i Excelem + +- **Validate JSON first** – użyj `System.Text.Json.JsonDocument.Parse(jsonData)`, aby wcześnie wykryć nieprawidłowe dane. +- **Escape special characters** – jeśli Twój JSON zawiera znaki nowej linii, pojawią się jako dosłowne `\n` w komórce; możesz je zamienić na `Environment.NewLine` przed przetwarzaniem. +- **Reuse Smart Markers** – możesz umieścić wiele markerów w tym samym arkuszu, każdy wskazujący na inną właściwość JSON. +- **Combine with formulas** – po umieszczeniu JSON w komórce możesz użyć funkcji Excel `FILTERXML` (w nowszych wersjach), aby parsować go na bieżąco. + +--- + +## Podsumowanie + +Teraz wiesz, jak **create excel workbook c#**, osadzić ładunek JSON i **save workbook as xlsx** przy użyciu Aspose.Cells. Ten wzorzec pozwala **generate excel from json**, **write json to excel** i **insert json into excel** za pomocą kilku linijek kodu, ułatwiając wymianę danych między usługami a analitykami. + +Gotowy na kolejny krok? Spróbuj przekonwertować tablicę JSON na właściwą tabelę (ustaw `ArrayAsSingle = false`) lub zbadaj stylizację arkusza po wstawieniu. To samo podejście działa dla CSV, XML lub nawet własnych obiektów — wystarczy dostosować typ Smart Marker. + +Miłego kodowania i śmiało eksperymentuj! Jeśli napotkasz problemy, zostaw komentarz poniżej lub zajrzyj do oficjalnej dokumentacji Aspose, aby głębiej zagłębić się w Smart Markery. + +{{< /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/polish/net/excel-workbook/_index.md b/cells/polish/net/excel-workbook/_index.md index 5ffa80199a..3ec12657b7 100644 --- a/cells/polish/net/excel-workbook/_index.md +++ b/cells/polish/net/excel-workbook/_index.md @@ -45,7 +45,7 @@ Bezpieczeństwo jest niezbędne, szczególnie w przypadku współdzielonych skor ## Zwiększanie produktywności za pomocą wyrażeń regularnych -Czy jesteś fanem wyrażeń regularnych? Jeśli nie, możesz chcieć zostać jednym z nich! Wyrażenia regularne mogą znacznie usprawnić Twoje zadania, zwłaszcza podczas pracy z dużymi zestawami danych w programie Excel. Nasz samouczek na temat [Zamień wyrażenie regularne](./regex-replace/) uczy, jak wdrażać funkcje zamiany wyrażeń regularnych w arkuszach kalkulacyjnych, co pozwala zwiększyć produktywność i dokładność. +Czy jesteś fanem wyrażeń regularnych? Jeśli nie, możesz chcieć zostać jednym z nich! Wyrażenia regularne mogą znacznie usprawnić Twoje zadania, szczególnie podczas pracy z dużymi zestawami danych w programie Excel. Nasz samouczek na temat [Zamień wyrażenie regularne](./regex-replace/) uczy, jak wdrażać funkcje zamiany wyrażeń regularnych w arkuszach kalkulacyjnych, co pozwala zwiększyć produktywność i dokładność. ## Aktualizowanie elementów Power Query @@ -86,6 +86,7 @@ Więc dlaczego nie skorzystać z tej szansy na rozwinięcie swoich umiejętnośc | [Podgląd wydruku skoroszytu](./workbook-print-preview/) | Dowiedz się, jak tworzyć podglądy wydruku plików Excela przy użyciu Aspose.Cells dla .NET. Poznaj kroki kodowania w szczegółowym, łatwym do naśladowania samouczku. | | [Praca z właściwościami typu zawartości](./working-with-content-type-properties/) | Dowiedz się, jak używać Aspose.Cells dla .NET do pracy z właściwościami typu zawartości w celu ulepszonego zarządzania metadanymi programu Excel. Postępuj zgodnie z tym prostym przewodnikiem krok po kroku. | | [Wsparcie dla podpisu Xades](./xades-signature-support/) | Dowiedz się, jak dodawać podpisy Xades do plików Excela za pomocą Aspose.Cells dla .NET dzięki temu przewodnikowi krok po kroku. Zabezpiecz swoje dokumenty. | +| [Utwórz arkusz główny w C# – Kompletny przewodnik Aspose.Cells](./create-master-sheet-in-c-complete-aspose-cells-guide/) | Dowiedz się, jak utworzyć arkusz główny w C# przy użyciu Aspose.Cells, krok po kroku, aby zautomatyzować zarządzanie danymi w Excelu. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/polish/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md b/cells/polish/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md new file mode 100644 index 0000000000..5064cd2f44 --- /dev/null +++ b/cells/polish/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-03-30 +description: Utwórz arkusz główny przy użyciu Aspose.Cells w C#. Dowiedz się, jak + stworzyć skoroszyt Excel w C#, zezwolić na duplikowanie nazw arkuszy i zapisać skoroszyt + jako XLSX w kilku krokach. +draft: false +keywords: +- create master sheet +- create excel workbook c# +- save workbook as xlsx +- allow duplicate sheet names +language: pl +og_description: Utwórz arkusz główny przy użyciu Aspose.Cells w C#. Ten przewodnik + pokazuje, jak stworzyć skoroszyt Excel w C#, zezwolić na duplikowanie nazw arkuszy + oraz zapisać skoroszyt jako XLSX. +og_title: Utwórz arkusz główny w C# – Kompletny przewodnik Aspose.Cells +tags: +- Aspose.Cells +- C# +- Excel automation +title: Utwórz arkusz główny w C# – Kompletny przewodnik po Aspose.Cells +url: /pl/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Utwórz arkusz główny w C# – Kompletny przewodnik Aspose.Cells + +Czy kiedykolwiek potrzebowałeś **utworzyć arkusz główny** w pliku Excel, ale nie byłeś pewien, jak poradzić sobie z mnóstwem arkuszy szczegółowych, które mają tę samą podstawową nazwę? Nie jesteś sam. W wielu scenariuszach raportowania kończysz z dziesiątkami zakładek szczegółowych, a domyślne zachowanie większości bibliotek to wyrzucenie wyjątku, gdy dwa arkusze miałyby taką samą nazwę. + +Na szczęście Aspose.Cells sprawia, że **utworzenie arkusza głównego**, skonfigurowanie silnika do **zezwalania na duplikaty nazw arkuszy** oraz **zapisanie skoroszytu jako XLSX** jest dziecinnie proste — wszystko z czystym kodem C#. W tym samouczku przeprowadzimy Cię przez w pełni działający przykład, wyjaśnimy, dlaczego każda linia ma znaczenie, i podamy kilka wskazówek, które możesz od razu skopiować do własnych projektów. + +> **Co wyniesiesz z tego samouczka** +> * Jak **utworzyć skoroszyt Excel w stylu C#** przy użyciu Aspose.Cells. +> * Jak osadzić smart‑marker, który generuje arkusz szczegółowy dla każdego wiersza danych. +> * Jak ustawić `DetailSheetNewName = DuplicateAllowed`, aby biblioteka automatycznie dodawała numeryczny sufiks. +> * Jak **zapisać skoroszyt jako XLSX** na dysku bez dodatkowych kroków. + +Nie potrzebna jest żadna zewnętrzna dokumentacja — wszystko, czego potrzebujesz, znajduje się tutaj. + +--- + +## Wymagania wstępne + +Zanim zaczniemy, upewnij się, że masz: + +| Wymaganie | Dlaczego jest ważne | +|-------------|----------------| +| .NET 6.0 or later (or .NET Framework 4.7+) | Aspose.Cells 23.x+ jest przeznaczony dla tych środowisk uruchomieniowych. | +| Visual Studio 2022 (or any C# IDE) | Umożliwia łatwe tworzenie projektów i debugowanie. | +| Aspose.Cells for .NET NuGet package (`Install-Package Aspose.Cells`) | Biblioteka, która napędza całą magię smart‑markerów. | +| Basic C# knowledge | Zrozumiesz składnię bez konieczności intensywnego kursu. | + +Jeśli brakuje Ci któregoś z nich, po prostu dodaj go teraz — nie ma sensu kontynuować w półprzygotowanym środowisku. + +--- + +## Krok 1: Utwórz arkusz główny przy użyciu Aspose.Cells + +Pierwszą rzeczą, którą robimy, jest **utworzenie skoroszytu Excel w stylu C#** poprzez utworzenie obiektu `Workbook`. Ten obiekt już zawiera domyślny arkusz, który przemianujemy na „Master” i potraktujemy jako szablon dla wszystkich stron szczegółowych. + +```csharp +using Aspose.Cells; + +// Step 1: Initialise a new workbook – this automatically gives us one sheet +Workbook workbook = new Workbook(); + +// Grab the first (and only) worksheet that comes with a fresh workbook +Worksheet masterSheet = workbook.Worksheets[0]; + +// Give it a meaningful name – this will be our master sheet +masterSheet.Name = "Master"; +``` + +*Dlaczego zmienić nazwę arkusza?* +Domyślna nazwa, taka jak „Sheet1”, nie przekazuje intencji, a później, gdy przeglądasz plik, będziesz chciał, aby zakładka główna była od razu rozpoznawalna. Nazewnictwo zapobiega także przypadkowym kolizjom, gdy później dodasz więcej arkuszy. + +--- + +## Krok 2: Przygotuj smart‑marker, który wygeneruje arkusze szczegółowe + +Smart‑markery to znaczniki zastępcze, które Aspose.Cells zamienia danymi w czasie wykonywania. Umieszczając `{{#detail:DataSheetName}}` w komórce **A1**, informujemy silnik: „Dla każdego rekordu w źródle danych utwórz nowy arkusz, którego nazwa pochodzi z pola `DataSheetName`.” + +```csharp +// Step 2: Insert a smart‑marker into cell A1. +// The marker #detail tells Aspose.Cells to generate a new sheet per data row. +masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); +``` + +Traktuj marker jako małą kartę instrukcyjną przyklejoną do arkusza. Gdy procesor się uruchamia, odczytuje kartę, pobiera odpowiednią wartość ze źródła danych, a następnie klonuje arkusz główny do nowej zakładki. + +--- + +## Krok 3: Zbuduj źródło danych – celowo duplikuj nazwy arkuszy + +W rzeczywistości możesz pobrać to z bazy danych, ale na potrzeby demonstracji użyjemy tablicy anonimowych obiektów w pamięci. Zauważ, że oba elementy używają tej samej podstawowej nazwy „Detail”; to scenariusz, w którym **zezwolenie na duplikaty nazw arkuszy** staje się kluczowe. + +```csharp +// Step 3: Create a data source with two items that share the same base sheet name. +var dataSource = new[] +{ + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } +}; +``` + +Jeśli spróbujesz to zrobić bez specjalnych opcji, Aspose.Cells zgłosi wyjątek przy drugiej iteracji, ponieważ arkusz o nazwie „Detail” już istnieje. Dlatego kolejny krok ma znaczenie. + +--- + +## Krok 4: Włącz duplikaty nazw arkuszy + +Aspose.Cells udostępnia `SmartMarkerOptions.DetailSheetNewName`. Ustawienie go na `DetailSheetNewName.DuplicateAllowed` informuje silnik, aby automatycznie dodawał numeryczny sufiks (np. „Detail_1”) przy każdej kolizji nazw. + +```csharp +// Step 4: Configure SmartMarker options to permit duplicate sheet names. +var smartMarkerOptions = new SmartMarkerOptions +{ + // This makes the library rename clashes to "Detail_1", "Detail_2", etc. + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed +}; +``` + +*Dlaczego nie nadawać każdemu wierszowi unikalnej nazwy ręcznie?* +Ponieważ często dane źródłowe nie gwarantują unikalności, szczególnie gdy użytkownicy wprowadzają dowolny tekst. Pozwolenie bibliotece na obsługę sufiksu eliminuje całą klasę błędów. + +--- + +## Krok 5: Przetwórz smart‑markery i wygeneruj arkusze szczegółowe + +Teraz wywołujemy `SmartMarkers.Process`, przekazując zarówno źródło danych, jak i właśnie skonfigurowane opcje. Metoda przechodzi przez każdy element, klonuje arkusz główny i zmienia nazwę klonu zgodnie z polem `DataSheetName` (plus sufiks, jeśli jest potrzebny). + +```csharp +// Step 5: Run the smart‑marker processor – this creates the detail sheets. +masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); +``` + +Po wykonaniu tej linii będziesz miał trzy zakładki w skoroszycie: + +1. **Master** – oryginalny szablon. +2. **Detail** – pierwszy wygenerowany arkusz (bez sufiksu). +3. **Detail_1** – drugi wygenerowany arkusz (sufiks dodany automatycznie). + +Możesz to zweryfikować, otwierając plik w Excelu; zobaczysz dwa arkusze szczegółowe obok siebie. + +--- + +## Krok 6: Zapisz skoroszyt jako plik XLSX + +Na koniec zapisujemy plik na dysku. Metoda `Save` automatycznie wybiera format XLSX, gdy podasz jej rozszerzenie `.xlsx`. + +```csharp +// Step 6: Persist the workbook – this is the moment we finally “save workbook as XLSX”. +string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; +workbook.Save(outputPath); +``` + +**Wskazówka:** Jeśli potrzebujesz przesłać plik bezpośrednio w odpowiedzi webowej (np. ASP.NET Core), użyj `workbook.Save(stream, SaveFormat.Xlsx)` zamiast ścieżki do pliku. + +--- + +## Pełny działający przykład + +Poniżej znajduje się kompletny, gotowy do uruchomienia program. Skopiuj i wklej go do aplikacji konsolowej, naciśnij F5 i otwórz wygenerowany plik, aby zobaczyć wynik. + +```csharp +using System; +using Aspose.Cells; + +namespace MasterSheetDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook and rename the default sheet to "Master" + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert a smart‑marker that will generate a detail sheet per data row + masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); + + // 3️⃣ Prepare a data source where two rows share the same sheet name + var dataSource = new[] + { + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } + }; + + // 4️⃣ Allow duplicate sheet names – the library will add "_1", "_2", … + var smartMarkerOptions = new SmartMarkerOptions + { + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed + }; + + // 5️⃣ Process the smart‑markers; this creates the detail sheets + masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); + + // 6️⃣ Save the workbook as an XLSX file + string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Oczekiwany rezultat:** Otwórz `DuplicateDetailSheets.xlsx` i zobaczysz trzy arkusze — `Master`, `Detail` i `Detail_1`. Każdy arkusz szczegółowy jest dokładną kopią arkusza głównego, gotową do wypełnienia danymi specyficznymi dla wiersza później. + +--- + +## Często zadawane pytania i przypadki brzegowe + +### Co zrobić, jeśli potrzebuję więcej niż dwóch duplikatów arkuszy? + +Nie ma problemu. To samo ustawienie `DuplicateAllowed` będzie dalej dodawać kolejne liczby (`Detail_2`, `Detail_3`, …), aż każdy wiersz będzie miał własną zakładkę. + +### Czy mogę dostosować format sufiksu? + +Domyślnie Aspose.Cells używa podkreślenia i numeru indeksu. Jeśli potrzebujesz innego wzorca (np. „Detail‑A”, „Detail‑B”), będziesz musiał przetworzyć skoroszyt po uruchomieniu `Process`, iterując po `workbook.Worksheets` i zmieniając nazwy według własnych potrzeb. + +### Czy to podejście działa przy dużych zestawach danych (setki wierszy)? + +Tak, ale zwróć uwagę na zużycie pamięci. Każdy wygenerowany arkusz jest pełną kopią arkusza głównego, więc duża liczba wierszy może szybko zwiększyć rozmiar pliku. Jeśli potrzebujesz tylko kilku wierszy na arkusz, rozważ użycie `SmartMarkerOptions.RemoveEmptyRows = true`, aby usunąć zbędne komórki. + +### Czy wygenerowany plik jest naprawdę plikiem XLSX? + +Zdecydowanie tak. Metoda `Save` zapisuje pakiet Open XML, którego oczekuje Excel. Możesz nawet otworzyć plik w LibreOffice lub Google Sheets bez żadnej konwersji. + +--- + +## Wskazówki dla kodu gotowego do produkcji + +| Wskazówka | Dlaczego jest ważne | +|-----|----------------| +| **Dispose `Workbook + +{{< /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/polish/net/formulas-functions/_index.md b/cells/polish/net/formulas-functions/_index.md index e7f79db9b0..9cc080f038 100644 --- a/cells/polish/net/formulas-functions/_index.md +++ b/cells/polish/net/formulas-functions/_index.md @@ -102,64 +102,11 @@ Dowiedz się, jak określić język plików Excel za pomocą Aspose.Cells .NET. ### [Aktualizuj formuły programu Excel Power Query za pomocą Aspose.Cells .NET](./update-power-query-formulas-aspose-cells-net) Dowiedz się, jak programowo aktualizować formuły Power Query w skoroszytach programu Excel przy użyciu Aspose.Cells dla .NET. Zarządzanie głównym źródłem danych na potrzeby dynamicznego raportowania. -## Zrozumienie typów formuł programu Excel +### [Jak używać WRAPCOLS w C# – Tworzenie skoroszytu Excel z funkcjami Wrap](./how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/) +Dowiedz się, jak w C# wykorzystać funkcję WRAPCOLS do tworzenia i formatowania danych w skoroszycie Excel przy użyciu Aspose.Cells. -Formuły programu Excel występują w różnych formach, z których każda ma unikalne cechy, którymi może zarządzać Aspose.Cells: - -### Standardowe formuły komórkowe - -Oto najpopularniejsze formuły operujące na pojedynczych komórkach: - -- **Formuły arytmetyczne**:Podstawowe obliczenia takie jak `=A1+B1` -- **Formuły oparte na funkcjach**:Korzystanie z wbudowanych funkcji, takich jak `=SUM(A1:A10)` -- **Formuły logiczne**:Logika warunkowa z funkcjami takimi jak `=IF(A1>10,"High","Low")` -- **Formuły tekstowe**:Manipulacja tekstem za pomocą funkcji takich jak `=CONCATENATE(A1," ",B1)` - -### Formuły oparte na zakresie - -Te formuły działają z zakresami komórek: - -- **Formuły agregacji**:Funkcje takie jak `=AVERAGE(A1:A100)` które przetwarzają wiele komórek -- **Formuły wyszukiwania**:Funkcje referencyjne takie jak `=VLOOKUP(E1,A1:B20,2,FALSE)` do pobierania danych -- **Formuły bazy danych**:Specjalistyczne funkcje takie jak `=DSUM(A1:F100,"Amount",G1:H2)` do filtrowania i obliczania - -### Formuły tablicowe - -Formuły tablicowe wykonują obliczenia na wielu wartościach jednocześnie: - -- **Wzór na tablicę jednokomórkową**: Zwraca jeden wynik, ale przetwarza tablice wewnętrznie -- **Wzór na tablicę wielokomórkową**:Wypełnia wiele komórek powiązanymi wynikami -- **Tablice dynamiczne**:Nowoczesne formuły programu Excel, które automatycznie rozlewają wyniki do sąsiednich komórek - -### Nazwane formuły - -Te formuły wykorzystują nazwane zakresy lub zdefiniowane nazwy: - -- **Odniesienia do nazwanych zakresów**:Używanie zdefiniowanych nazw, takich jak `=SUM(SalesData)` -- **Odwołania strukturalne**:Odwołania do tabel, takie jak `=SUM(Table1[Amount])` -- **Dynamiczne zakresy nazwane**:Formuły, które automatycznie dostosowują się do rozmiaru danych - -## Najlepsze praktyki w zakresie zarządzania formułami - -### Optymalizacja wydajności - -Aby zapewnić efektywne przetwarzanie formuł: - -1. **Ustawienie formuły wsadowej**:Zastosuj formuły do zakresów, a nie komórka po komórce -2. **Oblicz selektywnie**:W miarę możliwości należy stosować obliczenia ukierunkowane zamiast pełnego przeliczania -3. **Minimalizuj funkcje lotne**:Ogranicz użycie funkcji takich jak NOW() lub RAND(), które wyzwalają ponowne obliczenie -4. **Użyj współdzielonych formuł**:Wykorzystaj możliwości współdzielonych formuł w celu zwiększenia efektywności pamięci - -### Niezawodność formuły - -celu solidnej implementacji formuły: - -1. **Obsługa błędów**: Implementacja obsługi błędów formuły za pomocą funkcji IFERROR lub podobnych -2. **Analiza zależności komórkowych**:Zrozum zależności formuł, aby uniknąć odwołań cyklicznych -3. **Audyt formuły**: Przed wdrożeniem sprawdź logikę formuły -4. **Dokumentacja**:Prowadź przejrzystą dokumentację złożonych struktur formuł - -Dzięki opanowaniu możliwości formuł w pakiecie Aspose.Cells for .NET możesz tworzyć w arkuszach kalkulacyjnych zaawansowane silniki obliczeniowe, które będą dostarczać dokładne, dynamiczne wyniki bez konieczności instalowania programu Excel. +### [Tworzenie skoroszytu Excel w C# – przewodnik po Lambda, SEQUENCE i EXPAND](./create-excel-workbook-c-lambda-sequence-expand-guide/) +Dowiedz się, jak w C# tworzyć skoroszyty Excel wykorzystując nowe funkcje Lambda, SEQUENCE i EXPAND w Aspose.Cells. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/polish/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md b/cells/polish/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md new file mode 100644 index 0000000000..cde8f0dbe5 --- /dev/null +++ b/cells/polish/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-30 +description: Utwórz skoroszyt Excel w C# przy użyciu Aspose.Cells. Naucz się stosować + funkcję lambda w Excelu, funkcję SEQUENCE w Excelu, funkcję EXPAND w Excelu oraz + zapisać skoroszyt jako plik xlsx. +draft: false +keywords: +- create excel workbook c# +- lambda function excel +- save workbook as xlsx +- sequence function excel +- expand array excel +language: pl +og_description: Szybko utwórz skoroszyt Excel w C#. Ten przewodnik pokazuje, jak używać + funkcji lambda w Excelu, funkcji sekwencji w Excelu, rozszerzania tablic w Excelu + oraz zapisać skoroszyt jako xlsx. +og_title: Tworzenie skoroszytu Excel w C# – Przewodnik po Lambda, SEQUENCE i EXPAND +tags: +- Aspose.Cells +- C# +- Excel automation +title: Tworzenie skoroszytu Excel w C# – Lambda, SEQUENCE i EXPAND – przewodnik +url: /pl/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Utwórz skoroszyt Excel w C# – Lambda, SEQUENCE i EXPAND – Przewodnik + +Kiedykolwiek potrzebowałeś **create Excel workbook C#** do automatycznego raportu, ale nie byłeś pewien, które wywołania API użyć? Nie jesteś sam — wielu programistów napotyka ten sam problem, gdy po raz pierwszy zagłębia się w programowe generowanie Excela. W tym przewodniku zobaczysz kompletny, działający przykład, który obejmuje wszystko, od nowej **SEQUENCE function Excel** po potężną **LAMBDA function Excel**, a nawet jak **expand array Excel** zwraca wyniki. + +Pokażemy Ci także dokładne kroki, aby **save workbook as xlsx**, dzięki czemu możesz przekazać plik każdemu, kto używa Excela. Po zakończeniu tego tutorialu będziesz mieć solidny, gotowy do produkcji fragment kodu, który możesz wstawić do dowolnego projektu .NET. Bez niejasnych odnośników „zobacz dokumentację” — po prostu kod, który działa już dziś. + +## Czego będziesz potrzebować + +- **.NET 6.0 lub nowszy** – przykład jest skierowany do .NET 6, ale każda nowsza wersja zadziała. +- **Aspose.Cells for .NET** – zainstaluj przez NuGet (`Install-Package Aspose.Cells`). +- Podstawowa znajomość składni C# (zmienne, obiekty i wyrażenia lambda). +- IDE, w którym czujesz się komfortowo (Visual Studio, Rider lub VS Code). + +To wszystko. Bez dodatkowego COM interop, bez instalacji Office na serwerze — Aspose.Cells obsługuje wszystko w pamięci. + +## Utwórz skoroszyt Excel w C# – Implementacja krok po kroku + +Poniżej dzielimy proces na małe, przystępne kroki. Każdy krok ma wyraźny nagłówek, krótki fragment kodu i wyjaśnienie **dlaczego** to robimy. Śmiało skopiuj pełny blok na końcu i uruchom go jako aplikację konsolową. + +### Krok 1 – Inicjalizacja nowego skoroszytu + +Najpierw potrzebujemy pustego obiektu workbook, który reprezentuje plik Excel w pamięci. + +```csharp +using Aspose.Cells; + +// Step 1: Create a new workbook and get the first worksheet +Workbook workbook = new Workbook(); // empty workbook +Worksheet sheet = workbook.Worksheets[0]; // default first sheet +``` + +*Dlaczego to ważne:* `Workbook` jest punktem wejścia dla wszystkich operacji Aspose.Cells. Pobierając pierwszy `Worksheet`, otrzymujemy płótno, na którym możemy wpisywać formuły, wartości lub formatowanie. + +> **Pro tip:** Jeśli potrzebujesz wielu arkuszy, po prostu wywołaj `workbook.Worksheets.Add()` i zachowaj referencję do każdego z nich. + +### Krok 2 – Użycie funkcji SEQUENCE Excel do generowania danych + +**sequence function excel** tworzy dynamiczną tablicę liczb bez użycia VBA. Umieścimy ją w komórce `A1` i pozwolimy Excelowi automatycznie rozciągnąć wynik. + +```csharp +// Step 2: Generate a 5‑row, 1‑column array from a SEQUENCE +sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; // 1..3 padded with blanks +``` + +*Dlaczego to ważne:* `SEQUENCE(3)` zwraca `[1,2,3]`. Otoczenie jej funkcją `EXPAND` wymusza wynik w zakresie 5‑wierszowym, wypełniając dodatkowe wiersze pustymi wartościami. To jednocześnie pokazuje **sequence function excel** i **expand array excel** w jednej operacji. + +### Krok 3 – Agregacja liczb przy użyciu funkcji LAMBDA Excel + +Teraz pokażemy możliwości **lambda function excel**. Zsumujemy liczby od 1 do 5, używając nowej funkcji `REDUCE`, która wewnętrznie korzysta z lambdy. + +```csharp +// Step 3: Aggregate a sequence (sum 1..5) using REDUCE/LAMBDA +sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; // result = 15 +``` + +*Dlaczego to ważne:* `REDUCE` iteruje po tablicy wygenerowanej przez `SEQUENCE(5)`, przekazując każdy element (`b`) do lambdy razem z akumulatorem (`a`). Lambda `a+b` sumuje je, pozostawiając `15` w `B1`. To czysty, wyłącznie formułowy sposób na redukcję bez pętli w C#. + +### Krok 4 – Zastosowanie funkcji trygonometrycznych bezpośrednio w komórkach + +Wbudowane funkcje matematyczne Excela są przydatne do szybkich obliczeń. Umieścimy cotangens i hiperboliczny cotangens w sąsiadujących komórkach. + +```csharp +// Step 4: Trigonometric functions directly in Excel cells +sheet["C1"].Formula = "COT(PI()/4)"; // evaluates to 1 +sheet["D1"].Formula = "COTH(1)"; // hyperbolic cotangent of 1 +``` + +*Dlaczego to ważne:* Pokazuje, że możesz mieszać klasyczne funkcje matematyczne z nowszymi formułami dynamicznymi. Nie ma potrzeby obliczać tych wartości w C#, chyba że masz konkretny powód wydajnościowy. + +### Krok 5 – Oblicz wszystkie formuły + +Aspose.Cells nie ocenia automatycznie formuł po ich ustawieniu. Musisz poprosić go o obliczenie. + +```csharp +// Step 5: Force calculation so that cells store the results +workbook.CalculateFormula(); +``` + +*Dlaczego to ważne:* Po tym wywołaniu właściwość `Value` każdej komórki zawiera wyliczony wynik, gotowy do zapisania lub odczytania. + +### Krok 6 – Zapisz skoroszyt jako Xlsx + +Na koniec zapisujemy skoroszyt na dysku, używając wzorca **save workbook as xlsx**. + +```csharp +// Step 6: Save the workbook to an Excel file (XLSX format) +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + +workbook.Save(outputPath); +Console.WriteLine($"Workbook saved to: {outputPath}"); +``` + +*Dlaczego to ważne:* Metoda `Save` automatycznie wykrywa rozszerzenie pliku. Używając „.xlsx”, zapewniamy kompatybilność z nowoczesnymi wersjami Excela. Ścieżka wskazuje na pulpit, co ułatwia dostęp podczas testów. + +### Pełny działający przykład + +Poniżej znajduje się kompletny program, który możesz wkleić do nowego projektu konsolowego. Zawiera wszystkie powyższe kroki oraz mały blok weryfikacyjny, który wypisuje obliczone wartości w konsoli. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialize workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + + // SEQUENCE + EXPAND + sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; + + // REDUCE with LAMBDA + sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; + + // Trig functions + sheet["C1"].Formula = "COT(PI()/4)"; + sheet["D1"].Formula = "COTH(1)"; + + // Calculate formulas + workbook.CalculateFormula(); + + // Verify results (optional) + Console.WriteLine("A1‑A5 (expanded SEQUENCE):"); + for (int i = 0; i < 5; i++) + { + Console.WriteLine($" Row {i + 1}: {sheet.Cells[i, 0].Value ?? "blank"}"); + } + Console.WriteLine($"B1 (sum 1‑5): {sheet["B1"].Value}"); + Console.WriteLine($"C1 (cot(π/4)): {sheet["C1"].Value}"); + Console.WriteLine($"D1 (coth(1)): {sheet["D1"].Value}"); + + // Save workbook + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + workbook.Save(outputPath); + Console.WriteLine($"Workbook saved to: {outputPath}"); + } +} +``` + +**Oczekiwany wynik w konsoli** + +``` +A1‑A5 (expanded SEQUENCE): + Row 1: 1 + Row 2: 2 + Row 3: 3 + Row 4: blank + Row 5: blank +B1 (sum 1‑5): 15 +C1 (cot(π/4)): 1 +D1 (coth(1)): 1.31303528549933 +Workbook saved to: C:\Users\YourName\Desktop\NewFunctions.xlsx +``` + +A gdy otworzysz *NewFunctions.xlsx*, zobaczysz te same liczby rozmieszczone w pierwszych czterech kolumnach. + +![utwórz skoroszyt excel c# zrzut ekranu wynikowego arkusza](/images/create-excel-workbook-csharp.png) + +## Przypadki brzegowe, wskazówki i najczęstsze pytania + +- **Co zrobić, jeśli potrzebuję więcej niż jednego arkusza?** + Po prostu wywołaj `workbook.Worksheets.Add()` i powtórz przypisania formuł na każdym nowym obiekcie `Worksheet`. + +- **Czy mogę używać starszych wersji Excela?** + Funkcje dynamicznych tablic (`SEQUENCE`, `EXPAND`, `REDUCE`) wymagają Excel 365 lub Excel 2021+. Jeśli celujesz w starsze wersje, trzymaj się klasycznych formuł lub oblicz wartości w C# przed ich zapisaniem. + +- **Obawy dotyczące wydajności?** + Dla tysięcy wierszy ustawianie formuł na zakresie i późniejsze wywołanie `CalculateFormula` jest zazwyczaj szybsze niż iteracyjne przypisywanie wartości pojedynczo. + +- **Zapis do strumienia zamiast pliku?** + `work + +{{< /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/polish/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md b/cells/polish/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md new file mode 100644 index 0000000000..542e83cc4f --- /dev/null +++ b/cells/polish/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md @@ -0,0 +1,212 @@ +--- +category: general +date: 2026-03-30 +description: Dowiedz się, jak używać WRAPCOLS w C#, aby utworzyć skoroszyt Excel, + dodać dane do Excela i wymusić obliczanie formuł, jednocześnie używając WRAPROWS. +draft: false +keywords: +- how to use wrapcols +- create excel workbook c# +- add data to excel +- force formula calculation +- how to use wraprows +language: pl +og_description: Odkryj, jak używać WRAPCOLS w C#, aby stworzyć skoroszyt Excel, dodać + dane, wymusić obliczanie formuł i wykorzystać WRAPROWS do formuł tablicowych. +og_title: Jak używać WRAPCOLS w C# – Kompletny przewodnik +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Jak używać WRAPCOLS w C# – Tworzenie skoroszytu Excel z funkcjami Wrap +url: /pl/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak używać WRAPCOLS w C# – Tworzenie skoroszytu Excel z funkcjami Wrap + +Zastanawiałeś się kiedyś **jak używać WRAPCOLS**, gdy automatyzujesz Excel w C#? Nie jesteś sam — wielu programistów napotyka problem, gdy muszą przekształcić poziomy zakres w pionową tablicę bez pisania mnóstwa kodu. Dobrą wiadomością jest to, że Aspose.Cells czyni to dziecinnie proste. + +W tym samouczku przeprowadzimy Cię przez kompletny, działający przykład, który pokazuje **jak używać WRAPCOLS**, jak **tworzyć skoroszyt Excel w stylu C#**, jak **dodawać dane do Excela**, a nawet jak **wymusić obliczanie formuł**, aby wyniki pojawiały się natychmiast. Dodamy także **jak używać WRAPROWS** do odwrotnej transformacji. Po zakończeniu będziesz mieć gotowy do uruchomienia program i jasne zrozumienie, dlaczego każdy krok ma znaczenie. + +--- + +![Jak używać WRAPCOLS w C# przykład](alt="Zrzut ekranu pokazujący skoroszyt Excel po użyciu WRAPCOLS w C#") + +## Co obejmuje ten przewodnik + +* Ustawienie nowego skoroszytu przy użyciu Aspose.Cells. +* Wypełnianie komórek programowo (**add data to Excel**). +* Zastosowanie funkcji `WRAPCOLS` do przekształcenia wiersza w kolumnę. +* Użycie `WRAPROWS` do odwrócenia kolumny z powrotem w wiersz (**how to use wraprows**). +* Wymuszenie silnika na natychmiastowe obliczenie formuł (**force formula calculation**). +* Zapisanie pliku i sprawdzenie wyniku. + +Nie potrzebna jest żadna zewnętrzna dokumentacja — wszystko, czego potrzebujesz, znajduje się tutaj. + +--- + +## Jak używać WRAPCOLS w C# – Implementacja krok po kroku + +Poniżej znajduje się pełny plik źródłowy. Śmiało skopiuj‑wklej go do nowego projektu konsolowego, dodaj pakiet NuGet Aspose.Cells i naciśnij **F5**. + +```csharp +// ------------------------------------------------------------ +// How to Use WRAPCOLS in C# – Complete Example +// ------------------------------------------------------------ +using System; +using Aspose.Cells; + +namespace WrapFunctionsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a fresh workbook (this is how we **create excel workbook c#** style) + Workbook workbook = new Workbook(); + + // 2️⃣ Grab the first worksheet – it's created by default + Worksheet sheet = workbook.Worksheets[0]; + + // 3️⃣ **Add data to Excel**: place two numbers side‑by‑side + sheet.Cells["A1"].PutValue(1); // first value + sheet.Cells["B1"].PutValue(2); // second value + + // 4️⃣ **How to use WRAPCOLS** – turn the horizontal range A1:B1 into a vertical array + // The second argument (1) tells WRAPCOLS to create 1 column per element. + sheet["C1"].Formula = "WRAPCOLS(A1:B1, 1)"; + + // 5️⃣ **How to use WRAPROWS** – the opposite; turn the same range into a horizontal array + // Here we ask for 2 rows per element, which produces a single row with both values. + sheet["C2"].Formula = "WRAPROWS(A1:B1, 2)"; + + // 6️⃣ **Force formula calculation** so the workbook reflects the results immediately + workbook.CalculateFormula(); + + // 7️⃣ Save the workbook to disk – change the path to a folder you own + string outputPath = @"WrapFunctions.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + Console.WriteLine("Check cells C1 and C2 for the WRAPCOLS / WRAPROWS results."); + } + } +} +``` + +### Dlaczego każdy wiersz ma znaczenie + +| Step | Explanation | +|------|-------------| +| **1️⃣ Utwórz nowy skoroszyt** | To jest podstawa. Aspose.Cells traktuje obiekt `Workbook` jako cały plik Excel, więc w praktyce **tworzysz skoroszyt Excel w stylu C#**. | +| **2️⃣ Pobierz pierwszy arkusz** | Nowy skoroszyt zawsze zawiera przynajmniej jeden arkusz (`Worksheets[0]`). Dostęp do niego od razu zapobiega niespodziewanym błędom null‑reference. | +| **3️⃣ Dodaj dane do Excela** | Używając `PutValue` **dodajemy dane do Excela** bez martwienia się o formatowanie komórek. Liczby `1` i `2` są naszymi danymi testowymi dla funkcji wrap. | +| **4️⃣ Jak używać WRAPCOLS** | `WRAPCOLS(A1:B1, 1)` instruuje Excel, aby wziął zakres `A1:B1` i rozlał jego wartości pionowo, po jednej w każdym wierszu. Wynik trafia do `C1` i rozlewa się w dół (`C1`, `C2`, …). | +| **5️⃣ Jak używać WRAPROWS** | `WRAPROWS(A1:B1, 2)` robi odwrotnie: tworzy poziomy rozlew, umieszczając dwie wartości w jednym wierszu zaczynając od `C2`. | +| **6️⃣ Wymuś obliczanie formuł** | Domyślnie Aspose.Cells może odłożyć obliczenia do momentu otwarcia pliku w Excelu. Wywołanie `CalculateFormula()` **wymusza obliczanie formuł**, dzięki czemu możesz odczytać wyniki od razu po zapisaniu. | +| **7️⃣ Zapisz skoroszyt** | Ostatni krok zapisuje wszystko na dysk. Otwórz powstały plik `WrapFunctions.xlsx`, aby zobaczyć rezultat. | + +--- + +## Tworzenie skoroszytu Excel w C# – Konfiguracja środowiska + +Zanim uruchomisz kod, upewnij się, że masz odpowiednie narzędzia: + +1. **.NET 6.0+** – Najnowsza wersja LTS działa najlepiej. +2. **Visual Studio 2022** (lub VS Code z rozszerzeniem C#). +3. **Aspose.Cells for .NET** – Zainstaluj przez NuGet: + ```bash + dotnet add package Aspose.Cells + ``` +4. Zapisywalny folder na plik wyjściowy. + +Te wymagania są minimalne; nie jest potrzebny interfejs COM ani instalacja Office, co czyni Aspose.Cells popularnym wyborem do generowania Excela po stronie serwera. + +--- + +## Dodawanie danych do Excela – Najlepsze praktyki + +Gdy **dodajesz dane do Excela** programowo, rozważ następujące wskazówki: + +* **Użyj `PutValue`** dla surowych liczb lub ciągów; automatycznie wykrywa typ danych. +* **Unikaj twardego kodowania adresów komórek** w dużych projektach — używaj pętli lub nazwanych zakresów dla skalowalności. +* **Ustawiaj style komórek oszczędnie**; każda zmiana stylu generuje narzut. Jeśli potrzebujesz formatowania, utwórz jeden obiekt stylu i zastosuj go do wielu komórek. + +W naszym małym przykładzie wstawiamy tylko dwie liczby, ale ten sam wzorzec skaluje się do tysięcy wierszy. + +--- + +## Jak używać WRAPROWS – Przykład poziomej tablicy + +Jeśli potrzebujesz przeciwieństwa `WRAPCOLS`, `WRAPROWS` jest Twoim wyborem. Składnia jest następująca: + +``` +WRAPROWS(source_range, [rows_per_item]) +``` + +* `source_range` – zakres, który chcesz przekształcić. +* `rows_per_item` – opcjonalny; określa, ile wierszy zajmuje każdy element. W naszym demo użyliśmy `2`, aby wymusić umieszczenie obu wartości w jednym wierszu. + +Możesz eksperymentować, zmieniając drugi argument: + +```csharp +// Example: split each value into its own column, three rows per item +sheet["D1"].Formula = "WRAPROWS(A1:B1, 3)"; +``` + +Otwórz skoroszyt i zobaczysz, że wartości rozlewają się na trzy kolumny, przy czym każda kolumna zawiera oryginalne liczby powtarzane w razie potrzeby. + +--- + +## Wymuszanie obliczania formuł – kiedy i dlaczego + +Możesz się zastanawiać, „Czy naprawdę muszę wywołać `CalculateFormula()`?” Odpowiedź brzmi **tak**, jeśli: + +* Planujesz odczytywać obliczone wartości **programowo** po zapisaniu. +* Chcesz mieć pewność, że plik otwiera się w Excelu z już wyświetlonymi poprawnymi wynikami. +* Działasz w **środowisku bez interfejsu graficznego** (np. API webowym), gdzie żaden użytkownik nie wywoła ręcznie przeliczenia. + +Pominięcie tego kroku nie uszkodzi skoroszytu, ale komórki będą wyświetlały tekst formuły (`=WRAPCOLS(...)`) zamiast obliczonych wartości, dopóki Excel nie przeliczy je ponownie. + +--- + +## Oczekiwany wynik – czego szukać + +Po uruchomieniu programu i otwarciu `WrapFunctions.xlsx`: + +| Cell | Formula | Displayed Value | +|------|---------|-----------------| +| **C1** | `=WRAPCOLS(A1:B1, 1)` | `1` (w C1) i `2` (w C2) – lista pionowa | +| **C2** | `=WRAPROWS(A1:B1, 2)` | `1` w C2 i `2` w D2 – lista pozioma | + +Zobaczysz więc kolumnę wartości zaczynającą się od **C1** oraz wiersz wartości zaczynający się od **C2**. Potwierdza to, że obie funkcje wrap zachowały się zgodnie z oczekiwaniami. + +--- + +## Przypadki brzegowe i warianty + +| Scenario | What changes? | Suggested tweak | +|----------|---------------|-----------------| +| **Duży zakres (A1:Z1)** | Więcej wartości do rozlania pionowo | Zwiększ drugi argument `WRAPCOLS`, jeśli chcesz wiele kolumn na grupę. | +| **Dane nienumeryczne** | Łańcuchy znaków są obsługiwane w ten sam sposób | Brak zmian w kodzie; `PutValue` przyjmuje dowolny obiekt. | +| **Dynamiczny zakres** | Nie znasz rozmiaru w czasie kompilacji | Użyj `sheet.Cells.MaxDataColumn` i `MaxDataRow`, aby zbudować ciąg adresu. | +| **Wiele arkuszy** | Potrzeba zastosować funkcje wrap na różnych arkuszach | Odniesienie do właściwego arkusza (`workbook.Worksheets["Sheet2"]`). | + +Przewidując te warianty, możesz dostosować podstawowy wzorzec do prawie każdego scenariusza automatyzacji. + +--- + +## Profesjonalne wskazówki z pola walki + +* **Pro tip:** Umieść tworzenie skoroszytu w bloku `using`, jeśli celujesz w .NET Core 3.1+, aby zapewnić szybkie zwolnienie wszystkich zasobów. +* **Watch out for:** Ustawianie tej samej formuły w dużym zakresie bez wywoływania `CalculateFormula()` może powodować wąskie gardła wydajności. Przetwarzaj formuły partiami, gdy to możliwe. +* **Tip:** If you need to read back the calculated values in code, call ` + +{{< /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/polish/net/tables-and-lists/_index.md b/cells/polish/net/tables-and-lists/_index.md index 743ba9780d..65202bdff2 100644 --- a/cells/polish/net/tables-and-lists/_index.md +++ b/cells/polish/net/tables-and-lists/_index.md @@ -51,6 +51,8 @@ Naucz się konwertować tabele programu Excel do formatu ODS za pomocą Aspose.C Odblokuj moc Aspose.Cells dla .NET. Naucz się czytać i zapisywać tabele ze źródłami danych zapytań w tym szczegółowym przewodniku krok po kroku. ### [Ustaw komentarz tabeli lub listy w programie Excel](./setting-comment-of-table-or-list/) Dowiedz się, jak ustawiać komentarze dla tabel w programie Excel za pomocą Aspose.Cells dla platformy .NET, korzystając z naszego prostego przewodnika krok po kroku. +### [Utwórz tabelę z zakresu w C# – Kompletny samouczek Aspose.Cells](./create-table-from-range-in-c-complete-aspose-cells-tutorial/) +Dowiedz się, jak utworzyć tabelę z zakresu w C# przy użyciu Aspose.Cells dla .NET, krok po kroku. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/polish/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md b/cells/polish/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md new file mode 100644 index 0000000000..8e3b906150 --- /dev/null +++ b/cells/polish/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md @@ -0,0 +1,231 @@ +--- +category: general +date: 2026-03-30 +description: Utwórz tabelę z zakresu w C# przy użyciu Aspose.Cells – dodaj dane do + komórek, przekształć zakres w ListObject i zapisz plik Excel bez filtru. +draft: false +keywords: +- create table from range +- create excel workbook c# +- add data to cells +- convert range to listobject +- save excel without filter +language: pl +og_description: Utwórz tabelę z zakresu w C# przy użyciu Aspose.Cells. Dowiedz się, + jak dodawać dane do komórek, konwertować zakres na ListObject oraz zapisywać plik + Excel bez filtra. +og_title: Utwórz tabelę z zakresu w C# – kompletny samouczek Aspose.Cells +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Utwórz tabelę z zakresu w C# – Kompletny samouczek Aspose.Cells +url: /pl/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tworzenie tabeli z zakresu w C# – Kompletny samouczek Aspose.Cells + +Kiedykolwiek potrzebowałeś **create table from range** w C#, ale nie byłeś pewien, jak zamienić zwykły blok danych w w pełni funkcjonalną tabelę Excel? Nie jesteś jedyny. Niezależnie od tego, czy automatyzujesz raporty, generujesz karty wyników, czy po prostu porządkujesz dane do dalszej analizy, opanowanie tej małej sztuczki może zaoszczędzić Ci wiele ręcznej pracy. + +W tym przewodniku przeprowadzimy Cię przez cały proces: **create excel workbook c#**, **add data to cells**, **convert range to ListObject**, oraz w końcu **save excel without filter**. Po zakończeniu będziesz mieć gotowy do uruchomienia fragment kodu, który możesz wkleić do dowolnego projektu .NET odwołującego się do Aspose.Cells. + +--- + +## Wymagania wstępne + +- .NET 6+ (lub .NET Framework 4.7.2+) zainstalowany +- Aspose.Cells for .NET (pakiet NuGet `Aspose.Cells`) – najnowsza wersja w momencie pisania (23.10) działa perfekcyjnie. +- Podstawowa znajomość składni C# – nie wymaga głębokiej wiedzy o interfejsie Excel. + +Jeśli masz to wszystko, zaczynajmy. + +--- + +## Krok 1: Utwórz skoroszyt Excel w C# + +Na początek potrzebujemy nowego obiektu skoroszytu. Traktuj to jako pusty plik Excel, który ostatecznie będzie zawierał naszą tabelę. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is equivalent to opening a blank .xlsx file. +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (default) worksheet. +``` + +> **Wskazówka:** `Workbook()` bez argumentów tworzy skoroszyt z jednym domyślnym arkuszem, co jest idealne do szybkich demonstracji. Jeśli potrzebujesz wielu arkuszy, możesz dodać je później za pomocą `workbook.Worksheets.Add()`. + +--- + +## Krok 2: Dodaj dane do komórek + +Teraz wypełnimy arkusz małym zestawem danych – dwie kolumny (Name, Score) i trzy wiersze wartości. To pokazuje **add data to cells** w przejrzysty, czytelny sposób. + +```csharp +// Header row +worksheet.Cells["A1"].PutValue("Name"); +worksheet.Cells["B1"].PutValue("Score"); + +// Data rows +worksheet.Cells["A2"].PutValue("Alice"); +worksheet.Cells["B2"].PutValue(85); +worksheet.Cells["A3"].PutValue("Bob"); +worksheet.Cells["B3"].PutValue(92); +``` + +Dlaczego używać `PutValue`? Automatycznie wykrywa typ danych (tekst vs. liczbowy) i odpowiednio formatuje komórkę, oszczędzając Ci manipulacji obiektami `Style` w prostych scenariuszach. + +> **Oczekiwany wynik:** Po tym kroku, jeśli otworzysz skoroszyt w Excelu, zobaczysz dwukolumnową siatkę z nagłówkami „Name” i „Score”, a następnie dwa wiersze danych. + +--- + +## Krok 3: Konwertuj zakres na ListObject (tabelę) + +Tutaj dzieje się magia: przekształcenie tego zwykłego zakresu w tabelę Excel (nazywaną **ListObject** w API Aspose.Cells). To nie tylko dodaje styl wizualny, ale także umożliwia wbudowane funkcje, takie jak sortowanie, filtrowanie i odwołania strukturalne. + +```csharp +// Define the range boundaries. +// startRow and startColumn are zero‑based indexes. +// rowCount includes the header row. +int startRow = 0; // Row 1 in Excel +int startColumn = 0; // Column A +int rowCount = 3; // Header + 2 data rows +int columnCount = 2; // Two columns: Name & Score + +// Add a ListObject to the worksheet and retrieve the object. +int listIndex = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); +ListObject table = worksheet.ListObjects[listIndex]; + +// Turn on the UI filter dropdowns so users can interact with the table. +table.ShowAutoFilter = true; +``` + +> **Dlaczego używać ListObject?** +> - **Structured references**: Formuły mogą odwoływać się do kolumn po nazwie. +> - **Auto‑filter UI**: Użytkownicy dostają strzałki rozwijane do szybkiego filtrowania. +> - **Styling**: Możesz zastosować wbudowane style tabeli jedną linią później. + +--- + +## Krok 4: Usuń interfejs AutoFilter (zapisz Excel bez filtra) + +Czasami potrzebny jest czysty arkusz bez strzałek filtra – na przykład, gdy skoroszyt jest ostatecznym raportem. Aspose.Cells 23.10 wprowadził prosty sposób na całkowite usunięcie interfejsu filtra. + +```csharp +// Remove the filter UI completely. +table.AutoFilter = null; // Clears the underlying filter object. +table.ShowAutoFilter = false; // Hides the dropdown arrows. +``` + +Zauważ, że nie usuwamy danych; wyłączamy jedynie wizualne kontrolki filtra. To spełnia wymóg **save excel without filter**. + +--- + +## Krok 5: Zapisz skoroszyt + +Na koniec zapisz skoroszyt na dysku. Plik będzie zawierał tabelę, ale bez interfejsu filtra. + +```csharp +// Choose a folder you have write access to. +string outputPath = @"C:\Temp\NoAutoFilter.xlsx"; +workbook.Save(outputPath); +``` + +Otwórz `NoAutoFilter.xlsx` w Excelu – zobaczysz tabelę sformatowaną domyślnym stylem, ale bez strzałek filtra. Dane pozostają nienaruszone, a plik jest gotowy do dystrybucji. + +--- + +![Zrzut ekranu pokazujący tworzenie tabeli z zakresu w Excelu przy użyciu Aspose.Cells](image.png "Zrzut ekranu tworzenia tabeli z zakresu") + +*Tekst alternatywny obrazu:* **Zrzut ekranu pokazujący tworzenie tabeli z zakresu w Excelu przy użyciu Aspose.Cells** – wizualny dowód, że tabela istnieje bez rozwijanych filtrów. + +--- + +## Pełny, uruchamialny przykład + +Poniżej znajduje się kompletny program, który możesz skopiować i wkleić do aplikacji konsolowej. Zawiera wszystkie powyższe kroki oraz kilka dodatkowych komentarzy dla przejrzystości. + +```csharp +using System; +using Aspose.Cells; + +namespace AsposeTableDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add data to cells – this is the “add data to cells” part. + worksheet.Cells["A1"].PutValue("Name"); + worksheet.Cells["B1"].PutValue("Score"); + worksheet.Cells["A2"].PutValue("Alice"); + worksheet.Cells["B2"].PutValue(85); + worksheet.Cells["A3"].PutValue("Bob"); + worksheet.Cells["B3"].PutValue(92); + + // 3️⃣ Convert the range into a ListObject (i.e., create table from range). + int startRow = 0, startColumn = 0, rowCount = 3, columnCount = 2; + int listIdx = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); + ListObject table = worksheet.ListObjects[listIdx]; + table.ShowAutoFilter = true; // optional UI filter + + // 4️⃣ Remove the AutoFilter UI – “save excel without filter”. + table.AutoFilter = null; + table.ShowAutoFilter = false; + + // 5️⃣ Save the workbook. + string filePath = @"C:\Temp\NoAutoFilter.xlsx"; + workbook.Save(filePath); + + Console.WriteLine($"Workbook saved to {filePath}"); + } + } +} +``` + +Uruchom program, a następnie otwórz `C:\Temp\NoAutoFilter.xlsx`. Zobaczysz ładnie sformatowaną tabelę, brak strzałek filtra i wprowadzone dane. To cały przepływ **create excel workbook c#** w mniej niż 60 liniach kodu. + +--- + +## Najczęściej zadawane pytania i przypadki brzegowe + +**Q:** Co jeśli mój zakres danych nie jest ciągły? +**A:** Aspose.Cells wymaga prostokątnego zakresu dla `ListObjects.Add`. Jeśli masz dane nieciągłe, najpierw zbuduj tymczasowy zakres (np. skopiuj fragmenty do nowego arkusza), a następnie przekształć ten zakres. + +**Q:** Czy mogę zastosować własny styl tabeli? +**A:** Oczywiście. Po utworzeniu `ListObject` ustaw `table.TableStyleType = TableStyleType.TableStyleMedium9;` (lub dowolny z 65 wbudowanych stylów). To dobry sposób, aby tabela pasowała do identyfikacji wizualnej Twojej firmy. + +**Q:** Jak zachować filtr, ale ukryć strzałki? +**A:** Logika filtra znajduje się w `table.AutoFilter`. Ustawienie `ShowAutoFilter = false` ukrywa tylko interfejs; sam filtr pozostaje aktywny. Dzięki temu możesz nadal programowo filtrować wiersze później. + +**Q:** Co z dużymi zestawami danych (10 tys.+ wierszy)? +**A:** To samo API działa, ale rozważ wyłączenie automatycznych obliczeń (`workbook.CalcEngine = false`) przed masowymi wstawieniami dla wydajności, a następnie włącz je po zakończeniu. + +--- + +## Podsumowanie + +Właśnie omówiliśmy, jak **create table from range** w C# przy użyciu Aspose.Cells, krok po kroku – od **create excel workbook c#**, przez **add data to cells**, do **convert range to ListObject**, i w końcu **save excel without filter**. Kod jest kompletny, uruchamialny i gotowy do produkcji. + +Następnie możesz chcieć zbadać: + +- Dodawanie formatowania warunkowego, aby podświetlić najwyższe wyniki. +- Eksportowanie skoroszytu do PDF za pomocą `workbook.Save("Report.pdf", SaveFormat.Pdf);`. +- Użycie `table.Columns["Score"].DataBodyRange.Sort` do programowego sortowania tabeli. + +Śmiało eksperymentuj z różnymi zestawami danych, stylami tabel lub nawet wieloma arkuszami. API jest na tyle elastyczne, że poradzi sobie z czymkolwiek, od małej tablicy wyników po ogromny rejestr finansowy. + +Masz pytania lub napotkałeś problem? Dodaj komentarz poniżej lub napisz do mnie na GitHubie. Szczęśliwego kodowania i ciesz się przekształcaniem surowych zakresów w dopracowane tabele 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/portuguese/net/conversion-to-pdf/_index.md b/cells/portuguese/net/conversion-to-pdf/_index.md index baed475de1..356a5c26d6 100644 --- a/cells/portuguese/net/conversion-to-pdf/_index.md +++ b/cells/portuguese/net/conversion-to-pdf/_index.md @@ -27,13 +27,15 @@ Em seguida, você precisará definir as opções de PDF. É aqui que a mágica a ## Converta gráficos para PDF de forma fácil -Mas espere, tem mais! E se você quiser converter gráficos de suas planilhas do Excel para PDF? Sim, o Aspose.Cells também te ajuda. Sejam gráficos de barras, gráficos de pizza ou histogramas, nossos tutoriais fornecem etapas fáceis para garantir que esses elementos visuais mantenham sua integridade durante o processo de conversão. Quer saber como? Explore nosso guia sobre [Converter gráfico em PDF no .NET](./convert-chart-to-pdf/) e descobrir novas maneiras de apresentar dados como um profissional. +Mas espere, tem mais! E se você quiser converter gráficos de suas planilhas do Excel para PDF? Sim, o Aspose.Cells também te ajuda. Sejam gráficos de barras, gráficos de pizza ou histogramas, nossos tutoriais fornecem etapas fáceis para garantir que esses elementos visual ## Tutoriais de conversão para PDF ### [Conversão de Excel para PDF em .NET](./excel-to-pdf-conversion/) Converta planilhas do Excel para PDF facilmente com o Aspose.Cells para .NET! Siga nosso guia passo a passo para uma experiência perfeita. ### [Converter gráfico em PDF no .NET](./convert-chart-to-pdf/) Aprenda a converter gráficos do Excel para PDF no .NET usando o Aspose.Cells com este guia passo a passo! Perfeito para programadores de todos os níveis. +### [Salvar pasta de trabalho como PDF com Aspose.Cells – Guia completo passo a passo](./save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/) +Aprenda a salvar sua pasta de trabalho Excel como PDF usando Aspose.Cells com instruções detalhadas passo a passo. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/portuguese/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md b/cells/portuguese/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md new file mode 100644 index 0000000000..430e03a95b --- /dev/null +++ b/cells/portuguese/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md @@ -0,0 +1,241 @@ +--- +category: general +date: 2026-03-30 +description: Aprenda como salvar a pasta de trabalho como PDF usando Aspose.Cells. + Este tutorial também aborda exportar planilha para PDF, como exportar Excel para + PDF e criar PDF a partir de uma planilha. +draft: false +keywords: +- save workbook as pdf +- export worksheet to pdf +- how to export excel to pdf +- save excel as pdf +- create pdf from worksheet +language: pt +og_description: Salve a pasta de trabalho como PDF facilmente. Este guia mostra como + exportar a planilha para PDF, como exportar o Excel para PDF e como criar PDF a + partir da planilha usando C#. +og_title: Salvar planilha como PDF com Aspose.Cells – Guia Completo +tags: +- Aspose.Cells +- C# +- PDF generation +title: Salvar pasta de trabalho como PDF com Aspose.Cells – Guia completo passo a + passo +url: /pt/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Salvar workbook como pdf – Guia Completo Passo a Passo + +Já precisou **save workbook as pdf** mas não tinha certeza de qual biblioteca manteria seus números intactos? Você não está sozinho. Em muitos projetos precisamos transformar dados do Excel em um PDF refinado, e fazer isso da maneira correta economiza horas de depuração. + +Neste tutorial vamos percorrer o código exato que você precisa para **save workbook as pdf** com Aspose.Cells, e ao longo do caminho também mostraremos como **export worksheet to pdf**, responder perguntas sobre *how to export excel to pdf* e demonstrar uma forma limpa de **create pdf from worksheet** com configurações de precisão personalizadas. + +Ao final do guia você terá um aplicativo console C# pronto‑para‑executar que produz um PDF contendo apenas os dígitos significativos que lhe interessam. Sem conteúdo extra, apenas uma solução sólida e pronta para produção. + +--- + +## O que você aprenderá + +- Como configurar um novo `Workbook` e direcionar sua primeira planilha. +- O método exato para **save workbook as pdf** preservando a precisão numérica. +- Por que a propriedade `SignificantDigits` é importante ao **export worksheet to pdf**. +- Armadilhas comuns ao tentar **how to export excel to pdf** e como evitá‑las. +- Maneiras rápidas de **save excel as pdf** com diferentes opções de página, e como **create pdf from worksheet** programaticamente. + +### Pré-requisitos + +- .NET 6.0 ou superior (o código também funciona com .NET Framework 4.5+). +- Uma licença válida do Aspose.Cells (ou uma licença temporária gratuita para testes). +- Visual Studio 2022 ou qualquer IDE compatível com C#. + +Se você já tem esses requisitos, vamos mergulhar. + +--- + +## Etapa 1 – Instalar Aspose.Cells e Inicializar o Workbook + +Primeiro de tudo: você precisa do pacote NuGet Aspose.Cells. Abra um terminal na pasta do seu projeto e execute: + +```bash +dotnet add package Aspose.Cells +``` + +Depois que o pacote for instalado, crie um novo objeto `Workbook`. Este é o objeto que você eventualmente **save workbook as pdf**. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialise a fresh workbook – think of it as a blank Excel file. + Workbook workbook = new Workbook(); + + // Grab the first worksheet (index 0). This is where we’ll put our data. + Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Por que esta etapa?* +Criar o workbook fornece uma tela limpa, e selecionar a primeira planilha garante que você esteja trabalhando em um local conhecido. Pular esta etapa pode levar a erros de *null reference* quando você tentar **export worksheet to pdf** mais tarde. + +--- + +## Etapa 2 – Inserir Dados de Alta Precisão + +Agora vamos inserir um número que tem mais casas decimais do que realmente queremos mostrar no PDF. Isso demonstra como a configuração `SignificantDigits` reduz a saída. + +```csharp + // Place a high‑precision number in cell A1. + worksheet.Cells["A1"].PutValue(1234.56789); +``` + +Se você executar o programa agora e simplesmente chamar `workbook.Save("output.pdf")`, o PDF mostrará o completo `1234.56789`. Isso pode ser aceitável em alguns casos, mas frequentemente é necessário arredondar para um número específico de dígitos significativos — especialmente para relatórios financeiros. + +--- + +## Etapa 3 – Configurar Opções de Salvamento PDF + +Aspose.Cells oferece controle detalhado via `PdfSaveOptions`. A propriedade que nos interessa é `SignificantDigits`. Definir para `4` indica ao motor que mantenha apenas quatro cifras significativas ao **save workbook as pdf**. + +```csharp + // Configure PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 // This trims the number to 1235 in the PDF. + }; +``` + +*Por que usar `SignificantDigits`?* +Quando você **create pdf from worksheet**, muitas vezes precisa obedecer às regras regulatórias de arredondamento. Esta opção faz o arredondamento por você, então não precisa formatar manualmente cada célula. + +--- + +## Etapa 4 – Exportar Planilha para PDF com as Opções + +Chegou o momento da verdade: realmente **save workbook as pdf** usando as opções que acabamos de definir. + +```csharp + // Save the workbook as a PDF using the configured options. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + } +} +``` + +Executar o programa gerará um arquivo chamado `SignificantDigits.pdf` na pasta de saída do seu projeto. Abra‑o e você verá `1235` na célula A1 — o número foi arredondado para quatro dígitos significativos. + +*Ponto chave:* O método `Save` recebe tanto o caminho do arquivo quanto o `PdfSaveOptions`. Se você omitir as opções, retornará ao comportamento padrão, que pode não atender aos seus requisitos de precisão. + +--- + +## Etapa 5 – Verificar a Saída e Solucionar Problemas Comuns + +### Resultado Esperado + +- Um PDF de uma página chamado `SignificantDigits.pdf`. +- A célula A1 exibe `1235` (quatro dígitos significativos). +- Nenhuma planilha extra ou conteúdo oculto aparece. + +### Perguntas Frequentes + +| Pergunta | Resposta | +|----------|----------| +| **E se eu precisar de mais de uma planilha?** | Percorra `workbook.Worksheets` e aplique o mesmo `PdfSaveOptions` ao salvar cada planilha individualmente, ou defina `OnePagePerSheet = true` nas opções. | +| **Posso manter o formato numérico original?** | Sim – defina `PdfSaveOptions.AllColumnsInOnePage = true` e deixe as regras de formatação do Excel cuidarem disso, mas lembre‑se de que `SignificantDigits` ainda sobrescreverá a precisão numérica. | +| **Isso funciona com arquivos .xlsx que já existem?** | Absolutamente. Substitua `new Workbook()` por `new Workbook("input.xlsx")` e o restante do código permanece o mesmo. | +| **E se o PDF ficar em branco?** | Verifique se o workbook realmente contém dados e se você está salvando em um diretório gravável. Também, assegure que a licença do Aspose.Cells esteja corretamente aplicada; uma versão de avaliação sem licença pode limitar a saída. | + +### Dica Profissional + +Se precisar **save excel as pdf** com uma orientação de página específica, defina `pdfSaveOptions.PageSetup.Orientation = PageOrientation.Landscape;` antes de chamar `Save`. Esse pequeno ajuste costuma evitar que você tenha que ajustar o PDF manualmente depois. + +--- + +## Variações: Exportando Múltiplas Planilhas ou Configurações de Página Personalizadas + +### Exportar Todas as Planilhas em Uma Chamada + +```csharp +PdfSaveOptions allSheetsOptions = new PdfSaveOptions +{ + SignificantDigits = 4, + OnePagePerSheet = true // Each worksheet gets its own page. +}; + +workbook.Save("AllSheets.pdf", allSheetsOptions); +``` + +### Exportar uma Única Planilha como PDF + +Se você quiser apenas **export worksheet to pdf** para uma planilha específica, use o método `ToPdf` do objeto `Worksheet`: + +```csharp +Worksheet sheet = workbook.Worksheets["Sheet2"]; +sheet.ToPdf("Sheet2.pdf", pdfSaveOptions); +``` + +### Ajustar Margens da Página + +```csharp +pdfSaveOptions.PageSetup.TopMargin = 20; +pdfSaveOptions.PageSetup.BottomMargin = 20; +``` + +## Exemplo Completo Funcional + +Abaixo está o programa completo, pronto para copiar e colar, que incorpora tudo o que discutimos. Salve como `Program.cs` e execute `dotnet run`. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and select the first worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Insert a high‑precision number. + worksheet.Cells["A1"].PutValue(1234.56789); + + // 3️⃣ Set PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 + }; + + // 4️⃣ Save the workbook as PDF. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + + // Optional: Export another sheet with custom settings. + // Worksheet sheet2 = workbook.Worksheets.Add("Report"); + // sheet2.Cells["B2"].PutValue(9876.54321); + // sheet2.ToPdf("Report.pdf", pdfSaveOptions); + } +} +``` + +**Resultado:** Abra `SignificantDigits.pdf` – você verá o valor arredondado `1235`. O tamanho do arquivo é modesto e o layout corresponde à planilha Excel original. + +## Conclusão + +Acabamos de mostrar como **save workbook as pdf** usando Aspose.Cells, cobrindo tudo desde a configuração básica até opções avançadas como **export worksheet to pdf**, **how to export excel to pdf**, e **create pdf from worksheet** com controle numérico preciso. + +A abordagem é simples, requer apenas algumas linhas de C# e funciona em várias versões do .NET. Em seguida, você pode explorar a adição de cabeçalhos/rodapés, inserção de imagens ou geração de PDFs a partir de modelos — cada um construído sobre a base que você agora possui. + +Tem alguma variação que gostaria de experimentar? Talvez você precise proteger o PDF com senha ou mesclar vários PDFs. Essas são extensões naturais, e a API do Aspose.Cells cobre essas necessidades. Mergulhe, experimente e deixe a biblioteca fazer o trabalho pesado. + +*Feliz codificação! Se você encontrou algum problema, deixe um comentário abaixo e nós solucionaremos juntos.* + +![save workbook as pdf screenshot](/images/save-workbook-as-pdf.png){alt="exemplo de salvar workbook como pdf mostrando o arquivo PDF gerado"} + +{{< /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/portuguese/net/converting-excel-files-to-other-formats/_index.md b/cells/portuguese/net/converting-excel-files-to-other-formats/_index.md index 69e0db5d97..2f68287d41 100644 --- a/cells/portuguese/net/converting-excel-files-to-other-formats/_index.md +++ b/cells/portuguese/net/converting-excel-files-to-other-formats/_index.md @@ -56,6 +56,8 @@ Aprenda a converter arquivos do Excel para PDF/A-1a para fins de arquivamento us Aprenda a converter JSON para CSV programaticamente em .NET usando Aspose.Cells. Siga nosso guia passo a passo para garantir uma transformação de dados perfeita. ### [Convertendo arquivo Excel para PPTX programaticamente no .NET](./converting-excel-file-to-pptx/) Aprenda como converter um arquivo do Excel em uma apresentação do PowerPoint (PPTX) programaticamente usando o Aspose.Cells para .NET com este guia passo a passo. +### [Criar PowerPoint a partir do Excel – Guia passo a passo em C#](./create-powerpoint-from-excel-step-by-step-c-guide/) +Aprenda a criar apresentações PowerPoint a partir de arquivos Excel usando Aspose.Cells para .NET com este guia passo a passo em C#. ### [Especificando HTML CrossType na saída HTML programaticamente no .NET](./specifying-html-crosstype-in-output-html/) Aprenda a especificar HTML CrossType no Aspose.Cells para .NET. Siga nosso tutorial passo a passo para converter arquivos do Excel para HTML com precisão. ### [Leitura de números em planilhas programadas em .NET](./reading-numbers-spreadsheet/) diff --git a/cells/portuguese/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md b/cells/portuguese/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md new file mode 100644 index 0000000000..6737c65fb4 --- /dev/null +++ b/cells/portuguese/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md @@ -0,0 +1,239 @@ +--- +category: general +date: 2026-03-30 +description: Crie PowerPoint a partir do Excel rapidamente usando Aspose.Cells e Aspose.Slides. + Aprenda como exportar a planilha como imagem e salvar a apresentação como PPTX em + C#. +draft: false +keywords: +- create powerpoint from excel +- convert excel to powerpoint +- export worksheet as image +- save presentation as pptx +- export excel chart as picture +language: pt +og_description: Crie PowerPoint a partir do Excel em C# com Aspose. Exporte a planilha + como imagem, mantenha as formas editáveis e salve o resultado como PPTX. +og_title: Criar PowerPoint a partir do Excel – Tutorial Completo de C# +tags: +- Aspose +- C# +- Office Automation +title: Criar PowerPoint a partir do Excel – Guia passo a passo em C# +url: /pt/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Criar PowerPoint a partir do Excel – Tutorial Completo em C# + +Já precisou **criar PowerPoint a partir do Excel** mas não tinha certeza de qual biblioteca poderia manter seus gráficos editáveis? Você não está sozinho. Em muitos cenários de relatório você desejará transformar uma planilha em um conjunto de slides sem perder a capacidade de ajustar caixas de texto posteriormente. Este guia mostra exatamente como **converter Excel para PowerPoint** usando Aspose.Cells e Aspose.Slides, além de abordar como **exportar a planilha como imagem** e, finalmente, **salvar a apresentação como PPTX**. + +Vamos percorrer cada linha de código, explicar *por que* cada configuração importa e até discutir o que fazer se sua pasta de trabalho contiver gráficos complexos que você prefira exportar como imagem. Ao final, você terá um aplicativo console C# pronto‑para‑executar que recebe `ShapesDemo.xlsx` e gera `Result.pptx` – tudo com caixas de texto editáveis e imagens nítidas. + +## O que você precisará + +- .NET 6.0 ou posterior (a API funciona também com .NET Framework, mas .NET 6 é o ponto ideal). +- Pacotes NuGet **Aspose.Cells** e **Aspose.Slides** (licenças de avaliação gratuitas funcionam para testes). +- Um conhecimento básico da sintaxe C# – se você consegue escrever um `Console.WriteLine`, está pronto para prosseguir. + +Sem interop COM adicional, sem Office instalado no servidor e sem copiar‑colar manual de imagens. Tudo é tratado programaticamente. + +--- + +## Criar PowerPoint a partir do Excel – Carregar a Pasta de Trabalho e Definir Opções de Exportação + +A primeira coisa que fazemos é abrir o arquivo Excel e informar ao Aspose.Cells como queremos que a planilha seja renderizada. O objeto `ImageOrPrintOptions` é onde a mágica acontece: habilitamos `ExportShapes` e `ExportEditableTextBoxes` para que quaisquer formas (incluindo gráficos) se tornem parte do slide **e** permaneçam editáveis após a conversão. + +```csharp +using Aspose.Cells; +using Aspose.Slides; + +// 1️⃣ Load the Excel workbook +string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; +Workbook workbook = new Workbook(excelPath); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first sheet + +// 2️⃣ Configure image export – keep shapes editable +ImageOrPrintOptions imageOptions = new ImageOrPrintOptions +{ + OnePagePerSheet = true, // Export the whole sheet as one slide + ExportShapes = true, // Include shapes (charts, drawings) + ExportEditableTextBoxes = true // Make text boxes editable in PPTX +}; +``` + +**Por que essas flags?** +- `OnePagePerSheet` impede que a planilha seja dividida em vários slides – você obtém uma única imagem em tamanho completo. +- `ExportShapes` instrui o Aspose.Cells a rasterizar gráficos *e* formas vetoriais, preservando sua aparência. +- `ExportEditableTextBoxes` é o ingrediente secreto que permite dar um duplo clique em uma caixa de texto no PowerPoint e editar o texto sem abrir o Excel novamente. + +> **Dica profissional:** Se você precisar apenas de uma imagem estática de um gráfico, defina `ExportShapes = false` e use o método `ExportExcelChartAsPicture` mais tarde (veja a seção final). + +## Converter Excel para PowerPoint – Gerar Imagem a partir da Planilha + +Com as opções prontas, agora transformamos a planilha em um `System.Drawing.Image`. O `WorksheetToImageConverter` faz o trabalho pesado, aplicando as configurações que acabamos de definir. + +```csharp +// 3️⃣ Convert the worksheet to an image using the options above +WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); +System.Drawing.Image sheetImage = converter.ConvertToImage(0, imageOptions); +``` + +O argumento `0` indica a primeira página (temos apenas uma por causa do `OnePagePerSheet`). O `sheetImage` resultante mantém o DPI original, então seu slide não ficará pixelado mesmo em telas de alta resolução. + +## Salvar Apresentação como PPTX – Inserir Imagem em um Slide + +Agora criamos um novo arquivo PowerPoint, adicionamos um slide e inserimos o bitmap nele. O Aspose.Slides trata a imagem como uma forma de *quadro de imagem*, que você pode redimensionar ou mover posteriormente como qualquer objeto nativo do PowerPoint. + +```csharp +// 4️⃣ Create a new PowerPoint presentation +Presentation presentation = new Presentation(); +ISlide slide = presentation.Slides[0]; // The default blank slide + +// Add the Excel‑derived image as a picture frame +slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, // Simple rectangle container + 0, 0, // Top‑left corner (0,0) + sheetImage.Width, // Width of the picture + sheetImage.Height, // Height of the picture + sheetImage); // The bitmap we generated +``` + +> **E se a imagem for maior que o tamanho do slide?** +> O PowerPoint recortará automaticamente tudo que exceder as dimensões do slide. Uma solução rápida é escalar a imagem antes de inseri‑la: + +```csharp +float scale = Math.Min(presentation.SlideSize.Size.Width / (float)sheetImage.Width, + presentation.SlideSize.Size.Height / (float)sheetImage.Height); +int newWidth = (int)(sheetImage.Width * scale); +int newHeight = (int)(sheetImage.Height * scale); +``` + +Você pode então passar `newWidth` e `newHeight` para `AddPictureFrame`. + +## Exportar Planilha como Imagem – Salvar o Arquivo PPTX + +Finalmente persistimos a apresentação no disco. A flag `SaveFormat.Pptx` garante o formato OpenXML moderno, que funciona em todas as versões recentes do PowerPoint. + +```csharp +// 5️⃣ Save the presentation as a PPTX file +string pptxPath = "YOUR_DIRECTORY/Result.pptx"; +presentation.Save(pptxPath, SaveFormat.Pptx); +``` + +Ao abrir `Result.pptx` você verá um único slide que parece exatamente com sua planilha Excel, mas ainda pode clicar em qualquer caixa de texto e editar seu conteúdo diretamente no PowerPoint. + +## Exportar Gráfico do Excel como Imagem – Quando Imagens Rasterizadas São Preferidas + +Às vezes você não precisa de formas editáveis; um PNG de alta qualidade de um gráfico basta. O Aspose.Cells pode exportar um gráfico específico para uma imagem sem converter a planilha inteira: + +```csharp +// Example: Export the first chart on the sheet as a PNG +int chartIndex = 0; // Adjust if you have multiple charts +Chart chart = worksheet.Charts[chartIndex]; +ImageOrPrintOptions chartOptions = new ImageOrPrintOptions +{ + ImageFormat = ImageFormat.Png, + OnePagePerSheet = false +}; +chart.ToImage("chart.png", chartOptions); +``` + +Você pode então incorporar `chart.png` em um slide da mesma forma que adicionamos `sheetImage`. Essa abordagem reduz o tamanho do arquivo PPTX e é útil quando os dados ao redor não são necessários no slide. + +## Armadilhas Comuns & Como Evitá‑las + +| Problema | Por que acontece | Solução | +|----------|------------------|---------| +| **Texto parece borrado** | Exportado com DPI baixo (padrão 96). | Defina `imageOptions.Dpi = 300;` antes da conversão. | +| **Formas desaparecem** | `ExportShapes` deixado como `false`. | Garanta `ExportShapes = true` quando precisar de gráficos editáveis. | +| **Descompasso de tamanho do slide** | Imagem maior que as dimensões do slide. | Escale a imagem (veja o trecho de código) ou altere o tamanho do slide via `presentation.SlideSize`. | +| **Exceção de licença** | Usando versão de avaliação sem ativação adequada. | Chame `License license = new License(); license.SetLicense("Aspose.Total.lic");` no início do `Main`. | + +## Exemplo Completo Funcional (Pronto para Copiar‑Colar) + +Abaixo está o programa completo, pronto para ser inserido em um novo projeto console. Substitua `YOUR_DIRECTORY` pela pasta que contém seu arquivo Excel. + +```csharp +using System; +using Aspose.Cells; +using Aspose.Slides; +using System.Drawing; + +namespace ExcelToPowerPointDemo +{ + class Program + { + static void Main(string[] args) + { + // ----------------------------------------------------------------- + // 1️⃣ Load the Excel workbook + // ----------------------------------------------------------------- + string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; + Workbook workbook = new Workbook(excelPath); + Worksheet worksheet = workbook.Worksheets[0]; + + // ----------------------------------------------------------------- + // 2️⃣ Set up export options – keep shapes editable + // ----------------------------------------------------------------- + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + OnePagePerSheet = true, + ExportShapes = true, + ExportEditableTextBoxes = true, + Dpi = 300 // High‑resolution output + }; + + // ----------------------------------------------------------------- + // 3️⃣ Convert worksheet to an image + // ----------------------------------------------------------------- + WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); + Image sheetImage = converter.ConvertToImage(0, imageOptions); + + // ----------------------------------------------------------------- + // 4️⃣ Create PowerPoint and add the image as a slide + // ----------------------------------------------------------------- + Presentation presentation = new Presentation(); + ISlide slide = presentation.Slides[0]; + slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, + 0, 0, + sheetImage.Width, + sheetImage.Height, + sheetImage); + + // ----------------------------------------------------------------- + // 5️⃣ Save the PPTX file + // ----------------------------------------------------------------- + string pptxPath = "YOUR_DIRECTORY/Result.pptx"; + presentation.Save(pptxPath, SaveFormat.Pptx); + + Console.WriteLine("✅ PowerPoint created successfully at: " + pptxPath); + } + } +} +``` + +**Saída esperada:** +Ao executar o programa ele imprime `✅ PowerPoint created successfully at: YOUR_DIRECTORY/Result.pptx`. Abrindo o PPTX você verá um único slide que espelha a planilha Excel original, com caixas de texto editáveis. + +## Recapitulação & Próximos Passos + +Agora você sabe como **criar PowerPoint a partir do Excel** usando as poderosas APIs da Aspose, como **exportar a planilha como imagem**, e como **salvar a apresentação como PPTX** preservando a editabilidade. O mesmo padrão funciona para pastas de trabalho com várias planilhas — basta percorrer `workbook.Worksheets` e adicionar um novo slide para cada uma. + +**O que explorar a seguir?** + +- **Conversão em lote:** Percorra uma pasta de arquivos Excel e gere um conjunto de slides por arquivo. +- **Layouts dinâmicos:** Use `slide.LayoutSlide` para aplicar modelos PowerPoint pré‑designados. +- **Exportação apenas de gráfico:** Combine o trecho “Exportar gráfico do Excel como imagem” com marcadores de posição de slide para um deck mais enxuto. +- **Estilização avançada:** Aplique fundos de slide personalizados, transições ou animações via Aspose.Slides. + +Sinta‑se à vontade para experimentar — altere o DPI, troque `ShapeType.Ellipse` por um quadro de imagem circular, ou até mesmo incorpore múltiplas imagens por slide. O céu é o limite quando você tem controle programático sobre + +{{< /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/portuguese/net/document-properties/_index.md b/cells/portuguese/net/document-properties/_index.md index 7e5d8f7b57..ccfe7cbd79 100644 --- a/cells/portuguese/net/document-properties/_index.md +++ b/cells/portuguese/net/document-properties/_index.md @@ -17,7 +17,7 @@ ## Introdução -As propriedades do documento no Excel funcionam como metadados sobre o seu arquivo. Imagine: cada arquivo do Excel tem seu próprio cartão de identidade que contém informações cruciais, como título, autor e palavras-chave. Ao usar o Aspose.Cells para .NET, acessar e gerenciar essas propriedades se torna muito fácil. Lembre-se: essas propriedades não só ajudam a manter seus arquivos organizados, como também podem melhorar a capacidade de pesquisa dos seus documentos. Curioso para saber como? Vamos aos tutoriais! +As propriedades do documento no Excel funcionam como metadados sobre o seu arquivo. Imagine: cada arquivo do Excel tem seu próprio cartão de identidade que contém informações cruciais, como título, autor e palavras‑chave. Ao usar o Aspose.Cells para .NET, acessar e gerenciar essas propriedades se torna muito fácil. Lembre-se: essas propriedades não só ajudam a manter seus arquivos organizados, como também podem melhorar a capacidade de pesquisa dos seus documentos. Curioso para saber como? Vamos aos tutoriais! ## Acessando Propriedades do Documento Primeiro, vamos falar sobre como acessar propriedades de documentos no .NET. Este é o seu ponto de partida. Imagine querer saber quem é o autor de uma planilha específica — usando Aspose.Cells, você pode obter essas informações rapidamente. [Acessando Propriedades de Documentos no .NET](./accessing-document-properties/) tutorial é o seu guia prático, oferecendo um passo a passo intuitivo para encontrar essas preciosidades escondidas em seus arquivos. Você aprenderá a recuperar propriedades como a data de criação e a data da última modificação, e acredite, é mais simples do que uma manhã de domingo! @@ -35,6 +35,8 @@ Aprenda a acessar propriedades de documentos no Excel usando o Aspose.Cells para Aprenda a acessar as propriedades de documentos no Excel usando o Aspose.Cells para .NET com nosso guia passo a passo. Gerencie suas planilhas com eficiência. ### [Adicionando propriedades de documento no .NET](./adding-document-properties/) Aprenda como adicionar propriedades de documento no Excel usando o Aspose.Cells para .NET com este guia passo a passo detalhado. +### [Como salvar XLSB com propriedades personalizadas em C# – Guia passo a passo](./how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/) +Aprenda a salvar arquivos XLSB com propriedades personalizadas usando Aspose.Cells para .NET em C# com este guia passo a passo. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/portuguese/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md b/cells/portuguese/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md new file mode 100644 index 0000000000..b0c637ffd5 --- /dev/null +++ b/cells/portuguese/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md @@ -0,0 +1,232 @@ +--- +category: general +date: 2026-03-30 +description: Aprenda como salvar XLSB em C# enquanto adiciona uma propriedade personalizada, + lê‑a de volta e domina a gravação de uma pasta de trabalho como XLSB usando Aspose.Cells. + Código completo incluído. +draft: false +keywords: +- how to save xlsb +- add custom property +- how to add property +- how to read property +- save workbook as xlsb +language: pt +og_description: Como salvar XLSB em C#? Este tutorial mostra como adicionar uma propriedade + personalizada, lê‑la de volta e salvar a pasta de trabalho como XLSB com Aspose.Cells. +og_title: Como salvar XLSB com propriedades personalizadas em C# – Guia completo +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Como salvar XLSB com propriedades personalizadas em C# – Guia passo a passo +url: /pt/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Como salvar XLSB com propriedades personalizadas em C# – Guia passo a passo + +Já se perguntou **como salvar XLSB** mantendo metadados extras anexados a uma planilha? Você não está sozinho. Em muitos cenários corporativos você precisa de um arquivo Excel binário que ainda carregue seus próprios pares chave/valor — pense em um ID de contrato, uma bandeira de processamento ou uma etiqueta de versão. + +A boa notícia é que o Aspose.Cells torna isso muito fácil. Neste guia você verá exatamente como adicionar uma propriedade personalizada, persistí‑la e depois lê‑la, tudo enquanto **salva a pasta de trabalho como XLSB**. Sem referências vagas, apenas um exemplo completo e executável que você pode inserir em seu projeto hoje. + +## O que você levará consigo + +- Um novo arquivo `.xlsb` criado do zero. +- A capacidade de **adicionar propriedade personalizada** a uma planilha. +- Código que demonstra **como ler a propriedade** após o arquivo ser recarregado. +- Dicas sobre armadilhas que você pode encontrar ao **salvar a pasta de trabalho como XLSB**. + +> **Pré‑requisitos:** .NET 6+ (ou .NET Framework 4.6+), Visual Studio (ou qualquer IDE C#), e a biblioteca Aspose.Cells para .NET instalada via NuGet. Nada mais. + +--- + +## Etapa 1: Configurar o Projeto e Criar uma Nova Pasta de Trabalho + +Primeiro de tudo — vamos obter um objeto de pasta de trabalho limpo. + +```csharp +using Aspose.Cells; +using System; + +// Initialize a new workbook; this will be an in‑memory Excel file. +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0) – it’s created automatically. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Por que isso importa:* `Workbook` é o ponto de entrada para cada operação no Aspose.Cells. Ao começar com uma instância totalmente nova, você evita qualquer estado oculto que poderia corromper seus metadados personalizados mais tarde. + +--- + +## Etapa 2: **Adicionar Propriedade Personalizada** à Planilha + +Agora vamos anexar um par chave/valor que vive apenas nesta planilha. + +```csharp +// Add a user‑defined property called "MyProperty" with the value "CustomValue". +worksheet.CustomProperties.Add("MyProperty", "CustomValue"); +``` + +> **Dica profissional:** Nomes de propriedades diferenciam maiúsculas de minúsculas. Se mais tarde você tentar buscar `"myproperty"` receberá uma `KeyNotFoundException`. Mantenha uma convenção de nomenclatura — camelCase ou PascalCase — desde o início. + +--- + +## Etapa 3: **Salvar Pasta de Trabalho como XLSB** – Persistindo a Propriedade + +A mágica acontece quando você grava a pasta de trabalho no formato binário XLSB. + +```csharp +// Define the output path. Adjust the folder to something writable on your machine. +string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + +// Save the workbook; the custom property travels with the file. +workbook.Save(outputPath, SaveFormat.Xlsb); +``` + +*O que você está realmente fazendo:* O enum `SaveFormat.Xlsb` indica ao Aspose.Cells que ele deve gerar um arquivo Excel binário (mais rápido de abrir, menor no disco). Todas as propriedades personalizadas ao nível da planilha são serializadas automaticamente — sem etapas extras necessárias. + +--- + +## Etapa 4: Recarregar o Arquivo e **Como Ler a Propriedade** + +Vamos provar que a propriedade sobreviveu à ida e volta. + +```csharp +// Load the just‑saved XLSB file back into memory. +Workbook reloadedWorkbook = new Workbook(outputPath); + +// Access the same worksheet (index 0) and fetch the property value. +string customValue = reloadedWorkbook.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); +``` + +Se tudo correu bem, `customValue` agora contém `"CustomValue"`. + +--- + +## Etapa 5: Verificar o Resultado – Saída Rápida no Console + +Uma pequena verificação de sanidade ajuda durante o desenvolvimento. + +```csharp +Console.WriteLine($"Custom property value: {customValue}"); +``` + +Running the program should print: + +``` +Custom property value: CustomValue +``` + +Ver essa linha significa que você dominou com sucesso **como salvar XLSB**, **adicionar propriedade personalizada** e **como ler a propriedade** — tudo em um fluxo organizado. + +--- + +## Exemplo Completo Funcional (Pronto para Copiar‑Colar) + +Abaixo está o programa completo. Cole-o em um novo Console App, pressione **F5** e observe o console confirmar o valor da propriedade. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // 1️⃣ Create a new workbook and get its first sheet + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // 2️⃣ Add a custom property (key/value) to the sheet + // ------------------------------------------------- + worksheet.CustomProperties.Add("MyProperty", "CustomValue"); + + // ------------------------------------------------- + // 3️⃣ Save the workbook as XLSB – the property is kept + // ------------------------------------------------- + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(outputPath, SaveFormat.Xlsb); + + // ------------------------------------------------- + // 4️⃣ Reload the saved file to demonstrate persistence + // ------------------------------------------------- + Workbook reloaded = new Workbook(outputPath); + + // ------------------------------------------------- + // 5️⃣ Retrieve the custom property's value + // ------------------------------------------------- + string customValue = reloaded.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); + + // ------------------------------------------------- + // 6️⃣ Display the retrieved value (optional) + // ------------------------------------------------- + Console.WriteLine($"Custom property value: {customValue}"); + } +} +``` + +> **Lembre‑se:** Altere `outputPath` para uma pasta na qual você tenha permissão de escrita. Se estiver em Linux/macOS, use um caminho como `"/tmp/WithCustomProp.xlsb"`. + +--- + +## Perguntas Frequentes & Casos Limítrofes + +### E se a propriedade já existir? +Chamar `Add` com uma chave existente lança uma `ArgumentException`. Use `ContainsKey` ou envolva a chamada em um `try/catch` se não tiver certeza. + +```csharp +if (!worksheet.CustomProperties.ContainsKey("MyProperty")) +{ + worksheet.CustomProperties.Add("MyProperty", "AnotherValue"); +} +``` + +### Posso armazenar valores que não sejam string? +Com certeza. A propriedade `Value` aceita qualquer `object`. Para números, datas ou booleanos, basta passar o tipo apropriado — o Aspose.Cells cuidará da conversão quando você ler de volta. + +### A propriedade sobrevive quando eu converto para XLSX? +Sim. As propriedades personalizadas fazem parte da representação XML da planilha, portanto persistem nos formatos XLSX, XLS e XLSB. + +### Como **adicionar propriedade** a várias planilhas? +Percorra a coleção `Worksheets` e aplique a mesma chamada `CustomProperties.Add` a cada planilha que precisar. + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + ws.CustomProperties.Add("ExportedBy", "MyApp"); +} +``` + +### Dica de desempenho ao **salvar pasta de trabalho como XLSB** em lote +Se você estiver gerando centenas de arquivos, reutilize a mesma instância `Workbook` e chame `Clear` após cada salvamento para liberar memória. Também, defina `Workbook.Settings.CalculateFormulaOnOpen = false` se não precisar que as fórmulas sejam avaliadas ao abrir. + +--- + +## Conclusão + +Agora você sabe **como salvar XLSB** em C# enquanto incorpora e posteriormente recupera uma propriedade personalizada usando o Aspose.Cells. A solução completa — criar a pasta de trabalho, adicionar uma propriedade, persistí‑la com **salvar pasta de trabalho como XLSB**, recarregar e ler o valor — cabe em menos de 50 linhas de código. + +A partir daqui você pode explorar: + +- Adicionar múltiplas propriedades personalizadas por planilha. +- Armazenar objetos complexos via strings JSON. +- Criptografar o arquivo XLSB para segurança extra. + +Experimente essas ideias e você rapidamente se tornará a pessoa de referência para automação Excel em sua equipe. Tem dúvidas ou um cenário complicado? Deixe um comentário abaixo e feliz codificação! + +![Como salvar XLSB com propriedade personalizada](/images/how-to-save-xlsb.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/portuguese/net/excel-copy-worksheet/_index.md b/cells/portuguese/net/excel-copy-worksheet/_index.md index 2f4e5b5bd2..6454d59f5e 100644 --- a/cells/portuguese/net/excel-copy-worksheet/_index.md +++ b/cells/portuguese/net/excel-copy-worksheet/_index.md @@ -42,6 +42,7 @@ Aspose.Cells para .NET oferece funcionalidades poderosas para manipular arquivos | [Planilha de Cópia do Excel](./excel-copy-worksheet/) | Aprenda a copiar uma planilha do Excel usando o Aspose.Cells para .NET com este guia passo a passo fácil de seguir. Ideal para desenvolvedores .NET que buscam automatizar tarefas do Excel. | | [Copiar planilhas do Excel entre pastas de trabalho](./excel-copy-worksheets-between-workbooks/) | Aprenda a copiar planilhas entre pastas de trabalho do Excel usando o Aspose.Cells para .NET. Um guia passo a passo com exemplos de código para otimizar o gerenciamento de planilhas. | | [Planilha de movimentação do Excel](./excel-move-worksheet/) | Aprenda a mover planilhas no Excel usando o Aspose.Cells para .NET em nosso guia passo a passo. Domine a arte da programação em Excel. | +| [Como Copiar Planilha em C# com Aspose.Cells – Guia Completo](./how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/) | Aprenda passo a passo a copiar planilhas em C# usando Aspose.Cells, cobrindo opções avançadas e melhores práticas. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/portuguese/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md b/cells/portuguese/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md new file mode 100644 index 0000000000..0798519042 --- /dev/null +++ b/cells/portuguese/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md @@ -0,0 +1,268 @@ +--- +category: general +date: 2026-03-30 +description: Como copiar planilha em C# usando Aspose.Cells – guia passo a passo cobrindo + cópia de intervalo de células, cópia de colunas entre planilhas, cópia de tabela + dinâmica da planilha e código para adicionar nova planilha. +draft: false +keywords: +- how to copy worksheet +- copy cell range +- copy columns between sheets +- copy worksheet pivot table +- add new worksheet code +language: pt +og_description: Aprenda como copiar planilha em C# com Aspose.Cells. Este guia mostra + como copiar intervalo de células, preservar tabelas dinâmicas, copiar colunas entre + planilhas e adicionar código para nova planilha. +og_title: Como Copiar Planilha no C# – Tutorial Completo do Aspose.Cells +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Como copiar planilha no C# com Aspose.Cells – Guia completo +url: /pt/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Como Copiar Planilha em C# com Aspose.Cells – Guia Completo + +Já se perguntou **como copiar worksheet** em C# sem perder nenhuma tabela dinâmica ou fórmula? Você não está sozinho — muitos desenvolvedores encontram dificuldades quando precisam duplicar uma planilha mantendo todos os recursos intactos. Neste tutorial, vamos percorrer uma solução prática, de ponta a ponta, que não só copia os dados, mas também preserva a **copy worksheet pivot table**, lida com **copy cell range**, e mostra o **add new worksheet code** que você precisará. + +Cobriremos tudo, desde o carregamento da pasta de trabalho de origem até a gravação do arquivo de destino, para que você possa copy columns between sheets, preservar objetos e manter seu código limpo. Sem referências vagas, apenas um exemplo completo e executável que você pode inserir em seu projeto hoje. + +## O que este tutorial cobre + +- Carregar um arquivo Excel existente com Aspose.Cells +- Usar **add new worksheet code** para criar uma planilha de destino +- Definir um **copy cell range** que inclui uma tabela dinâmica +- Configurar **CopyOptions** para manter gráficos, fórmulas e tabelas dinâmicas intactas +- Executar **copy columns between sheets** com precisão linha a linha +- Salvar o resultado e verificar se a planilha foi copiada corretamente + +Ao final deste guia, você será capaz de responder à pergunta “how to copy worksheet” com confiança, seja automatizando relatórios ou construindo uma interface baseada em planilhas. + +## Como copiar worksheet – Visão geral + +Antes de mergulharmos no código, vamos delinear o fluxo de alto nível. Pense nisso como uma receita: + +1. **Load** a pasta de trabalho de origem (`Source.xlsx`). +2. **Add** uma nova planilha para conter a cópia (`add new worksheet code`). +3. **Define** a área que você deseja duplicar (`copy cell range`). +4. **Configure** as opções de cópia para que a tabela dinâmica sobreviva (`copy worksheet pivot table`). +5. **Copy** linhas e colunas (`copy columns between sheets`). +6. **Save** a nova pasta de trabalho (`Destination.xlsx`). + +É isso — seis passos, sem mágica. Cada passo é explicado abaixo com trechos de código e o raciocínio por trás dele. + +## Etapa 1 – Carregar a pasta de trabalho de origem + +Primeiro de tudo: você precisa de uma instância `Workbook` apontando para o arquivo que deseja duplicar. Esta etapa é essencial porque o Aspose.Cells trabalha diretamente com o sistema de arquivos, não com a interface do Office. + +```csharp +using Aspose.Cells; + +// Path to the original file +string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; +string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + +// Load the workbook – this is the starting point for how to copy worksheet +Workbook workbook = new Workbook(sourcePath); +``` + +*Por que isso importa:* Carregar o arquivo cria uma representação em memória de cada planilha, célula e objeto. Sem isso, não há nada para copiar, e qualquer tentativa de `add new worksheet code` mais tarde falharia porque os dados de origem não estão presentes. + +## Etapa 2 – Adicionar uma nova planilha (add new worksheet code) + +Agora precisamos de um local para colar os dados copiados. É aqui que o **add new worksheet code** brilha. Você pode nomear a planilha como quiser; aqui a chamamos de `"Copy"`. + +```csharp +// Grab the first worksheet (the one we want to copy) +Worksheet sourceSheet = workbook.Worksheets[0]; + +// Add a fresh worksheet to receive the copy +Worksheet copySheet = workbook.Worksheets.Add("Copy"); +``` + +*Dica de especialista:* Se você planeja copiar várias planilhas, chame `Worksheets.Add` dentro de um loop e dê a cada planilha um nome exclusivo. Dessa forma, você evita colisões de nomes e mantém sua pasta de trabalho organizada. + +## Etapa 3 – Definir o intervalo de células a copiar + +Um **copy cell range** informa ao Aspose.Cells exatamente quais linhas e colunas duplicar. Em muitos cenários reais, o intervalo inclui uma tabela dinâmica, portanto devemos ser precisos. + +```csharp +// Define the area that contains the pivot table (A1:G20) +CellArea sourceRange = new CellArea +{ + StartRow = 0, // Row 1 (zero‑based) + StartColumn = 0, // Column A + EndRow = 19, // Row 20 + EndColumn = 6 // Column G +}; + +// Destination range – we start at the same top‑left corner +CellArea destinationRange = new CellArea +{ + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 +}; +``` + +*Por que precisamos disso:* Ao declarar explicitamente o intervalo, você evita copiar a planilha inteira (o que pode ser desperdiçador) e garante que a tabela dinâmica esteja dentro da área copiada. Este é o cerne de **how to copy worksheet** quando você precisa apenas de parte da planilha. + +## Etapa 4 – Definir opções de cópia (preservar copy worksheet pivot table) + +O Aspose.Cells oferece um objeto `CopyOptions` que controla o que é colado. Para manter a tabela dinâmica, gráficos e fórmulas, definimos `PasteType.All` e habilitamos `PasteSpecial`. + +```csharp +CopyOptions copyOptions = new CopyOptions +{ + PasteType = PasteType.All, // Copy everything: values, formats, objects + PasteSpecial = true // Enable special paste to retain pivot tables +}; +``` + +*Explicação:* `PasteType.All` é a opção mais inclusiva, enquanto `PasteSpecial` indica ao motor que trate objetos complexos — como tabelas dinâmicas — adequadamente. Pular esta etapa é uma armadilha comum; a planilha copiada perderia seus recursos interativos. + +## Etapa 5 – Copiar linhas e colunas (copy columns between sheets) + +Agora vem a parte pesada: mover realmente os dados. Usaremos `CopyRows` e `CopyColumns` para lidar com **copy columns between sheets**. Fazer ambos garante que células mescladas e larguras de coluna sejam preservadas. + +```csharp +// Copy rows from the source to the destination sheet +sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + +// Copy columns from the source to the destination sheet +sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); +``` + +*O que está acontecendo:* `CopyRows` move os dados linha a linha, enquanto `CopyColumns` faz o mesmo coluna a coluna. Executar ambos garante que todo o bloco retangular seja duplicado, o que é essencial quando você precisa **copy columns between sheets** que têm larguras de coluna diferentes ou colunas ocultas. + +## Etapa 6 – Salvar a pasta de trabalho + +Finalmente, escreva as alterações de volta ao disco. Esta etapa completa o processo de **how to copy worksheet**. + +```csharp +// Save the workbook with the newly copied sheet +workbook.Save(destinationPath); +``` + +*Dica de verificação:* Abra `Destination.xlsx` e verifique se a planilha `"Copy"` está idêntica à original, as tabelas dinâmicas funcionam e as larguras das colunas correspondem. Se algo parecer errado, revise as configurações de `CopyOptions`. + +## Casos de borda e variações comuns + +### Copiando várias planilhas + +Se você precisar duplicar várias planilhas, envolva a lógica acima em um loop `foreach`: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + Worksheet newWs = workbook.Worksheets.Add(ws.Name + "_Copy"); + // Re‑use sourceRange/destinationRange or calculate per sheet + // Then call CopyRows/CopyColumns as shown earlier +} +``` + +### Preservando fórmulas entre diferentes pastas de trabalho + +Quando as pastas de trabalho de origem e destino têm intervalos nomeados diferentes, defina `copyOptions` para `PasteType.Formulas` além de `All`: + +```csharp +copyOptions.PasteType = PasteType.All | PasteType.Formulas; +``` + +### Grandes intervalos e desempenho + +Para conjuntos de dados massivos (centenas de milhares de linhas), considere usar apenas `CopyRows` e pular `CopyColumns` se as larguras de coluna não forem críticas. Isso pode economizar alguns segundos. + +## Exemplo completo em funcionamento + +Abaixo está o programa completo, pronto‑para‑executar, que incorpora tudo o que discutimos. Cole-o em um aplicativo de console, ajuste os caminhos dos arquivos e pressione **F5**. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // ---------- Step 1: Load the source workbook ---------- + string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; + string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + Workbook workbook = new Workbook(sourcePath); + + // ---------- Step 2: Add a new worksheet (add new worksheet code) ---------- + Worksheet sourceSheet = workbook.Worksheets[0]; + Worksheet copySheet = workbook.Worksheets.Add("Copy"); + + // ---------- Step 3: Define the copy cell range ---------- + CellArea sourceRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + CellArea destinationRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + + // ---------- Step 4: Set copy options (preserve copy worksheet pivot table) ---------- + CopyOptions copyOptions = new CopyOptions + { + PasteType = PasteType.All, + PasteSpecial = true + }; + + // ---------- Step 5: Copy rows and columns (copy columns between sheets) ---------- + sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + + sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); + + // ---------- Step 6: Save the workbook ---------- + workbook.Save(destinationPath); + } +} +``` + +**Resultado esperado:** Ao abrir `Destination.xlsx` aparece uma planilha chamada **Copy** que espelha a primeira planilha de `Source.xlsx` — incluindo quaisquer tabelas dinâmicas, formatação e larguras de coluna. O arquivo original permanece intacto. + +## Perguntas Frequentes + +**Q: Isso funciona com arquivos .xlsx criados pelo Excel 2019?** +A: Absolutamente. O Aspose.Cells suporta todos os formatos modernos do Excel, portanto o mesmo código funciona para arquivos `.xlsx`, `.xlsm` e até mesmo os mais antigos `.xls`. + +{{< /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/portuguese/net/excel-custom-number-date-formatting/_index.md b/cells/portuguese/net/excel-custom-number-date-formatting/_index.md index 2eef2a2012..bc75499ab1 100644 --- a/cells/portuguese/net/excel-custom-number-date-formatting/_index.md +++ b/cells/portuguese/net/excel-custom-number-date-formatting/_index.md @@ -36,6 +36,10 @@ Este tutorial irá equipá-lo com as habilidades necessárias para importar seus Aprenda como verificar valores de células do Excel em relação a formatos numéricos personalizados usando o Aspose.Cells para .NET com este tutorial passo a passo. ### [Especificar campos de fórmula ao importar dados para uma planilha do Excel](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) Aprenda como importar dados para planilhas do Excel com campos de fórmula especificados usando o Aspose.Cells para .NET neste tutorial detalhado. +### [Formatar número com separador em C# – Guia completo do Aspose.Cells](./format-number-with-separator-in-c-complete-aspose-cells-guid/) +Aprenda a formatar números com separadores de milhar em C# usando o Aspose.Cells, com exemplos completos passo a passo. +### [Formatar data ISO a partir do Excel – Guia completo em C#](./format-date-iso-from-excel-complete-c-guide/) +Aprenda a converter datas do Excel para o formato ISO usando C# com o Aspose.Cells, passo a passo. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/portuguese/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md b/cells/portuguese/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..acfe9fc7e4 --- /dev/null +++ b/cells/portuguese/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md @@ -0,0 +1,218 @@ +--- +category: general +date: 2026-03-30 +description: Aprenda como formatar data ISO enquanto lê valores de data/hora do Excel + e extrai dados de data/hora do Excel usando Aspose.Cells em C#. +draft: false +keywords: +- format date iso +- read excel datetime +- extract datetime excel +- Aspose.Cells date parsing +- Japanese era dates +language: pt +og_description: formate data ISO a partir de dados do Excel usando Aspose.Cells. Este + guia mostra como ler data/hora do Excel, extrair valores de data/hora do Excel e + gerar datas ISO. +og_title: Formatar data ISO do Excel – Tutorial C# passo a passo +tags: +- C# +- Excel +- DateTime +- Aspose.Cells +title: Formatar data ISO a partir do Excel – Guia completo de C# +url: /pt/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# formatar data iso a partir do Excel – Guia Completo em C# + +Já precisou **formatar data iso** ao extrair datas de uma planilha Excel? Talvez você esteja lidando com datas de era japonesa, ou simplesmente queira uma string limpa `yyyy‑MM‑dd` para um payload de API. Neste tutorial você verá exatamente como **ler datetime do Excel** nas células, **extrair datetime Excel** valores, e convertê-los para o formato ISO‑8601 — sem adivinhações. + +Vamos percorrer um exemplo real que usa Aspose.Cells, explica por que cada linha importa e mostra a saída final que você pode copiar‑colar em seu projeto. Ao final, você será capaz de lidar com strings de era incomuns como “令和3年5月1日” e gerar uma data ISO padrão, pronta para bancos de dados, JSON ou onde precisar. + +## Pré-requisitos + +- .NET 6.0 ou posterior (o código funciona também com .NET Framework) +- Aspose.Cells para .NET (versão de avaliação gratuita ou licenciada) +- Familiaridade básica com C# e conceitos de Excel +- Visual Studio ou qualquer editor C# de sua preferência + +Nenhum pacote NuGet adicional é necessário além do Aspose.Cells, portanto a configuração é bastante simples. + +--- + +## Etapa 1: Criar um Workbook e Alvo a Primeira Planilha + +A primeira coisa que você faz é instanciar um novo objeto `Workbook`. Isso fornece uma representação em memória de um arquivo Excel, que você pode então manipular ou ler. + +```csharp +using Aspose.Cells; +using System.Globalization; + +// Step 1: Initialize a new workbook and grab the first worksheet +Workbook workbook = new Workbook(); // creates an empty .xlsx +Worksheet worksheet = workbook.Worksheets[0]; // the default sheet is "Sheet1" +``` + +*Por que isso importa:* +Criar o workbook programaticamente permite que você evite lidar com arquivos físicos durante os testes. Também garante que a referência da planilha esteja sempre válida — sem surpresas de referência nula mais tarde ao tentar **ler datetime do Excel** valores. + +--- + +## Etapa 2: Escrever uma String de Data de Era Japonesa em uma Célula + +Nosso objetivo é demonstrar a análise de uma data não gregoriana. Vamos colocar a string de era diretamente na célula **A1**. + +```csharp +// Step 2: Insert a Japanese era date string into cell A1 +worksheet.Cells["A1"].PutValue("令和3年5月1日"); +``` + +*Dica profissional:* Se você estiver extraindo dados de um workbook existente, você pularia a chamada `PutValue` e simplesmente referenciaria a célula que já contém a data. O importante é que a célula contém uma **string** que representa uma data no calendário lunissolar japonês. + +--- + +## Etapa 3: Configurar uma Cultura que Entende o Calendário Lunissolar Japonês + +A classe `CultureInfo` do .NET permite especificar como as datas devem ser interpretadas. Ao substituir o calendário gregoriano padrão por `JapaneseLunisolarCalendar`, você fornece ao analisador o contexto necessário. + +```csharp +// Step 3: Set up a culture using the Japanese lunisolar calendar +CultureInfo japaneseCulture = new CultureInfo("ja-JP"); +japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); +``` + +*Por que fazemos isso:* +Se você tentar analisar “令和3年5月1日” com a cultura padrão, o .NET lançará uma `FormatException`. Substituir pelo calendário lunissolar informa ao runtime exatamente como mapear “令和3年” (o 3º ano da era Reiwa) para o ano gregoriano 2021. + +--- + +## Etapa 4: Analisar o Valor da Célula como um `DateTime` Usando a Cultura Configurada + +Agora vem o coração da operação — transformar aquela string de era em um objeto `DateTime` adequado. Aspose.Cells fornece uma sobrecarga conveniente de `GetDateTime` que aceita um `CultureInfo`. + +```csharp +// Step 4: Retrieve the cell value as a DateTime, respecting the Japanese culture +DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); +``` + +*O que está acontecendo nos bastidores:* +`GetDateTime` lê a string bruta, aplica as regras de calendário da cultura fornecida e retorna um `DateTime` que representa o mesmo instante no calendário gregoriano. Este é o momento em que você **extrai datetime Excel** dados em uma forma que pode ser manipulada no .NET. + +--- + +## Etapa 5: Exibir a Data Analisada no Formato ISO 8601 + +Finalmente, formatamos o `DateTime` como uma string ISO — `yyyy‑MM‑dd` — que é universalmente aceita por APIs, bancos de dados e frameworks front‑end. + +```csharp +// Step 5: Print the date in ISO format (e.g., 2021-05-01) +Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // Output: 2021-05-01 +``` + +*Por que ISO?* +ISO 8601 elimina ambiguidades. “05/01/2021” pode ser 1º de maio ou 5 de janeiro dependendo da localidade. `2021-05-01` é cristalino, e é por isso que **formatamos data iso** em quase todos os cenários de integração. + +--- + +## Exemplo Completo Funcional + +Abaixo está o programa completo, pronto‑para‑executar. Copie-o para um projeto de aplicativo console, adicione a referência ao Aspose.Cells e pressione **F5**. + +```csharp +using Aspose.Cells; +using System; +using System.Globalization; + +class Program +{ + static void Main() + { + // 1️⃣ Create workbook and select the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("令和3年5月1日"); + + // 3️⃣ Set up Japanese lunisolar culture + CultureInfo japaneseCulture = new CultureInfo("ja-JP"); + japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); + + // 4️⃣ Parse the cell value as DateTime using the culture + DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); + + // 5️⃣ Output the date in ISO format + Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // 2021-05-01 + } +} +``` + +**Saída esperada** + +``` +2021-05-01 +``` + +Execute-o uma vez, e você verá a data formatada em ISO impressa no console. Esse é todo o pipeline de **ler datetime do Excel** até **formatar data iso**. + +--- + +## Lidando com Casos de Borda Comuns + +### 1. Células contendo números de data reais do Excel + +Às vezes o Excel armazena datas como números seriais (ex., `44204`). Nesse caso, você não precisa de uma cultura; basta chamar `GetDateTime()` sem parâmetros: + +```csharp +DateTime serialDate = worksheet.Cells["B2"].GetDateTime(); // B2 holds a numeric date +Console.WriteLine(serialDate.ToString("yyyy-MM-dd")); +``` + +### 2. Células vazias ou inválidas + +Se uma célula estiver vazia ou contiver uma string não analisável, `GetDateTime` lançará uma exceção. Envolva a chamada em um `try/catch` ou verifique `IsDateTime` primeiro: + +```csharp +if (worksheet.Cells["C3"].Type == CellValueType.IsDateTime) +{ + DateTime safeDate = worksheet.Cells["C3"].GetDateTime(); + Console.WriteLine(safeDate.ToString("yyyy-MM-dd")); +} +else +{ + Console.WriteLine("Cell C3 does not contain a valid date."); +} +``` + +### 3. Formatos de Era Diferentes + +Outras eras japonesas (Heisei, Showa) seguem o mesmo padrão. O mesmo `JapaneseLunisolarCalendar` as tratará automaticamente, portanto você não precisa de lógica extra — basta fornecer a string. + +--- + +## Dicas Profissionais & Armadilhas + +- **Performance:** Ao processar planilhas grandes, reutilize uma única instância de `CultureInfo` em vez de criar uma nova dentro de um loop. +- **Thread Safety:** Objetos `CultureInfo` são somente‑leitura após você definir o calendário, portanto são seguros para compartilhar entre threads. +- **Aspose.Cells Licensing:** Se você estiver usando a versão de avaliação gratuita, lembre‑se de que alguns recursos podem ser limitados após o período de avaliação expirar. A análise de datas mostrada aqui funciona bem tanto em modo de avaliação quanto licenciado. +- **Time Zones:** O `DateTime` que você obtém é **unspecified** (sem fuso horário). Se precisar de UTC, chame `DateTime.SpecifyKind(parsedDate, DateTimeKind.Utc)` ou converta usando `TimeZoneInfo`. + +--- + +## Conclusão + +Cobremos tudo o que você precisa para **formatar data iso** a partir de um workbook Excel usando C#. Começando de uma string de era japonesa bruta, nós **lemos datetime do Excel**, configuramos a cultura correta, **extraímos datetime Excel** dados e, finalmente, geramos uma string ISO‑8601 limpa. A abordagem funciona para qualquer representação de data que o Excel possa apresentar, seja um número serial, uma string específica de localidade ou um formato de era tradicional. + +Próximos passos? Experimente percorrer uma coluna inteira de datas, gravar os resultados ISO de volta em uma nova planilha, ou enviá‑los diretamente em um payload JSON para um serviço web. Se você estiver curioso sobre outros sistemas de calendário (Hebraico, Islâmico), Aspose.Cells e o `CultureInfo` do .NET tornam esses experimentos igualmente fáceis. + +Tem perguntas ou um formato de data complicado que não consegue decifrar? Deixe um comentário abaixo, e feliz codificação! + +{{< /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/portuguese/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md b/cells/portuguese/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md new file mode 100644 index 0000000000..fc66e16271 --- /dev/null +++ b/cells/portuguese/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md @@ -0,0 +1,251 @@ +--- +category: general +date: 2026-03-30 +description: Aprenda a formatar números com separador usando Aspose.Cells em C#. Inclui + definir formato numérico personalizado, adicionar separador de milhares, formatar + casas decimais e como formatar a célula. +draft: false +keywords: +- format number with separator +- set custom number format +- add thousands separator +- format decimal places +- how to format cell +language: pt +og_description: Formatar número com separador em C#. Este guia mostra como definir + formato numérico personalizado, adicionar separador de milhares, formatar casas + decimais e como formatar célula usando Aspose.Cells. +og_title: Formatar número com separador em C# – Tutorial Aspose.Cells +tags: +- C# +- Aspose.Cells +- Number Formatting +title: Formatar número com separador em C# – Guia completo do Aspose.Cells +url: /pt/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Formatar Número com Separador em C# – Guia Completo do Aspose.Cells + +Já precisou **formatar número com separador** em uma planilha, mas não sabia qual chamada de API usar? Você não está sozinho—os desenvolvedores constantemente lidam com separadores de milhar, casas decimais e padrões personalizados ao exportar dados. + +Boa notícia: o Aspose.Cells torna isso muito fácil. Neste tutorial, percorreremos um exemplo do mundo real que **define um formato numérico personalizado**, **adiciona um separador de milhar**, **formata casas decimais**, e mostra **como formatar célula** para saída como string. Ao final, você terá um trecho pronto‑para‑executar que pode inserir em qualquer projeto .NET. + +## O Que Este Guia Abrange + +* O pacote NuGet exato que você precisa e como instalá‑lo. +* Código passo a passo que cria uma workbook, grava um valor numérico e aplica um formato personalizado. +* Por que `ExportTableOptions.ExportAsString` é a forma preferida de obter um valor formatado. +* Armadilhas comuns—como esquecer de habilitar `ExportAsString` ou usar a máscara de formato errada. +* Como ajustar a máscara de formato se precisar de um número diferente de casas decimais ou de um estilo de separador diferente. + +Nenhum link de documentação externa é necessário; tudo que você precisa está aqui. Vamos mergulhar. + +--- + +## Pré‑requisitos + +| Requisito | Motivo | +|-------------|--------| +| .NET 6.0 ou superior | Aspose.Cells 23.10+ tem como alvo .NET Standard 2.0+, portanto .NET 6 é seguro e atual. | +| Visual Studio 2022 (ou qualquer IDE C#) | Facilita a depuração e o gerenciamento de pacotes. | +| Aspose.Cells for .NET NuGet package | Fornece as classes `Workbook`, `Worksheet` e `ExportTableOptions` que usaremos. | + +Você pode instalar o pacote via o Console do Gerenciador de Pacotes: + +```powershell +Install-Package Aspose.Cells +``` + +É isso—nenhum DLL extra, sem interop COM, apenas uma única referência NuGet. + +--- + +## Etapa 1: Inicializar uma Nova Workbook (Como formatar célula) + +A primeira coisa que fazemos é criar uma nova instância de `Workbook`. Pense nela como um arquivo Excel vazio pronto para receber dados. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Create a new workbook – this is where we’ll format the cell. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Por que isso importa:** `Workbook` é o ponto de entrada para todas as operações no Aspose.Cells. Ao obter a primeira planilha (`Worksheets[0]`) temos uma tela limpa sem precisar nomear uma planilha. + +--- + +## Etapa 2: Gravar um Valor Numérico na Célula Alvo + +Em seguida, inserimos um número bruto na célula **A1**. O valor ainda não está formatado—é apenas um double. + +```csharp + // Step 2: Insert a raw numeric value. + worksheet.Cells["A1"].PutValue(12345.6789); +``` + +> **Dica profissional:** Use `PutValue` em vez de `PutString` quando pretender aplicar formatação numérica posteriormente. Isso preserva o tipo de dado subjacente, permitindo cálculos compatíveis com Excel. + +--- + +## Etapa 3: Definir Formato Numérico Personalizado (Adicionar Separador de Milhares & Formatar Casas Decimais) + +Agora vem o coração do tutorial: definir uma máscara de formato que indica ao Aspose.Cells como exibir o número. A máscara `#,##0.00` faz três coisas: + +1. **`#,##0`** – adiciona um separador de milhares (vírgula por padrão). +2. **`.00`** – força exatamente duas casas decimais. + +Se precisar de um número diferente de casas decimais, basta mudar a quantidade de `0`s após o ponto decimal. + +```csharp + // Step 3: Configure the custom number format. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, // Return the value as a formatted string. + NumberFormat = "#,##0.00" // Add thousands separator and fix to 2 decimals. + }; +``` + +> **Por que usamos `ExportAsString`**: Por padrão, `ExportString` retorna o valor bruto. Definir `ExportAsString = true` força a API a aplicar a máscara `NumberFormat` antes de converter para texto. Isso é essencial quando você precisa da representação exata em string para relatórios, payloads JSON ou exibição na UI. + +--- + +## Etapa 4: Exportar o Texto Formatado (Como formatar célula) + +Com as opções prontas, chamamos `ExportString` na mesma célula. O método respeita a máscara que definimos e devolve uma string bem formatada. + +```csharp + // Step 4: Export the formatted value. + string formattedCellText = worksheet.Cells["A1"].ExportString(exportOptions); + + // Step 5: Show the result. + Console.WriteLine(formattedCellText); // Expected output: 12,345.68 + } +} +``` + +Executar o programa imprime **`12,345.68`** no console—exatamente o formato que solicitamos. + +> **Caso limite:** Se o número de origem tiver mais de duas casas decimais, a máscara o arredonda. Se precisar de truncamento em vez de arredondamento, será necessário pré‑processar o valor com `Math.Truncate` antes de chamar `PutValue`. + +--- + +## Etapa 5: Ajustando o Formato – Variações Comuns + +### 5.1 Alterar Precisão Decimal + +Quer três casas decimais? Basta substituir a máscara: + +```csharp +NumberFormat = "#,##0.000" // → 12,345.679 +``` + +### 5.2 Usar um Separador de Milhares Diferente + +Algumas localidades preferem um espaço ou um ponto. Você pode inserir o caractere diretamente: + +```csharp +NumberFormat = "# ##0.00" // Uses a non‑breaking space as separator. +``` + +Ou confiar nas configurações de cultura da workbook: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("de-DE"); +NumberFormat = "#.##0,00"; // German style: 12.345,68 +``` + +### 5.3 Prefixo ou Sufixo (Moeda, Percentual) + +Adicione um símbolo de dólar ou de percentual diretamente na máscara: + +```csharp +NumberFormat = "$#,##0.00"; // → $12,345.68 +NumberFormat = "0.00%"; // → 1,234,568.00% +``` + +> **Observação:** A máscara diferencia maiúsculas de minúsculas. `$` e `%` são símbolos literais; eles não afetam o valor numérico subjacente. + +--- + +## Etapa 6: Exemplo Completo Funcional (Pronto para Copiar‑Colar) + +Abaixo está o programa completo que você pode copiar para um novo aplicativo console. Ele inclui todas as etapas, comentários e a verificação da saída final. + +```csharp +using System; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write raw numeric value to A1. + worksheet.Cells["A1"].PutValue(12345.6789); + + // 3️⃣ Define custom format: thousands separator + two decimals. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + NumberFormat = "#,##0.00" + }; + + // 4️⃣ Export the formatted string. + string result = worksheet.Cells["A1"].ExportString(exportOptions); + + // 5️⃣ Display the outcome. + Console.WriteLine(result); // Output: 12,345.68 + + // Optional: keep console open. + Console.WriteLine("Press any key to exit..."); + Console.ReadKey(); + } +} +``` + +Execute o programa (`dotnet run` no terminal ou pressione F5 no Visual Studio) e você verá o número formatado impresso exatamente como mostrado. + +--- + +## Perguntas Frequentes (FAQ) + +**Q: Isso funciona com versões mais antigas do Excel?** +A: Sim. A máscara de formato segue a sintaxe nativa de formatação numérica do Excel, portanto qualquer versão que reconheça `#,##0.00` renderizará a mesma string. + +**Q: E se eu precisar formatar um intervalo de células?** +A: Percorra o intervalo desejado e aplique o mesmo `ExportTableOptions` a cada célula, ou defina a propriedade `Style.Custom` no intervalo e então chame `ExportString` em uma única célula. + +**Q: Posso exportar diretamente para CSV com esses formatos aplicados?** +A: Absolutamente. Use `Workbook.Save("output.csv", SaveFormat.CSV);` após definir o formato em cada célula. O Aspose.Cells respeita o `Style` da célula ao gerar o CSV. + +--- + +## Conclusão + +Acabamos de mostrar como **formatar número com separador** em C# usando Aspose.Cells, cobrindo tudo desde **definir formato numérico personalizado** até **adicionar separador de milhares**, **formatar casas decimais**, e o essencial **como formatar célula** para exportação como string. O código é totalmente autocontido, funciona com .NET 6+ e pode ser adaptado para qualquer localidade ou requisito de precisão. + +Em seguida, você pode explorar: + +* Aplicar a mesma técnica a datas e horas (`NumberFormat = "dd‑MMM‑yyyy"`). +* Automatizar exportações em massa onde cada coluna precisa de uma máscara diferente. +* Integrar as strings formatadas em relatórios PDF com Aspose.Words. + +Experimente isso, e você rapidamente se tornará a pessoa de referência para formatação de planilhas em sua equipe. Feliz codificação! (Imagem: ![Captura de tela mostrando número formatado com separador no Aspose.Cells](image-placeholder.png){alt="Número formatado com separador exibido na saída do 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/portuguese/net/excel-data-import-export/_index.md b/cells/portuguese/net/excel-data-import-export/_index.md index 47daa347d3..b85eaef147 100644 --- a/cells/portuguese/net/excel-data-import-export/_index.md +++ b/cells/portuguese/net/excel-data-import-export/_index.md @@ -32,6 +32,10 @@ seguir, outro desafio comum: inserir linhas de uma DataTable no Excel sem bagun Aprenda a importar dados para o Excel com formatação DB Num personalizada usando o Aspose.Cells para .NET neste tutorial fácil de seguir. ### [Deslocar a primeira linha para baixo ao inserir linhas de uma tabela de dados no Excel](./shift-first-row-down-when-inserting-cells-datatable-rows-in-excel/) Aprenda a inserir linhas de DataTable no Excel sem deslocar a primeira linha para baixo usando o Aspose.Cells para .NET. Guia passo a passo para automação sem esforço. +### [Criar Pasta de Trabalho Excel C# – Inserir JSON e Salvar como XLSX](./create-excel-workbook-c-insert-json-and-save-as-xlsx/) +Aprenda a criar uma pasta de trabalho Excel em C#, inserir dados JSON e salvar como arquivo XLSX usando Aspose.Cells para .NET. +### [Criar Pasta de Trabalho Excel C# – Aplicar Formato de Moeda e Importar DataTable](./create-excel-workbook-c-apply-currency-format-and-import-dat/) +Aprenda a criar uma pasta de trabalho Excel em C#, aplicar formato de moeda e importar dados de um DataTable usando Aspose.Cells para .NET. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/portuguese/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md b/cells/portuguese/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md new file mode 100644 index 0000000000..c0a571e675 --- /dev/null +++ b/cells/portuguese/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md @@ -0,0 +1,285 @@ +--- +category: general +date: 2026-03-30 +description: Criar pasta de trabalho Excel em C# com formatação de moeda. Aprenda + como importar um DataTable, adicionar formatação numérica no Excel e aplicar formatação + de moeda em uma coluna em minutos. +draft: false +keywords: +- create excel workbook c# +- format cells currency +- import datatable to excel +- add number format excel +- apply currency format column +language: pt +og_description: Crie uma planilha Excel em C# e formate instantaneamente as células + como moeda. Este tutorial passo a passo mostra como importar um DataTable para o + Excel e adicionar formatação numérica a uma coluna. +og_title: Criar Pasta de Trabalho Excel C# – Guia de Formatação de Moeda +tags: +- Aspose.Cells +- C# +- Excel automation +title: Criar Pasta de Trabalho Excel C# – Aplicar Formato de Moeda e Importar DataTable +url: /pt/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Criar Excel Workbook C# – Aplicar Formato de Moeda e Importar DataTable + +Já precisou **create Excel workbook C#** que já pareça um relatório bem elaborado? Talvez você esteja extraindo números de vendas de um banco de dados e queira que a coluna de preço apareça em dólares sem ter que mexer manualmente no Excel. Soa familiar? Você não está sozinho—a maioria dos desenvolvedores encontra esse obstáculo ao automatizar exportações para Excel pela primeira vez. + +Neste guia, percorreremos uma solução completa, pronta‑para‑executar, que **creates an Excel workbook C#**, importa um `DataTable` e **formats the Price column as currency**. Ao final, você terá um arquivo chamado `StyledTable.xlsx` que pode abrir e verá números formatados corretamente. Nenhum pós‑processamento adicional é necessário. + +> **O que você aprenderá** +> - Como configurar Aspose.Cells em um projeto .NET +> - Como **import datatable to excel** com um array de estilos +> - Como **add number format excel** para uma coluna específica +> - Dicas para lidar com mais colunas ou diferentes localidades + +> **Pré-requisitos** +> - .NET 6+ (ou .NET Framework 4.6+) instalado +> - Aspose.Cells for .NET NuGet package (`Install-Package Aspose.Cells`) +> - Familiaridade básica com C# e DataTables + +--- + +## Etapa 1: Preparar o DataTable (import datatable to excel) + +Primeiro, precisamos de alguns dados de exemplo. Em um aplicativo real, você provavelmente preencheria esta tabela a partir de uma consulta ao banco de dados, mas um exemplo codificado mantém as coisas simples. + +```csharp +using System.Data; + +// Create a DataTable with two columns: Product (string) and Price (double) +DataTable dataTable = new DataTable(); +dataTable.Columns.Add("Product", typeof(string)); +dataTable.Columns.Add("Price", typeof(double)); + +// Add a few rows – you can add as many as you like +dataTable.Rows.Add("Apple", 1.23); +dataTable.Rows.Add("Banana", 0.78); +dataTable.Rows.Add("Cherry", 2.50); +``` + +*Por que isso importa*: O `DataTable` é a ponte entre seus dados de negócios e o arquivo Excel. Aspose.Cells pode importá‑lo diretamente, preservando nomes de colunas e tipos de dados. + +--- + +## Etapa 2: Criar uma Nova Pasta de Trabalho (create excel workbook c#) + +Agora criamos o objeto real do arquivo Excel. Pense nele como a tela em branco que você vai pintar. + +```csharp +using Aspose.Cells; + +// Instantiate a fresh workbook – this is the core of create excel workbook c# +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0). You could also add more sheets later. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Dica profissional:** Se precisar de várias planilhas, chame `workbook.Worksheets.Add()` e dê a cada uma um nome significativo. + +--- + +## Etapa 3: Definir um Estilo de Moeda (format cells currency) + +Aspose.Cells permite criar um objeto `Style` que descreve como as células devem aparecer. Para moeda, usamos o ID de formato numérico embutido 164 (`"$#,##0.00"`). + +```csharp +// Create a new style object for the price column +Style priceStyle = workbook.CreateStyle(); +priceStyle.Number = 164; // Built‑in currency format "$#,##0.00" +``` + +*Por que não simplesmente definir a string de formato?* Usar o ID embutido garante compatibilidade entre versões do Excel e evita particularidades específicas de localidade. + +--- + +## Etapa 4: Construir o Array de Estilos (apply currency format column) + +Ao importar um `DataTable`, você pode passar um array de objetos `Style` — um por coluna. `null` significa “usar o estilo padrão”. Aqui aplicamos `priceStyle` apenas à segunda coluna. + +```csharp +// Column 0 (Product) gets the default style, Column 1 (Price) gets the currency style +Style[] columnStyles = { null, priceStyle }; +``` + +Se mais tarde você adicionar mais colunas, basta estender o array adequadamente. O comprimento de `columnStyles` deve corresponder ao número de colunas que você está importando, caso contrário o Aspose lançará uma exceção. + +--- + +## Etapa 5: Importar o DataTable com Estilos (import datatable to excel) + +Agora a mágica acontece — nosso `DataTable` chega à planilha, e a coluna de preço mostra instantaneamente como moeda. + +```csharp +// Parameters: +// - dataTable: source data +// - true: include column headers +// - startRow: 0 (top of sheet) +// - startColumn: 0 (first column) +// - columnStyles: style array defined above +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +*E se você tiver mais de duas colunas?* Basta expandir `columnStyles` para que cada coluna receba o estilo apropriado (ou `null` para o padrão). Esta é a maneira mais limpa de **add number format excel** seletivamente. + +--- + +## Etapa 6: Salvar a Pasta de Trabalho (create excel workbook c#) + +Finalmente, gravamos o arquivo no disco. Escolha qualquer pasta em que você tenha permissão de escrita. + +```csharp +// Save the workbook as an XLSX file +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +Abra `StyledTable.xlsx` no Excel e você deverá ver: + +| Product | Price | +|---------|-------| +| Apple | $1.23 | +| Banana | $0.78 | +| Cherry | $2.50 | + +A coluna **Price** já está formatada como moeda — nenhum passo extra necessário. + +--- + +## Casos de Borda e Variações + +### Mais Colunas, Formatos Diferentes + +Se precisar **format cells currency** para várias colunas (por exemplo, Cost, Tax, Total), crie um `Style` separado para cada uma e preencha `columnStyles` adequadamente: + +```csharp +Style costStyle = workbook.CreateStyle(); +costStyle.Number = 164; // currency + +Style taxStyle = workbook.CreateStyle(); +taxStyle.Number = 164; + +// Assuming columns: Product, Cost, Tax, Total +Style[] styles = { null, costStyle, taxStyle, priceStyle }; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, styles); +``` + +### Moeda Específica de Localidade + +Para Euro ou Libra Esterlina, use IDs embutidos diferentes (por exemplo, 165 para `€#,##0.00`). Alternativamente, defina uma string de formato personalizada: + +```csharp +priceStyle.Custom = "€#,##0.00"; +``` + +### Conjuntos de Dados Grandes + +Aspose.Cells pode lidar com milhões de linhas, mas o consumo de memória cresce com objetos de estilo. Reutilize uma única instância de `Style` para todas as colunas de moeda para manter a pegada baixa. + +### Estilos Ausentes + +Se `columnStyles` for mais curto que o número de colunas, o Aspose aplicará o estilo padrão às colunas restantes. Isso é útil quando você se importa apenas com algumas colunas. + +--- + +## Exemplo Completo Funcional (Todas as Etapas Combinadas) + +Abaixo está o programa completo que você pode copiar‑colar em um aplicativo console. Ele inclui todas as partes que discutimos, além de alguns comentários úteis. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // Step 1: Build sample DataTable (import datatable to excel) + // ------------------------------------------------- + DataTable dataTable = new DataTable(); + dataTable.Columns.Add("Product", typeof(string)); + dataTable.Columns.Add("Price", typeof(double)); + dataTable.Rows.Add("Apple", 1.23); + dataTable.Rows.Add("Banana", 0.78); + dataTable.Rows.Add("Cherry", 2.50); + // You can add as many rows as you like here. + + // ------------------------------------------------- + // Step 2: Create a new workbook (create excel workbook c#) + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // Step 3: Define a currency style (format cells currency) + // ------------------------------------------------- + Style priceStyle = workbook.CreateStyle(); + priceStyle.Number = 164; // "$#,##0.00" – built‑in currency format + + // ------------------------------------------------- + // Step 4: Build the style array (apply currency format column) + // ------------------------------------------------- + // First column gets default style (null), second column uses priceStyle. + Style[] columnStyles = { null, priceStyle }; + + // ------------------------------------------------- + // Step 5: Import the DataTable with the style array + // ------------------------------------------------- + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // ------------------------------------------------- + // Step 6: Save the workbook to disk + // ------------------------------------------------- + string outputPath = @"YOUR_DIRECTORY\StyledTable.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } +} +``` + +**Resultado esperado:** Ao abrir `StyledTable.xlsx` a coluna `Price` aparece com o símbolo de dólar e duas casas decimais, exatamente como a instrução `format cells currency` exigia. + +--- + +## Perguntas Frequentes + +**Q: Isso funciona com .NET Core?** +A: Absolutamente. Aspose.Cells é compatível com .NET‑standard, então você pode direcionar .NET 5, .NET 6 ou versões posteriores sem alterações. + +**Q: E se meu DataTable tem 10 colunas mas eu só quero formatar a coluna 5?** +A: Crie um `Style[]` com comprimento 10, preencha as posições 0‑4 e 6‑9 com `null`, e coloque seu estilo personalizado no índice 4 (base zero). O Aspose respeitará cada entrada. + +**Q: Posso ocultar a linha de cabeçalho?** +A: Após a importação, defina `worksheet.Cells.Rows[0].Hidden = true;` ou simplesmente passe `false` para o parâmetro `includeColumnNames` em `ImportDataTable`. + +--- + +## Conclusão + +Acabamos de **create Excel workbook C#**, importar um `DataTable` e **apply a currency format column** usando Aspose.Cells. As etapas principais — preparar os dados, definir um estilo, construir um array de estilos, importar com `ImportDataTable` e salvar — cobrem o núcleo da maioria das tarefas de automação do Excel. + +A partir daqui você pode explorar: + +- **add number format excel** para datas ou percentuais +- Exportar várias planilhas em um único arquivo +- Usar **format cells currency** com símbolos específicos de localidade +- Automatizar a criação de gráficos com base nos mesmos dados + +Experimente, e você rapidamente se tornará a pessoa de referência para relatórios Excel em sua equipe. Tem uma variação que gostaria de compartilhar? Deixe um comentário abaixo — feliz codificação! + +![create excel workbook c# screenshot](image.png "create excel workbook c#") + +{{< /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/portuguese/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md b/cells/portuguese/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md new file mode 100644 index 0000000000..9aa48323e8 --- /dev/null +++ b/cells/portuguese/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-03-30 +description: Crie rapidamente uma planilha Excel em C# inserindo dados JSON e salvando-a + como XLSX. Aprenda como gerar Excel a partir de JSON, escrever JSON no Excel e inserir + JSON no Excel. +draft: false +keywords: +- create excel workbook c# +- save workbook as xlsx +- generate excel from json +- write json to excel +- insert json into excel +language: pt +og_description: Crie rapidamente uma planilha Excel em C# inserindo dados JSON e salvando-a + como XLSX. Siga este guia passo a passo para gerar Excel a partir de JSON. +og_title: Criar Pasta de Trabalho Excel C# – Inserir JSON e Salvar como XLSX +tags: +- Aspose.Cells +- C# +- Excel automation +title: Criar Pasta de Trabalho Excel C# – Inserir JSON e Salvar como XLSX +url: /pt/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Criar Pasta de Trabalho Excel C# – Inserir JSON e Salvar como XLSX + +Já precisou **criar pasta de trabalho Excel C#** e despejar algum JSON diretamente em uma célula? Você não é o único—os desenvolvedores frequentemente enfrentam o mesmo desafio quando têm payloads de API ou arquivos de configuração que precisam chegar a uma planilha para relatórios ou compartilhamento. + +A boa notícia é que com Aspose.Cells você pode fazer isso em poucas linhas, **salvar pasta de trabalho como XLSX**, e manter todo o processo tipado. Neste tutorial, vamos **gerar Excel a partir de JSON**, **escrever JSON no Excel**, e mostrar os passos exatos para **inserir JSON no Excel** sem concatenações de strings complicadas. + +## O que este guia cobre + +Vamos percorrer: + +1. Configurar uma nova workbook. +2. Adicionar um Smart Marker que espera JSON. +3. Alimentar um array JSON ao marcador. +4. Ajustar `SmartMarkerOptions` para que o JSON permaneça em uma única célula. +5. Salvar o arquivo como uma workbook XLSX. + +Ao final, você terá um arquivo `JsonSingleCell.xlsx` pronto para uso e um padrão sólido que pode reutilizar para qualquer cenário JSON‑para‑Excel. Sem serviços externos, apenas C# puro e a biblioteca Aspose.Cells. + +**Pré-requisitos** + +- .NET 6+ (ou .NET Framework 4.6+). +- Visual Studio 2022 ou qualquer IDE compatível com C#. +- Pacote NuGet `Aspose.Cells` (versão de avaliação gratuita ou licenciada). + +Se você tem tudo isso, vamos mergulhar — sem necessidade de configuração extra. + +--- + +## Etapa 1: Criar uma Nova Workbook em C# + +A primeira coisa que você precisa é um objeto workbook em branco. Pense nele como um novo arquivo Excel aguardando dados. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is your empty Excel file +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; +``` + +**Por que isso importa:** +`Workbook` é o ponto de entrada para todas as operações do Excel. Ao criá-lo primeiro, você garante que a chamada subsequente de **salvar workbook como xlsx** tenha um objeto concreto para serializar. + +> **Dica profissional:** Se você planeja trabalhar com várias planilhas, pode adicioná‑las agora com `workbook.Worksheets.Add()`. + +--- + +## Etapa 2: Colocar um Smart Marker que Espera JSON + +Smart Markers são marcadores de posição que o Aspose.Cells substitui em tempo de execução. Aqui indicamos que ele procure por uma string JSON chamada `data`. + +```csharp +// Put a Smart Marker in cell A1 – {{data:json}} tells Aspose to expect JSON +worksheet.Cells["A1"].PutValue("{{data:json}}"); +``` + +**Por que isso importa:** +O sufixo `:json` informa ao motor que o valor recebido é JSON, não texto simples. Isso é a chave para **escrever json no excel** sem análise manual. + +--- + +## Etapa 3: Definir o Array JSON + +Agora criamos o JSON que queremos inserir. Para demonstração, usaremos uma lista simples de pessoas. + +```csharp +// Sample JSON array – could come from an API, file, or DB +string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; +``` + +**Caso de borda:** +Se o seu JSON contém aspas duplas, certifique‑se de que elas estejam escapadas (como mostrado) ou use uma string literal (`@"..."`) para evitar erros de compilação. + +--- + +## Etapa 4: Configurar Opções do Smart Marker – Manter o Array Inteiro + +Por padrão, o Aspose tentaria expandir o array ao longo das linhas. Queremos que a string JSON inteira permaneça dentro de uma única célula, o que é perfeito para cenários de **inserir json no excel** onde o consumidor analisará o JSON posteriormente. + +```csharp +SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions +{ + // Treat the whole array as a single cell value + ArrayAsSingle = true +}; +``` + +**Por que isso importa:** +`ArrayAsSingle = true` impede a expansão de linhas, fornecendo um blob JSON limpo em uma única célula. Isso é essencial quando a planilha é um formato de transporte e não um relatório. + +--- + +## Etapa 5: Processar o Smart Marker com os Dados JSON + +Agora vinculamos o JSON ao marcador e deixamos o Aspose fazer o trabalho pesado. + +```csharp +// Process the marker – the anonymous object maps "data" to our JSON string +worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); +``` + +**O que acontece nos bastidores:** +O Aspose avalia o marcador `{{data:json}}`, serializa a string `jsonData` e a grava na célula A1 respeitando as opções que definimos. + +--- + +## Etapa 6: Salvar a Workbook como Arquivo XLSX + +Finalmente, gravamos a workbook no disco. É aqui que **salvar workbook como xlsx** entra em ação. + +```csharp +// Save the workbook – the extension determines the format (XLSX here) +workbook.Save("JsonSingleCell.xlsx"); +``` + +**Resultado:** +Abra `JsonSingleCell.xlsx` no Excel, e você verá o array JSON exatamente como o definimos, sentado ordenadamente na célula A1. + +--- + +## Exemplo Completo e Executável + +Abaixo está o programa completo que você pode copiar‑colar em um aplicativo console. Ele inclui todas as etapas acima e funciona pronto para uso (desde que o pacote NuGet Aspose.Cells esteja instalado). + +```csharp +using System; +using Aspose.Cells; + +namespace JsonToExcelDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add a Smart Marker that expects JSON + worksheet.Cells["A1"].PutValue("{{data:json}}"); + + // 3️⃣ Define the JSON array + string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; + + // 4️⃣ Configure options – keep array as a single cell value + SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions + { + ArrayAsSingle = true + }; + + // 5️⃣ Process the marker with the JSON payload + worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); + + // 6️⃣ Save the workbook as XLSX + workbook.Save("JsonSingleCell.xlsx"); + + Console.WriteLine("Excel file created successfully! Check JsonSingleCell.xlsx."); + } + } +} +``` + +**Saída esperada no Excel** + +| A | +|---| +| `[{"Name":"John","Age":30},{"Name":"Jane","Age":28}]` | + +Essa única célula agora contém um array JSON perfeitamente válido, pronto para processamento posterior. + +--- + +## Perguntas Frequentes & Casos de Borda + +### E se eu precisar que o JSON seja distribuído em linhas? + +Defina `ArrayAsSingle = false` (o padrão). O Aspose criará uma linha para cada elemento do array, mapeando as propriedades do objeto para colunas. Isso é útil quando você deseja uma visualização tabular em vez de uma string JSON bruta. + +### Posso usar um arquivo JSON em vez de uma string codificada? + +Com certeza. Leia o arquivo em uma string: + +```csharp +string jsonData = File.ReadAllText("people.json"); +``` + +Então passe `jsonData` para a mesma chamada `Process`. O resto do pipeline permanece inalterado. + +### Isso funciona com payloads JSON grandes? + +Sim, mas fique de olho no uso de memória. Para arrays massivos, considere transmitir os dados ou escrever diretamente nas linhas (`ArrayAsSingle = false`) para evitar uma única célula gigantesca que o Excel pode ter dificuldade em lidar. + +### O XLSX gerado é compatível com versões antigas do Excel? + +O formato `.xlsx` baseia‑se no Office Open XML e funciona a partir do Excel 2007. Se precisar do formato legado `.xls`, altere a chamada de salvamento: + +```csharp +workbook.Save("JsonSingleCell.xls", SaveFormat.Excel97To2003); +``` + +--- + +## Dicas Profissionais para Trabalhar com JSON e Excel + +- **Valide o JSON primeiro** – use `System.Text.Json.JsonDocument.Parse(jsonData)` para detectar entradas malformadas cedo. +- **Escape caracteres especiais** – se o seu JSON contém quebras de linha, elas aparecerão como `\n` literal na célula; você pode substituí‑las por `Environment.NewLine` antes do processamento. +- **Reutilize Smart Markers** – você pode colocar múltiplos marcadores na mesma planilha, cada um apontando para uma propriedade JSON diferente. +- **Combine com fórmulas** – uma vez que o JSON está em uma célula, você pode usar `FILTERXML` do Excel (em versões mais recentes) para analisá‑lo em tempo real. + +--- + +## Conclusão + +Agora você sabe como **criar excel workbook c#**, incorporar um payload JSON e **salvar workbook como xlsx** usando Aspose.Cells. Esse padrão permite que você **gere excel a partir de json**, **escreva json no excel**, e **insira json no excel** com apenas algumas linhas de código, facilitando a troca de dados entre serviços e analistas. + +Pronto para o próximo passo? Tente converter o array JSON em uma tabela adequada (defina `ArrayAsSingle = false`) ou explore estilizar a planilha após a inserção. A mesma abordagem funciona para CSV, XML ou até objetos personalizados — basta ajustar o tipo de Smart Marker. + +Feliz codificação, e sinta‑se à vontade para experimentar! Se encontrar algum problema, deixe um comentário abaixo ou consulte a documentação oficial da Aspose para aprofundar nos Smart Markers. + +{{< /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/portuguese/net/excel-workbook/_index.md b/cells/portuguese/net/excel-workbook/_index.md index 6a0e8051d3..b336bfa4ae 100644 --- a/cells/portuguese/net/excel-workbook/_index.md +++ b/cells/portuguese/net/excel-workbook/_index.md @@ -86,6 +86,7 @@ Então, por que não aproveitar esta oportunidade para aprimorar suas habilidade | [Visualização de impressão da pasta de trabalho](./workbook-print-preview/) | Aprenda a criar visualizações de impressão para arquivos do Excel usando o Aspose.Cells para .NET. Aprenda as etapas de codificação em um tutorial detalhado e fácil de seguir. | | [Trabalhando com propriedades de tipo de conteúdo](./working-with-content-type-properties/) | Aprenda a usar o Aspose.Cells para .NET para trabalhar com propriedades de tipo de conteúdo e aprimorar o gerenciamento de metadados do Excel. Siga este guia passo a passo simples. | | [Suporte de assinatura Xades](./xades-signature-support/) | Aprenda a adicionar assinaturas Xades a arquivos do Excel usando o Aspose.Cells para .NET com este guia passo a passo. Proteja seus documentos. | +| [Criar planilha mestre em C# – Guia completo do Aspose.Cells](./create-master-sheet-in-c-complete-aspose-cells-guide/) | Aprenda a criar uma planilha mestre usando C# e Aspose.Cells com este tutorial passo a passo. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/portuguese/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md b/cells/portuguese/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md new file mode 100644 index 0000000000..0dbc4d8841 --- /dev/null +++ b/cells/portuguese/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md @@ -0,0 +1,228 @@ +--- +category: general +date: 2026-03-30 +description: Crie a planilha mestre usando Aspose.Cells em C#. Aprenda como criar + uma pasta de trabalho Excel em C#, permitir nomes de planilhas duplicados e salvar + a pasta de trabalho como XLSX em poucos passos. +draft: false +keywords: +- create master sheet +- create excel workbook c# +- save workbook as xlsx +- allow duplicate sheet names +language: pt +og_description: Crie a planilha mestre com Aspose.Cells em C#. Este guia mostra como + criar uma pasta de trabalho Excel em C#, permitir nomes de planilhas duplicados + e salvar a pasta de trabalho como XLSX. +og_title: Criar planilha mestre em C# – Guia completo do Aspose.Cells +tags: +- Aspose.Cells +- C# +- Excel automation +title: Criar planilha mestre em C# – Guia completo do Aspose.Cells +url: /pt/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Criar planilha mestre em C# – Guia Completo do Aspose.Cells + +Já precisou **criar uma planilha mestre** em um arquivo Excel, mas não tinha certeza de como lidar com várias planilhas de detalhe que compartilham o mesmo nome base? Você não está sozinho. Em muitos cenários de relatórios, você acaba com dezenas de abas de detalhe, e o comportamento padrão da maioria das bibliotecas é lançar uma exceção quando duas planilhas teriam o mesmo nome. + +Felizmente, o Aspose.Cells facilita **criar planilha mestre**, configurar o mecanismo para **permitir nomes de planilha duplicados**, e então **salvar a pasta de trabalho como XLSX** — tudo a partir de código C# limpo. Neste tutorial, vamos percorrer um exemplo totalmente executável, explicar por que cada linha importa e lhe dar algumas dicas que você pode copiar diretamente para seus próprios projetos. + +> **O que você levará consigo** +> * Como **criar pasta de trabalho Excel em C#**‑style usando Aspose.Cells. +> * Como incorporar um smart‑marker que gera uma planilha de detalhe para cada linha de dados. +> * Como definir `DetailSheetNewName = DuplicateAllowed` para que a biblioteca adicione automaticamente um sufixo numérico. +> * Como **salvar a pasta de trabalho como XLSX** no disco sem etapas adicionais. + +Nenhuma documentação externa necessária — tudo o que você precisa está aqui. + +--- + +## Pré-requisitos + +Antes de mergulharmos, certifique‑se de que você tem: + +| Requisito | Por que é importante | +|-----------|----------------------| +| .NET 6.0 ou posterior (ou .NET Framework 4.7+) | Aspose.Cells 23.x+ tem como alvo esses runtimes. | +| Visual Studio 2022 (ou qualquer IDE C#) | Para facilitar a criação de projetos e depuração. | +| Aspose.Cells for .NET NuGet package (`Install-Package Aspose.Cells`) | A biblioteca que alimenta toda a magia dos smart‑markers. | +| Conhecimento básico de C# | Você entenderá a sintaxe sem precisar de um curso intensivo. | + +Se estiver faltando algum desses, adicione agora — não há sentido em continuar com um ambiente incompleto. + +## Etapa 1: Criar planilha mestre com Aspose.Cells + +A primeira coisa que fazemos é **criar pasta de trabalho Excel em C#** style instanciando um objeto `Workbook`. Esse objeto já contém uma planilha padrão, que renomearemos para “Master” e trataremos como o modelo para todas as páginas de detalhe. + +```csharp +using Aspose.Cells; + +// Step 1: Initialise a new workbook – this automatically gives us one sheet +Workbook workbook = new Workbook(); + +// Grab the first (and only) worksheet that comes with a fresh workbook +Worksheet masterSheet = workbook.Worksheets[0]; + +// Give it a meaningful name – this will be our master sheet +masterSheet.Name = "Master"; +``` + +*Por que renomear a planilha?* +Um nome padrão como “Sheet1” não transmite a intenção, e mais tarde, ao examinar o arquivo, você desejará que a aba mestre seja reconhecível instantaneamente. Nomear também impede colisões acidentais quando você adicionar mais planilhas. + +## Etapa 2: Preparar o smart‑marker que gerará planilhas de detalhe + +Smart‑markers são marcadores de posição que o Aspose.Cells substitui por dados em tempo de execução. Ao colocar `{{#detail:DataSheetName}}` na célula **A1**, informamos ao mecanismo: “Para cada registro na fonte de dados, crie uma nova planilha cujo nome vem do campo `DataSheetName`.” + +```csharp +// Step 2: Insert a smart‑marker into cell A1. +// The marker #detail tells Aspose.Cells to generate a new sheet per data row. +masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); +``` + +Considere o marcador como um pequeno cartão de instruções colado na planilha. Quando o processador executa, ele lê o cartão, extrai o valor apropriado da fonte de dados e então clona a planilha mestre em uma nova aba. + +## Etapa 3: Construir a fonte de dados – nomes de planilha duplicados intencionalmente + +Na prática, você pode obter isso de um banco de dados, mas para a demonstração usaremos um array em memória de objetos anônimos. Observe que ambos os itens usam o mesmo nome base `"Detail"`; este é o cenário onde **permitir nomes de planilha duplicados** se torna crucial. + +```csharp +// Step 3: Create a data source with two items that share the same base sheet name. +var dataSource = new[] +{ + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } +}; +``` + +Se você tentar isso sem opções especiais, o Aspose.Cells lançará uma exceção na segunda iteração porque já existe uma planilha chamada “Detail”. É por isso que a próxima etapa é importante. + +## Etapa 4: Habilitar nomes de planilha duplicados + +O Aspose.Cells expõe `SmartMarkerOptions.DetailSheetNewName`. Definir isso como `DetailSheetNewName.DuplicateAllowed` indica ao mecanismo que ele deve acrescentar automaticamente um sufixo numérico (por exemplo, “Detail_1”) sempre que ocorrer um conflito de nomes. + +```csharp +// Step 4: Configure SmartMarker options to permit duplicate sheet names. +var smartMarkerOptions = new SmartMarkerOptions +{ + // This makes the library rename clashes to "Detail_1", "Detail_2", etc. + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed +}; +``` + +*Por que não dar a cada linha um nome único manualmente?* +Porque frequentemente os dados de origem não garantem unicidade, especialmente quando os usuários inserem texto livre. Deixar a biblioteca lidar com o sufixo elimina uma classe inteira de bugs. + +## Etapa 5: Processar os smart‑markers e gerar as planilhas de detalhe + +Agora chamamos `SmartMarkers.Process`, passando tanto a fonte de dados quanto as opções que acabamos de configurar. O método percorre cada item, clona a planilha mestre e renomeia o clone de acordo com o campo `DataSheetName` (mais um sufixo, se necessário). + +```csharp +// Step 5: Run the smart‑marker processor – this creates the detail sheets. +masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); +``` + +Depois que esta linha for executada, você terá três abas na pasta de trabalho: + +1. **Master** – o modelo original. +2. **Detail** – primeira planilha gerada (sem sufixo necessário). +3. **Detail_1** – segunda planilha gerada (sufixo adicionado automaticamente). + +Você pode verificar isso abrindo o arquivo no Excel; verá as duas planilhas de detalhe lado a lado. + +## Etapa 6: Salvar a pasta de trabalho como arquivo XLSX + +Finalmente, persistimos o arquivo no disco. O método `Save` escolhe automaticamente o formato XLSX quando você fornece uma extensão `.xlsx`. + +```csharp +// Step 6: Persist the workbook – this is the moment we finally “save workbook as XLSX”. +string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; +workbook.Save(outputPath); +``` + +**Dica profissional:** Se precisar transmitir o arquivo diretamente para uma resposta web (por exemplo, ASP.NET Core), use `workbook.Save(stream, SaveFormat.Xlsx)` em vez de um caminho de arquivo. + +## Exemplo Completo Funcional + +Abaixo está o programa completo, pronto‑para‑executar. Copie‑e‑cole em um aplicativo console, pressione F5 e abra o arquivo gerado para ver o resultado. + +```csharp +using System; +using Aspose.Cells; + +namespace MasterSheetDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook and rename the default sheet to "Master" + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert a smart‑marker that will generate a detail sheet per data row + masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); + + // 3️⃣ Prepare a data source where two rows share the same sheet name + var dataSource = new[] + { + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } + }; + + // 4️⃣ Allow duplicate sheet names – the library will add "_1", "_2", … + var smartMarkerOptions = new SmartMarkerOptions + { + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed + }; + + // 5️⃣ Process the smart‑markers; this creates the detail sheets + masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); + + // 6️⃣ Save the workbook as an XLSX file + string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Resultado esperado:** Abra `DuplicateDetailSheets.xlsx` e você verá três planilhas — `Master`, `Detail` e `Detail_1`. Cada planilha de detalhe é uma cópia exata da mestre, pronta para você preencher com dados específicos de cada linha mais tarde. + +## Perguntas Frequentes & Casos Limítrofes + +### E se eu precisar de mais de duas planilhas duplicadas? + +Sem problema. A mesma configuração `DuplicateAllowed` continuará acrescentando números incrementais (`Detail_2`, `Detail_3`, …) até que cada linha tenha sua própria aba. + +### Posso personalizar o formato do sufixo? + +Por padrão, o Aspose.Cells usa um sublinhado seguido de um índice numérico. Se precisar de um padrão diferente (por exemplo, “Detail‑A”, “Detail‑B”), será necessário pós‑processar a pasta de trabalho após a execução de `Process`, iterando sobre `workbook.Worksheets` e renomeando conforme desejar. + +### Essa abordagem funciona com grandes conjuntos de dados (centenas de linhas)? + +Sim, mas fique atento ao uso de memória. Cada planilha gerada é uma cópia completa da mestre, portanto um número enorme de linhas pode inflar o tamanho do arquivo rapidamente. Se precisar de apenas algumas linhas por planilha, considere usar `SmartMarkerOptions.RemoveEmptyRows = true` para remover células excedentes. + +### O arquivo gerado é realmente um arquivo XLSX? + +Absolutamente. O método `Save` grava o pacote Open XML que o Excel espera. Você pode até abrir o arquivo com LibreOffice ou Google Sheets sem necessidade de conversão. + +## Dicas para Código Pronto para Produção + +| Dica | Por que é importante | +|------|----------------------| +| **Dispose `Workbook + +{{< /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/portuguese/net/formulas-functions/_index.md b/cells/portuguese/net/formulas-functions/_index.md index a73dfd67b2..d1d08d88ae 100644 --- a/cells/portuguese/net/formulas-functions/_index.md +++ b/cells/portuguese/net/formulas-functions/_index.md @@ -102,64 +102,11 @@ Aprenda a especificar o idioma dos seus arquivos do Excel usando o Aspose.Cells ### [Atualizar fórmulas do Excel Power Query com Aspose.Cells .NET](./update-power-query-formulas-aspose-cells-net) Aprenda a atualizar programaticamente fórmulas do Power Query em pastas de trabalho do Excel usando o Aspose.Cells para .NET. Gerenciamento de fontes de dados mestre para relatórios dinâmicos. -## Compreendendo os tipos de fórmulas do Excel +### [Como usar WRAPCOLS em C# – Crie uma pasta de trabalho Excel com funções de ajuste](./how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/) +Aprenda a aplicar a função WRAPCOLS em C# para criar planilhas Excel que dividem texto em várias linhas automaticamente. -As fórmulas do Excel vêm em vários formatos, cada uma com características únicas que o Aspose.Cells pode gerenciar: - -### Fórmulas de células padrão - -Estas são as fórmulas mais comuns que operam em células individuais: - -- **Fórmulas Aritméticas**: Cálculos básicos como `=A1+B1` -- **Fórmulas baseadas em funções**: Usando funções integradas como `=SUM(A1:A10)` -- **Fórmulas Lógicas**: Lógica condicional com funções como `=IF(A1>10,"High","Low")` -- **Fórmulas de texto**: Manipulação de texto com funções como `=CONCATENATE(A1," ",B1)` - -### Fórmulas baseadas em intervalo - -Estas fórmulas funcionam com intervalos de células: - -- **Fórmulas de Agregação**:Funções como `=AVERAGE(A1:A100)` que processam múltiplas células -- **Fórmulas de pesquisa**: Funções de referência como `=VLOOKUP(E1,A1:B20,2,FALSE)` para recuperação de dados -- **Fórmulas de banco de dados**: Funções especializadas como `=DSUM(A1:F100,"Amount",G1:H2)` para filtragem e cálculo - -### Fórmulas de matriz - -Fórmulas de matriz realizam cálculos em vários valores simultaneamente: - -- **Fórmula de matriz de célula única**: Retorna um resultado, mas processa matrizes internamente -- **Fórmula de matriz multicelular**:Preenche várias células com resultados relacionados -- **Matrizes dinâmicas**: Fórmulas modernas do Excel que distribuem automaticamente os resultados para células vizinhas - -### Fórmulas Nomeadas - -Essas fórmulas usam intervalos nomeados ou nomes definidos: - -- **Referências de intervalo nomeado**: Usando nomes definidos como `=SUM(SalesData)` -- **Referências Estruturadas**: Referências de tabela como `=SUM(Table1[Amount])` -- **Intervalos nomeados dinâmicos**: Fórmulas que se ajustam automaticamente com o tamanho dos dados - -## Melhores práticas para gerenciamento de fórmulas - -### Otimização de Desempenho - -Para garantir o manuseio eficiente da fórmula: - -1. **Configuração de fórmula em lote**: Aplique fórmulas a intervalos em vez de célula por célula -2. **Calcular Seletivamente**: Use cálculo direcionado quando possível em vez de recálculo completo -3. **Minimizar funções voláteis**: Limite o uso de funções como NOW() ou RAND() que acionam o recálculo -4. **Use fórmulas compartilhadas**: Aproveite os recursos de fórmulas compartilhadas para eficiência de memória - -### Confiabilidade da Fórmula - -Para implementação robusta da fórmula: - -1. **Tratamento de erros**: Implementar tratamento de erros de fórmula com IFERROR ou funções semelhantes -2. **Análise de Dependência Celular**: Entenda as dependências de fórmulas para evitar referências circulares -3. **Auditoria de Fórmulas**: Verifique a lógica da fórmula antes da implantação -4. **Documentação**: Manter documentação clara de estruturas de fórmulas complexas - -Ao dominar esses recursos de fórmula com o Aspose.Cells para .NET, você pode criar mecanismos de cálculo sofisticados em suas planilhas que fornecem resultados precisos e dinâmicos sem exigir instalação do Excel. +### [Criar Pasta de Trabalho Excel em C# – Guia Lambda, SEQUENCE e EXPAND](./create-excel-workbook-c-lambda-sequence-expand-guide/) +Aprenda a criar pastas de trabalho Excel em C# usando as funções Lambda, SEQUENCE e EXPAND para gerar dados dinâmicos de forma eficiente. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/portuguese/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md b/cells/portuguese/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md new file mode 100644 index 0000000000..e1daa8527a --- /dev/null +++ b/cells/portuguese/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-30 +description: Criar pasta de trabalho Excel em C# usando Aspose.Cells. Aprenda a aplicar + função lambda no Excel, função sequência no Excel, expandir matriz no Excel e salvar + a pasta de trabalho como xlsx. +draft: false +keywords: +- create excel workbook c# +- lambda function excel +- save workbook as xlsx +- sequence function excel +- expand array excel +language: pt +og_description: Crie rapidamente uma pasta de trabalho Excel em C#. Este guia mostra + como usar a função lambda no Excel, a função sequence no Excel, expandir arrays + no Excel e salvar a pasta de trabalho como xlsx. +og_title: Criar Pasta de Trabalho Excel C# – Guia de Lambda, SEQUENCE e EXPAND +tags: +- Aspose.Cells +- C# +- Excel automation +title: Criar Pasta de Trabalho Excel C# – Guia de Lambda, SEQUENCE e EXPAND +url: /pt/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Criar Pasta de Trabalho Excel C# – Guia Lambda, SEQUENCE & EXPAND + +Já precisou **criar pasta de trabalho Excel C#** para um relatório automatizado, mas não sabia quais chamadas de API usar? Você não está sozinho—muitos desenvolvedores encontram a mesma barreira ao mergulhar pela primeira vez na geração programática de Excel. Neste guia você verá um exemplo completo e executável que cobre tudo, desde a nova **função SEQUENCE Excel** até a poderosa **função LAMBDA Excel**, e ainda como **expandir array Excel** resultados. + +Também mostraremos os passos exatos para **salvar pasta de trabalho como xlsx** para que você possa entregar o arquivo a qualquer pessoa que use Excel. Ao final deste tutorial você terá um snippet sólido, pronto para produção, que pode ser inserido em qualquer projeto .NET. Nada de links vagos “veja a documentação”—apenas código que funciona hoje. + +## O que você precisará + +- **.NET 6.0 ou superior** – o exemplo tem como alvo o .NET 6, mas qualquer versão recente funciona. +- **Aspose.Cells for .NET** – instale via NuGet (`Install-Package Aspose.Cells`). +- Um entendimento básico da sintaxe C# (variáveis, objetos e expressões lambda). +- Uma IDE com a qual você se sinta confortável (Visual Studio, Rider ou VS Code). + +É só isso. Sem COM interop extra, sem Office instalado no servidor—Aspose.Cells cuida de tudo na memória. + +## Criar Pasta de Trabalho Excel C# – Implementação Passo a Passo + +A seguir dividimos o processo em etapas pequenas. Cada etapa tem um título claro, um trecho curto de código e uma explicação do **porquê** fazemos isso. Sinta-se à vontade para copiar o bloco completo ao final e executá‑lo como um aplicativo console. + +### Etapa 1 – Inicializar uma Nova Pasta de Trabalho + +Primeiro de tudo: precisamos de um objeto de pasta de trabalho em branco que represente o arquivo Excel na memória. + +```csharp +using Aspose.Cells; + +// Step 1: Create a new workbook and get the first worksheet +Workbook workbook = new Workbook(); // empty workbook +Worksheet sheet = workbook.Worksheets[0]; // default first sheet +``` + +*Por que isso importa:* `Workbook` é o ponto de entrada para todas as operações do Aspose.Cells. Ao obter a primeira `Worksheet` conseguimos uma tela onde podemos escrever fórmulas, valores ou formatações. + +> **Dica:** Se precisar de várias planilhas, basta chamar `workbook.Worksheets.Add()` e manter uma referência a cada uma. + +### Etapa 2 – Usar a função SEQUENCE Excel para Gerar Dados + +A **sequence function excel** cria um array dinâmico de números sem VBA. Vamos colocá‑la na célula `A1` e deixar o Excel expandi‑la automaticamente. + +```csharp +// Step 2: Generate a 5‑row, 1‑column array from a SEQUENCE +sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; // 1..3 padded with blanks +``` + +*Por que isso importa:* `SEQUENCE(3)` gera `[1,2,3]`. Envolvendo‑a com `EXPAND` forçamos o resultado em um intervalo de 5 linhas, preenchendo as linhas extras com vazios. Isso demonstra tanto a **sequence function excel** quanto a **expand array excel** de uma só vez. + +### Etapa 3 – Agregar Números com a função LAMBDA Excel + +Agora vamos mostrar a capacidade da **lambda function excel**. Somaremos os números de 1‑5 usando a nova função `REDUCE`, que internamente depende de uma lambda. + +```csharp +// Step 3: Aggregate a sequence (sum 1..5) using REDUCE/LAMBDA +sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; // result = 15 +``` + +*Por que isso importa:* `REDUCE` itera sobre o array produzido por `SEQUENCE(5)`, passando cada elemento (`b`) para a lambda junto com o acumulador (`a`). A lambda `a+b` os soma, deixando `15` em `B1`. Essa é uma forma limpa, apenas com fórmula, de fazer reduções sem loops em C#. + +### Etapa 4 – Aplicar Funções Trigonométricas Diretamente nas Células + +As funções matemáticas nativas do Excel são úteis para cálculos rápidos. Colocaremos uma cotangente e uma cotangente hiperbólica em células adjacentes. + +```csharp +// Step 4: Trigonometric functions directly in Excel cells +sheet["C1"].Formula = "COT(PI()/4)"; // evaluates to 1 +sheet["D1"].Formula = "COTH(1)"; // hyperbolic cotangent of 1 +``` + +*Por que isso importa:* Demonstra que você pode misturar funções matemáticas clássicas com as novas fórmulas de array dinâmico. Não há necessidade de calcular esses valores em C# a menos que você tenha um motivo específico de desempenho. + +### Etapa 5 – Calcular Todas as Fórmulas + +O Aspose.Cells não avalia automaticamente as fórmulas quando você as define. É preciso solicitar o cálculo. + +```csharp +// Step 5: Force calculation so that cells store the results +workbook.CalculateFormula(); +``` + +*Por que isso importa:* Após esta chamada, a propriedade `Value` de cada célula contém o resultado avaliado, pronto para ser salvo ou lido novamente. + +### Etapa 6 – Salvar a Pasta de Trabalho como Xlsx + +Por fim, persistimos a pasta de trabalho no disco usando o padrão **save workbook as xlsx**. + +```csharp +// Step 6: Save the workbook to an Excel file (XLSX format) +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + +workbook.Save(outputPath); +Console.WriteLine($"Workbook saved to: {outputPath}"); +``` + +*Por que isso importa:* O método `Save` detecta automaticamente a extensão do arquivo. Ao usar “.xlsx” garantimos que o arquivo seja compatível com as versões modernas do Excel. O caminho aponta para a área de trabalho para fácil acesso durante os testes. + +### Exemplo Completo Funcionando + +Abaixo está o programa completo que você pode colar em um novo projeto console. Ele inclui todas as etapas acima, além de um pequeno bloco de verificação que imprime os valores calculados no console. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialize workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + + // SEQUENCE + EXPAND + sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; + + // REDUCE with LAMBDA + sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; + + // Trig functions + sheet["C1"].Formula = "COT(PI()/4)"; + sheet["D1"].Formula = "COTH(1)"; + + // Calculate formulas + workbook.CalculateFormula(); + + // Verify results (optional) + Console.WriteLine("A1‑A5 (expanded SEQUENCE):"); + for (int i = 0; i < 5; i++) + { + Console.WriteLine($" Row {i + 1}: {sheet.Cells[i, 0].Value ?? "blank"}"); + } + Console.WriteLine($"B1 (sum 1‑5): {sheet["B1"].Value}"); + Console.WriteLine($"C1 (cot(π/4)): {sheet["C1"].Value}"); + Console.WriteLine($"D1 (coth(1)): {sheet["D1"].Value}"); + + // Save workbook + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + workbook.Save(outputPath); + Console.WriteLine($"Workbook saved to: {outputPath}"); + } +} +``` + +**Saída esperada no console** + +``` +A1‑A5 (expanded SEQUENCE): + Row 1: 1 + Row 2: 2 + Row 3: 3 + Row 4: blank + Row 5: blank +B1 (sum 1‑5): 15 +C1 (cot(π/4)): 1 +D1 (coth(1)): 1.31303528549933 +Workbook saved to: C:\Users\YourName\Desktop\NewFunctions.xlsx +``` + +E ao abrir *NewFunctions.xlsx* você verá os mesmos números distribuídos nas quatro primeiras colunas. + +![criar pasta de trabalho excel c# captura de tela da planilha resultante](/images/create-excel-workbook-csharp.png) + +## Casos Limites, Dicas e Perguntas Frequentes + +- **E se eu precisar de mais de uma planilha?** + Basta chamar `workbook.Worksheets.Add()` e repetir as atribuições de fórmula em cada novo objeto `Worksheet`. + +- **Posso usar versões mais antigas do Excel?** + As funções de array dinâmico (`SEQUENCE`, `EXPAND`, `REDUCE`) exigem Excel 365 ou Excel 2021+. Se você mira versões mais antigas, use fórmulas clássicas ou calcule os valores em C# antes de escrevê‑los. + +- **Preocupações de desempenho?** + Para milhares de linhas, definir fórmulas em um intervalo e depois chamar `CalculateFormula` costuma ser mais rápido que percorrer linha a linha atribuindo valores individualmente. + +- **Salvar em um stream ao invés de um arquivo?** + `work + +{{< /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/portuguese/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md b/cells/portuguese/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md new file mode 100644 index 0000000000..916620499e --- /dev/null +++ b/cells/portuguese/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-30 +description: Aprenda a usar WRAPCOLS em C# para criar uma pasta de trabalho do Excel, + adicionar dados ao Excel e forçar o cálculo de fórmulas, também usando WRAPROWS. +draft: false +keywords: +- how to use wrapcols +- create excel workbook c# +- add data to excel +- force formula calculation +- how to use wraprows +language: pt +og_description: Descubra como usar WRAPCOLS em C# para criar uma pasta de trabalho + do Excel, adicionar dados, forçar o cálculo de fórmulas e aproveitar o WRAPROWS + para fórmulas de matriz. +og_title: Como usar WRAPCOLS em C# – Guia completo +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Como usar WRAPCOLS em C# – Criar pasta de trabalho Excel com funções de wrap +url: /pt/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Como Usar WRAPCOLS em C# – Criar Pasta de Trabalho Excel com Funções Wrap + +Já se perguntou **como usar WRAPCOLS** ao automatizar o Excel com C#? Você não está sozinho—muitos desenvolvedores esbarram em um obstáculo quando precisam transformar um intervalo horizontal em um array vertical sem escrever muito código. A boa notícia é que o Aspose.Cells torna isso muito simples. + +Neste tutorial vamos percorrer um exemplo completo e executável que mostra **como usar WRAPCOLS**, como **criar pasta de trabalho Excel em C#**, como **adicionar dados ao Excel**, e até como **forçar o cálculo de fórmulas** para que os resultados apareçam instantaneamente. Também vamos incluir **como usar WRAPROWS** para a transformação inversa. Ao final, você terá um programa pronto‑para‑executar e entenderá claramente por que cada passo é importante. + +--- + +![Como usar WRAPCOLS em C# exemplo](alt="Screenshot showing Excel workbook after using WRAPCOLS in C#") + +## O Que Este Guia Cobre + +* Configurar uma nova pasta de trabalho com Aspose.Cells. +* Preencher células programaticamente (**adicionar dados ao Excel**). +* Aplicar a função `WRAPCOLS` para transformar uma linha em coluna. +* Usar `WRAPROWS` para transformar uma coluna de volta em linha (**como usar wraprows**). +* Forçar o motor a avaliar fórmulas imediatamente (**forçar cálculo de fórmula**). +* Salvar o arquivo e verificar o resultado. + +Nenhuma documentação externa necessária—tudo que você precisa está aqui. + +--- + +## Como Usar WRAPCOLS em C# – Implementação Passo a Passo + +Abaixo está o arquivo fonte completo. Sinta‑se à vontade para copiá‑e‑colar em um novo projeto de console, adicionar o pacote NuGet Aspose.Cells e pressionar **F5**. + +```csharp +// ------------------------------------------------------------ +// How to Use WRAPCOLS in C# – Complete Example +// ------------------------------------------------------------ +using System; +using Aspose.Cells; + +namespace WrapFunctionsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a fresh workbook (this is how we **create excel workbook c#** style) + Workbook workbook = new Workbook(); + + // 2️⃣ Grab the first worksheet – it's created by default + Worksheet sheet = workbook.Worksheets[0]; + + // 3️⃣ **Add data to Excel**: place two numbers side‑by‑side + sheet.Cells["A1"].PutValue(1); // first value + sheet.Cells["B1"].PutValue(2); // second value + + // 4️⃣ **How to use WRAPCOLS** – turn the horizontal range A1:B1 into a vertical array + // The second argument (1) tells WRAPCOLS to create 1 column per element. + sheet["C1"].Formula = "WRAPCOLS(A1:B1, 1)"; + + // 5️⃣ **How to use WRAPROWS** – the opposite; turn the same range into a horizontal array + // Here we ask for 2 rows per element, which produces a single row with both values. + sheet["C2"].Formula = "WRAPROWS(A1:B1, 2)"; + + // 6️⃣ **Force formula calculation** so the workbook reflects the results immediately + workbook.CalculateFormula(); + + // 7️⃣ Save the workbook to disk – change the path to a folder you own + string outputPath = @"WrapFunctions.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + Console.WriteLine("Check cells C1 and C2 for the WRAPCOLS / WRAPROWS results."); + } + } +} +``` + +### Por Que Cada Linha É Importante + +| Etapa | Explicação | +|------|-------------| +| **1️⃣ Criar uma nova pasta de trabalho** | Esta é a base. O Aspose.Cells trata um objeto `Workbook` como todo o arquivo Excel, então você está efetivamente **criando uma pasta de trabalho Excel em C#**. | +| **2️⃣ Obter a primeira planilha** | Uma nova pasta de trabalho sempre contém ao menos uma planilha (`Worksheets[0]`). Acessá‑la logo no início evita surpresas de referência nula. | +| **3️⃣ Adicionar dados ao Excel** | Usando `PutValue` nós **adicionamos dados ao Excel** sem nos preocupar com formatação de célula. Os números `1` e `2` são nossos dados de teste para as funções wrap. | +| **4️⃣ Como usar WRAPCOLS** | `WRAPCOLS(A1:B1, 1)` indica ao Excel que pegue o intervalo `A1:B1` e espalhe seus valores verticalmente, um por linha. O resultado vai para `C1` e se estende para baixo (`C1`, `C2`, …). | +| **5️⃣ Como usar WRAPROWS** | `WRAPROWS(A1:B1, 2)` faz o oposto: cria um espalhamento horizontal, colocando os dois valores em uma única linha a partir de `C2`. | +| **6️⃣ Forçar cálculo de fórmula** | Por padrão, o Aspose.Cells pode adiar o cálculo até que o arquivo seja aberto no Excel. Chamar `CalculateFormula()` **força o cálculo de fórmula** para que você possa ler os resultados imediatamente após salvar. | +| **7️⃣ Salvar a pasta de trabalho** | O passo final grava tudo no disco. Abra o `WrapFunctions.xlsx` resultante para ver o resultado. | + +--- + +## Criar Pasta de Trabalho Excel em C# – Configurando o Ambiente + +Antes de executar o código, certifique‑se de que tem as ferramentas corretas: + +1. **.NET 6.0+** – A versão LTS mais recente funciona melhor. +2. **Visual Studio 2022** (ou VS Code com a extensão C#). +3. **Aspose.Cells for .NET** – Instale via NuGet: + ```bash + dotnet add package Aspose.Cells + ``` +4. Uma pasta gravável para o arquivo de saída. + +Esses pré‑requisitos são mínimos; não é necessário COM interop nem instalação do Office, razão pela qual o Aspose.Cells é uma escolha popular para geração de Excel no lado do servidor. + +--- + +## Adicionar Dados ao Excel – Boas Práticas + +Ao **adicionar dados ao Excel** programaticamente, considere estas dicas: + +* **Use `PutValue`** para números ou strings brutas; ele detecta automaticamente o tipo de dado. +* **Evite codificar endereços de célula** em projetos grandes—use loops ou intervalos nomeados para escalabilidade. +* **Defina estilos de célula com moderação**; cada mudança de estilo gera sobrecarga. Se precisar de formatação, crie um único objeto de estilo e aplique‑o a várias células. + +No nosso exemplo pequeno inserimos apenas dois números, mas o mesmo padrão escala para milhares de linhas. + +--- + +## Como Usar WRAPROWS – Exemplo de Array Horizontal + +Se precisar do oposto de `WRAPCOLS`, `WRAPROWS` é a sua solução. A sintaxe é: + +``` +WRAPROWS(source_range, [rows_per_item]) +``` + +* `source_range` – o intervalo que você deseja transformar. +* `rows_per_item` – opcional; indica ao Excel quantas linhas cada elemento ocupa. No nosso demo usamos `2` para forçar ambos os valores em uma única linha. + +Você pode experimentar alterando o segundo argumento: + +```csharp +// Example: split each value into its own column, three rows per item +sheet["D1"].Formula = "WRAPROWS(A1:B1, 3)"; +``` + +Abra a pasta de trabalho e verá os valores espalhados por três colunas, cada coluna contendo os números originais repetidos conforme necessário. + +--- + +## Forçar Cálculo de Fórmula – Quando e Por Que + +Você pode se perguntar: “Preciso realmente chamar `CalculateFormula()`?” A resposta é **sim**, se: + +* Pretende ler valores calculados **programaticamente** após salvar. +* Quer garantir que o arquivo abra no Excel já exibindo os resultados corretos. +* Está executando em um **ambiente sem interface** (por exemplo, uma API web) onde nenhum usuário disparará manualmente um recálculo. + +Pular este passo não quebra a pasta de trabalho, mas as células mostrarão o texto da fórmula (`=WRAPCOLS(...)`) em vez dos valores computados até que o Excel recalcule. + +--- + +## Saída Esperada – O Que Procurar + +Depois de executar o programa e abrir `WrapFunctions.xlsx`: + +| Célula | Fórmula | Valor Exibido | +|------|---------|-----------------| +| **C1** | `=WRAPCOLS(A1:B1, 1)` | `1` (em C1) e `2` (em C2) – lista vertical | +| **C2** | `=WRAPROWS(A1:B1, 2)` | `1` em C2 e `2` em D2 – lista horizontal | + +Portanto, você verá uma coluna de valores começando em **C1** e uma linha de valores começando em **C2**. Isso confirma que ambas as funções wrap se comportaram como esperado. + +--- + +## Casos de Borda & Variações + +| Cenário | O que muda? | Ajuste sugerido | +|----------|---------------|-----------------| +| **Grande intervalo (A1:Z1)** | Mais valores para espalhar verticalmente | Aumente o segundo argumento de `WRAPCOLS` se quiser múltiplas colunas por grupo. | +| **Dados não numéricos** | Strings são tratadas da mesma forma | Nenhuma mudança de código; `PutValue` aceita qualquer objeto. | +| **Intervalo dinâmico** | Você não conhece o tamanho em tempo de compilação | Use `sheet.Cells.MaxDataColumn` e `MaxDataRow` para montar a string de endereço. | +| **Múltiplas planilhas** | Necessidade de aplicar funções wrap em planilhas diferentes | Referencie a planilha correta (`workbook.Worksheets["Sheet2"]`). | + +Antecipando essas variações, você pode adaptar o padrão central a quase qualquer cenário de automação. + +--- + +## Dicas de Profissional da Área + +* **Dica de pro:** Envolva a criação da pasta de trabalho em um bloco `using` se estiver mirando .NET Core 3.1+ para garantir que todos os recursos sejam liberados rapidamente. +* **Fique atento a:** Definir a mesma fórmula em um grande intervalo sem chamar `CalculateFormula()` pode causar gargalos de desempenho. Processar fórmulas em lote sempre que possível. +* **Sugestão:** Se precisar ler de volta os valores calculados no código, chame ` + +{{< /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/portuguese/net/tables-and-lists/_index.md b/cells/portuguese/net/tables-and-lists/_index.md index b9307732b6..52fa7f116a 100644 --- a/cells/portuguese/net/tables-and-lists/_index.md +++ b/cells/portuguese/net/tables-and-lists/_index.md @@ -51,6 +51,8 @@ Converta tabelas em intervalos no Excel facilmente usando o Aspose.Cells para .N Descubra o poder do Aspose.Cells para .NET. Aprenda a ler e escrever tabelas com fontes de dados de consulta neste guia passo a passo detalhado. ### [Definir comentário de tabela ou lista no Excel](./setting-comment-of-table-or-list/) Aprenda como definir comentários para tabelas no Excel usando o Aspose.Cells para .NET com nosso guia passo a passo fácil. +### [Criar tabela a partir de intervalo em C# – Tutorial completo do Aspose.Cells](./create-table-from-range-in-c-complete-aspose-cells-tutorial/) +Aprenda a criar uma tabela a partir de um intervalo no Excel usando C# e Aspose.Cells com este tutorial passo a passo. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/portuguese/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md b/cells/portuguese/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md new file mode 100644 index 0000000000..b1dc3cba1e --- /dev/null +++ b/cells/portuguese/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md @@ -0,0 +1,231 @@ +--- +category: general +date: 2026-03-30 +description: Criar tabela a partir de intervalo em C# com Aspose.Cells – adicionar + dados às células, converter intervalo em ListObject e salvar Excel sem filtro. +draft: false +keywords: +- create table from range +- create excel workbook c# +- add data to cells +- convert range to listobject +- save excel without filter +language: pt +og_description: Criar tabela a partir de um intervalo em C# com Aspose.Cells. Aprenda + como adicionar dados às células, converter um intervalo em um ListObject e salvar + o Excel sem filtro. +og_title: Criar Tabela a partir de Intervalo em C# – Tutorial Completo do Aspose.Cells +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Criar Tabela a partir de um Intervalo em C# – Tutorial Completo do Aspose.Cells +url: /pt/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Criar Tabela a partir de Intervalo em C# – Tutorial Completo do Aspose.Cells + +Já precisou **criar tabela a partir de intervalo** em C# mas não sabia como transformar um bloco de dados simples em uma tabela do Excel completa? Você não está sozinho. Seja automatizando relatórios, gerando placares ou apenas limpando dados para análise posterior, dominar esse pequeno truque pode economizar muito trabalho manual. + +Neste guia percorreremos todo o processo: **create excel workbook c#**, **add data to cells**, **convert range to ListObject** e, finalmente, **save excel without filter**. Ao final você terá um trecho pronto‑para‑executar que pode ser inserido em qualquer projeto .NET que referencia o Aspose.Cells. + +--- + +## Pré-requisitos + +- .NET 6+ (ou .NET Framework 4.7.2+) instalado +- Aspose.Cells para .NET (pacote NuGet `Aspose.Cells`) – a versão mais recente no momento da escrita (23.10) funciona perfeitamente. +- Um entendimento básico da sintaxe C# – não é necessário conhecimento profundo de interop do Excel. + +Se você tem isso, vamos começar. + +--- + +## Etapa 1: Criar uma Pasta de Trabalho Excel em C# + +Primeiro, precisamos de um objeto workbook novo. Pense nele como o arquivo Excel vazio que eventualmente conterá nossa tabela. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is equivalent to opening a blank .xlsx file. +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (default) worksheet. +``` + +> **Dica profissional:** `Workbook()` sem argumentos cria um workbook com uma planilha padrão, o que é perfeito para demonstrações rápidas. Se precisar de várias planilhas, você pode adicioná‑las depois com `workbook.Worksheets.Add()`. + +--- + +## Etapa 2: Adicionar Dados às Células + +Agora vamos preencher a planilha com um pequeno conjunto de dados – duas colunas (Name, Score) e três linhas de valores. Isso demonstra **add data to cells** de forma limpa e legível. + +```csharp +// Header row +worksheet.Cells["A1"].PutValue("Name"); +worksheet.Cells["B1"].PutValue("Score"); + +// Data rows +worksheet.Cells["A2"].PutValue("Alice"); +worksheet.Cells["B2"].PutValue(85); +worksheet.Cells["A3"].PutValue("Bob"); +worksheet.Cells["B3"].PutValue(92); +``` + +Por que usar `PutValue`? Ele detecta automaticamente o tipo de dado (string vs. numérico) e formata a célula de acordo, poupando você de mexer com objetos `Style` em cenários simples. + +> **Saída esperada:** Após esta etapa, se você abrir o workbook no Excel verá uma grade de duas colunas com os cabeçalhos “Name” e “Score”, seguida por duas linhas de dados. + +--- + +## Etapa 3: Converter o Intervalo em um ListObject (Tabela) + +É aqui que a mágica acontece: transformar aquele intervalo simples em uma tabela Excel (chamada **ListObject** na API do Aspose.Cells). Isso não só adiciona estilo visual, mas também habilita recursos integrados como ordenação, filtragem e referências estruturadas. + +```csharp +// Define the range boundaries. +// startRow and startColumn are zero‑based indexes. +// rowCount includes the header row. +int startRow = 0; // Row 1 in Excel +int startColumn = 0; // Column A +int rowCount = 3; // Header + 2 data rows +int columnCount = 2; // Two columns: Name & Score + +// Add a ListObject to the worksheet and retrieve the object. +int listIndex = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); +ListObject table = worksheet.ListObjects[listIndex]; + +// Turn on the UI filter dropdowns so users can interact with the table. +table.ShowAutoFilter = true; +``` + +> **Por que usar um ListObject?** +> - **Referências estruturadas**: Fórmulas podem referir‑se a colunas pelo nome. +> - **Interface de Auto‑filtro**: Usuários obtêm setas suspensas para filtragem rápida. +> - **Estilização**: Você pode aplicar estilos de tabela incorporados com uma única linha depois. + +--- + +## Etapa 4: Remover a Interface de AutoFiltro (Salvar Excel Sem Filtro) + +Às vezes você precisa de uma planilha limpa sem setas de filtro – por exemplo, quando o workbook é um relatório final. O Aspose.Cells 23.10 introduziu uma maneira simples de remover completamente a interface de filtro. + +```csharp +// Remove the filter UI completely. +table.AutoFilter = null; // Clears the underlying filter object. +table.ShowAutoFilter = false; // Hides the dropdown arrows. +``` + +Observe que não estamos excluindo os dados; apenas desativamos os controles visuais de filtro. Isso atende ao requisito **save excel without filter**. + +--- + +## Etapa 5: Salvar o Workbook + +Finalmente, grave o workbook no disco. O arquivo conterá a tabela, mas sem nenhuma interface de filtro. + +```csharp +// Choose a folder you have write access to. +string outputPath = @"C:\Temp\NoAutoFilter.xlsx"; +workbook.Save(outputPath); +``` + +Abra `NoAutoFilter.xlsx` no Excel – você verá a tabela com formatação padrão, mas sem setas de filtro. Os dados permanecem intactos e o arquivo está pronto para distribuição. + +--- + +![Captura de tela mostrando criar tabela a partir de intervalo no Excel usando Aspose.Cells](image.png "Captura de tela de criar tabela a partir de intervalo") + +*Texto alternativo da imagem:* **Captura de tela mostrando criar tabela a partir de intervalo no Excel usando Aspose.Cells** – prova visual de que a tabela existe sem menus suspensos de filtro. + +--- + +## Exemplo Completo e Executável + +Abaixo está o programa completo que você pode copiar‑colar em um aplicativo console. Ele inclui todas as etapas acima, além de alguns comentários extras para clareza. + +```csharp +using System; +using Aspose.Cells; + +namespace AsposeTableDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add data to cells – this is the “add data to cells” part. + worksheet.Cells["A1"].PutValue("Name"); + worksheet.Cells["B1"].PutValue("Score"); + worksheet.Cells["A2"].PutValue("Alice"); + worksheet.Cells["B2"].PutValue(85); + worksheet.Cells["A3"].PutValue("Bob"); + worksheet.Cells["B3"].PutValue(92); + + // 3️⃣ Convert the range into a ListObject (i.e., create table from range). + int startRow = 0, startColumn = 0, rowCount = 3, columnCount = 2; + int listIdx = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); + ListObject table = worksheet.ListObjects[listIdx]; + table.ShowAutoFilter = true; // optional UI filter + + // 4️⃣ Remove the AutoFilter UI – “save excel without filter”. + table.AutoFilter = null; + table.ShowAutoFilter = false; + + // 5️⃣ Save the workbook. + string filePath = @"C:\Temp\NoAutoFilter.xlsx"; + workbook.Save(filePath); + + Console.WriteLine($"Workbook saved to {filePath}"); + } + } +} +``` + +Execute o programa, então abra `C:\Temp\NoAutoFilter.xlsx`. Você verá uma tabela bem formatada, sem setas de filtro, e os dados que inserimos. Esse é todo o fluxo de trabalho **create excel workbook c#** em menos de 60 linhas de código. + +--- + +## Perguntas Frequentes & Casos Limítrofes + +**Q: E se meu intervalo de dados não for contíguo?** +R: O Aspose.Cells requer um intervalo retangular para `ListObjects.Add`. Se você tem dados não contíguos, crie primeiro um intervalo temporário (por exemplo, copie as partes para uma nova planilha) e então converta esse intervalo. + +**Q: Posso aplicar um estilo de tabela personalizado?** +R: Absolutamente. Após criar o `ListObject`, defina `table.TableStyleType = TableStyleType.TableStyleMedium9;` (ou qualquer um dos 65 estilos incorporados). Essa é uma boa forma de fazer a tabela combinar com a identidade corporativa. + +**Q: Como mantenho o filtro mas oculto as setas?** +R: A lógica do filtro está em `table.AutoFilter`. Definir `ShowAutoFilter = false` apenas oculta a interface; o filtro subjacente permanece. Assim, você ainda pode filtrar linhas programaticamente depois. + +**Q: E quanto a grandes conjuntos de dados (10 mil+ linhas)?** +R: A mesma API funciona, mas considere desativar cálculos automáticos (`workbook.CalcEngine = false`) antes de inserções em massa para melhorar o desempenho, e habilite novamente depois. + +--- + +## Conclusão + +Acabamos de cobrir como **create table from range** em C# usando Aspose.Cells, passo a passo — desde **create excel workbook c#**, passando por **add data to cells**, até **convert range to ListObject**, e finalmente **save excel without filter**. O código está completo, executável e pronto para produção. + +A seguir, você pode querer explorar: + +- Adicionar formatação condicional para destacar as maiores pontuações. +- Exportar o workbook para PDF com `workbook.Save("Report.pdf", SaveFormat.Pdf);`. +- Usar `table.Columns["Score"].DataBodyRange.Sort` para ordenar a tabela programaticamente. + +Sinta‑se à vontade para experimentar diferentes conjuntos de dados, estilos de tabela ou até múltiplas planilhas. A API é flexível o suficiente para lidar com qualquer coisa, desde um pequeno placar até um enorme livro‑razão financeiro. + +Tem perguntas ou encontrou algum problema? Deixe um comentário abaixo ou me chame no GitHub. Boa codificação e aproveite transformar intervalos brutos em tabelas Excel refinadas! + +{{< /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/russian/net/conversion-to-pdf/_index.md b/cells/russian/net/conversion-to-pdf/_index.md index f22992e302..ecb1be8d9c 100644 --- a/cells/russian/net/conversion-to-pdf/_index.md +++ b/cells/russian/net/conversion-to-pdf/_index.md @@ -34,6 +34,8 @@ Aspose.Cells для .NET — это жемчужина, если вы работ Конвертируйте таблицы Excel в PDF легко с помощью Aspose.Cells для .NET! Следуйте нашему пошаговому руководству для беспроблемного использования. ### [Конвертировать диаграмму в PDF в .NET](./convert-chart-to-pdf/) Узнайте, как преобразовать диаграммы Excel в PDF в .NET с помощью Aspose.Cells с помощью этого пошагового руководства! Идеально подходит для программистов всех уровней. +### [Сохранить книгу в PDF с Aspose.Cells – Полное пошаговое руководство](./save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/) +Подробное руководство по сохранению рабочей книги Excel в PDF с помощью Aspose.Cells, шаг за шагом. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/russian/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md b/cells/russian/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md new file mode 100644 index 0000000000..8e5389850e --- /dev/null +++ b/cells/russian/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md @@ -0,0 +1,248 @@ +--- +category: general +date: 2026-03-30 +description: Узнайте, как сохранить рабочую книгу в формате PDF с помощью Aspose.Cells. + В этом руководстве также рассматривается экспорт листа в PDF, как экспортировать + Excel в PDF и создать PDF из листа. +draft: false +keywords: +- save workbook as pdf +- export worksheet to pdf +- how to export excel to pdf +- save excel as pdf +- create pdf from worksheet +language: ru +og_description: Легко сохраняйте книгу в PDF. В этом руководстве показано, как экспортировать + лист в PDF, как экспортировать Excel в PDF и как создать PDF из листа с помощью + C#. +og_title: Сохранить книгу Excel в PDF с помощью Aspose.Cells – Полное руководство +tags: +- Aspose.Cells +- C# +- PDF generation +title: Сохранить рабочую книгу в PDF с помощью Aspose.Cells – Полное пошаговое руководство +url: /ru/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Сохранить рабочую книгу в pdf – Полное пошаговое руководство + +Когда‑то вам нужно было **save workbook as pdf**, но вы не знали, какая библиотека сохранит ваши числа без искажений? Вы не одиноки. Во многих проектах требуется превратить данные Excel в аккуратный PDF, и правильный подход экономит часы отладки. + +В этом руководстве мы пройдём по точному коду, необходимому для **save workbook as pdf** с помощью Aspose.Cells, а также покажем, как **export worksheet to pdf**, ответим на вопросы *how to export excel to pdf* и продемонстрируем чистый способ **create pdf from worksheet** с пользовательскими настройками точности. + +К концу руководства у вас будет готовое консольное приложение C#, которое генерирует PDF, содержащий только значимые цифры, которые вам нужны. Никакого лишнего «мусора», только надёжное решение, готовое к продакшну. + +--- + +## Что вы узнаете + +- Как создать новый `Workbook` и выбрать его первый лист. +- Точный метод **save workbook as pdf** с сохранением числовой точности. +- Почему свойство `SignificantDigits` важно при **export worksheet to pdf**. +- Распространённые подводные камни при попытке **how to export excel to pdf** и как их избежать. +- Быстрые способы **save excel as pdf** с различными параметрами страниц и как **create pdf from worksheet** программно. + +### Предварительные требования + +- .NET 6.0 или новее (код также работает с .NET Framework 4.5+). +- Действительная лицензия Aspose.Cells (или бесплатная временная лицензия для тестов). +- Visual Studio 2022 или любой IDE, поддерживающий C#. + +Если у вас уже есть всё перечисленное, давайте приступать. + +--- + +## Шаг 1 – Установите Aspose.Cells и инициализируйте Workbook + +Первым делом: вам нужен пакет Aspose.Cells NuGet. Откройте терминал в папке проекта и выполните: + +```bash +dotnet add package Aspose.Cells +``` + +После установки пакета создайте новый объект `Workbook`. Это объект, который вы в конечном итоге **save workbook as pdf**. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialise a fresh workbook – think of it as a blank Excel file. + Workbook workbook = new Workbook(); + + // Grab the first worksheet (index 0). This is where we’ll put our data. + Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Зачем этот шаг?* +Создание рабочей книги даёт чистый холст, а выбор первого листа гарантирует работу с известным местоположением. Пропуск этого шага может привести к ошибкам *null reference*, когда позже вы попытаетесь **export worksheet to pdf**. + +--- + +## Шаг 2 – Вставьте данные высокой точности + +Теперь добавим число, у которого больше знаков после запятой, чем мы хотим показывать в PDF. Это демонстрирует, как настройка `SignificantDigits` обрезает вывод. + +```csharp + // Place a high‑precision number in cell A1. + worksheet.Cells["A1"].PutValue(1234.56789); +``` + +Если запустить программу сейчас и просто вызвать `workbook.Save("output.pdf")`, PDF отобразит полное `1234.56789`. Это приемлемо в некоторых случаях, но часто требуется округлить до определённого количества значимых цифр — особенно в финансовых отчётах. + +--- + +## Шаг 3 – Настройте параметры сохранения PDF + +Aspose.Cells предоставляет тонкую настройку через `PdfSaveOptions`. Нас интересует свойство `SignificantDigits`. Установка его в `4` сообщает движку сохранять только четыре значимые цифры при **save workbook as pdf**. + +```csharp + // Configure PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 // This trims the number to 1235 in the PDF. + }; +``` + +*Зачем использовать `SignificantDigits`?* +Когда вы **create pdf from worksheet**, часто нужно соблюдать регуляторные правила округления. Эта опция делает округление за вас, без необходимости вручную форматировать каждую ячейку. + +--- + +## Шаг 4 – Экспорт листа в PDF с указанными параметрами + +Настал момент истины: мы действительно **save workbook as pdf**, используя только что определённые параметры. + +```csharp + // Save the workbook as a PDF using the configured options. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + } +} +``` + +Запуск программы создаст файл `SignificantDigits.pdf` в папке вывода вашего проекта. Откройте его, и вы увидите `1235` в ячейке A1 — число округлено до четырёх значимых цифр. + +*Ключевой момент:* Метод `Save` принимает как путь к файлу, так и `PdfSaveOptions`. Если опции опустить, будет использовано поведение по умолчанию, которое может не удовлетворять требованиям точности. + +--- + +## Шаг 5 – Проверьте результат и устраните распространённые проблемы + +### Ожидаемый результат + +- Одностраничный PDF с именем `SignificantDigits.pdf`. +- Ячейка A1 отображает `1235` (четыре значимые цифры). +- Нет лишних листов или скрытого содержимого. + +### Часто задаваемые вопросы + +| Question | Answer | +|----------|--------| +| **What if I need more than one worksheet?** | Loop through `workbook.Worksheets` and apply the same `PdfSaveOptions` when you save each sheet individually, or set `OnePagePerSheet = true` in the options. | +| **Can I keep the original number format?** | Yes – set `PdfSaveOptions.AllColumnsInOnePage = true` and let Excel’s formatting rules handle it, but remember that `SignificantDigits` will still override the numeric precision. | +| **Does this work with .xlsx files that already exist?** | Absolutely. Replace `new Workbook()` with `new Workbook("input.xlsx")` and the rest of the code stays the same. | +| **What if the PDF is blank?** | Verify that the workbook actually contains data and that you’re saving to a writable directory. Also, ensure the Aspose.Cells license is correctly applied; an unlicensed trial may limit output. | + +### Pro Tip + +Если нужно **save excel as pdf** с определённой ориентацией страницы, установите `pdfSaveOptions.PageSetup.Orientation = PageOrientation.Landscape;` перед вызовом `Save`. Эта небольшая настройка часто избавляет от необходимости вручную корректировать PDF позже. + +--- + +## Вариации: экспорт нескольких листов или пользовательские настройки страниц + +### Экспорт всех листов одним вызовом + +```csharp +PdfSaveOptions allSheetsOptions = new PdfSaveOptions +{ + SignificantDigits = 4, + OnePagePerSheet = true // Each worksheet gets its own page. +}; + +workbook.Save("AllSheets.pdf", allSheetsOptions); +``` + +### Экспорт отдельного листа в PDF + +Если требуется **export worksheet to pdf** только для конкретного листа, используйте метод `ToPdf` объекта `Worksheet`: + +```csharp +Worksheet sheet = workbook.Worksheets["Sheet2"]; +sheet.ToPdf("Sheet2.pdf", pdfSaveOptions); +``` + +### Настройка полей страницы + +```csharp +pdfSaveOptions.PageSetup.TopMargin = 20; +pdfSaveOptions.PageSetup.BottomMargin = 20; +``` + +Эти правки позволяют точно настроить конечный документ без постобработки. + +--- + +## Полный рабочий пример + +Ниже полностью готовая к копированию и вставке программа, включающая всё обсуждённое. Сохраните её как `Program.cs` и запустите `dotnet run`. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and select the first worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Insert a high‑precision number. + worksheet.Cells["A1"].PutValue(1234.56789); + + // 3️⃣ Set PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 + }; + + // 4️⃣ Save the workbook as PDF. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + + // Optional: Export another sheet with custom settings. + // Worksheet sheet2 = workbook.Worksheets.Add("Report"); + // sheet2.Cells["B2"].PutValue(9876.54321); + // sheet2.ToPdf("Report.pdf", pdfSaveOptions); + } +} +``` + +**Результат:** Откройте `SignificantDigits.pdf` — вы увидите округлённое значение `1235`. Размер файла скромный, а макет соответствует оригинальному листу Excel. + +--- + +## Заключение + +Мы только что показали, как **save workbook as pdf** с помощью Aspose.Cells, охватив всё от базовой настройки до продвинутых опций, таких как **export worksheet to pdf**, **how to export excel to pdf** и **create pdf from worksheet** с точным контролем чисел. + +Подход прост, требует лишь несколько строк C#, и работает во всех версиях .NET. Далее вы можете исследовать добавление заголовков/нижних колонтитулов, встраивание изображений или генерацию PDF из шаблонов — всё это строится на уже созданном фундаменте. + +Есть идея, которую хотите попробовать? Может, нужно защитить PDF паролем или объединить несколько PDF‑файлов. Это естественные расширения, и API Aspose.Cells готово поддержать их. Погружайтесь, экспериментируйте, и позвольте библиотеке выполнить тяжёлую работу. + +--- + +![save workbook as pdf screenshot](/images/save-workbook-as-pdf.png){alt="пример save workbook as pdf, показывающий сгенерированный 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/russian/net/converting-excel-files-to-other-formats/_index.md b/cells/russian/net/converting-excel-files-to-other-formats/_index.md index 8211f13e09..793c5852ca 100644 --- a/cells/russian/net/converting-excel-files-to-other-formats/_index.md +++ b/cells/russian/net/converting-excel-files-to-other-formats/_index.md @@ -44,26 +44,40 @@ Aspose.Cells для .NET упрощает преобразование доку ## Учебные пособия по конвертации файлов Excel в другие форматы ### [Программное преобразование CSV в JSON в .NET](./converting-csv-to-json/) Узнайте, как преобразовать CSV в JSON в .NET с помощью Aspose.Cells. Пошаговое руководство по преобразованию данных с простыми для понимания примерами кода. + ### [Программное преобразование файла Excel в DOCX в .NET](./converting-excel-file-to-docx/) Узнайте, как программно преобразовать файлы Excel в DOCX с помощью Aspose.Cells для .NET в этом пошаговом руководстве. Идеально подходит для создания отчетов и обмена данными. + ### [Преобразование файла Excel в HTML с подсказкой в .NET](./converting-excel-file-to-html-with-tooltip/) Конвертируйте Excel в HTML с подсказками с помощью Aspose.Cells для .NET за несколько простых шагов. Улучшите свои веб-приложения с помощью интерактивных данных Excel без усилий. + ### [Программное преобразование файла Excel в Markdown в .NET](./converting-excel-file-to-markdown/) Узнайте, как преобразовать файлы Excel в формат Markdown с помощью Aspose.Cells для .NET в этом подробном пошаговом руководстве. Повысьте производительность с помощью простого преобразования файлов. + ### [Преобразование файла Excel в PDF (A-1a) программным способом в .NET](./converting-excel-file-to-pdf-a-1a/) Узнайте, как преобразовать файлы Excel в PDF/A-1a для архивных целей с помощью Aspose.Cells для .NET. Пошаговое руководство с включенными примерами кода. + ### [Программное преобразование JSON в CSV в .NET](./converting-json-to-csv/) Узнайте, как преобразовать JSON в CSV программным способом в .NET с помощью Aspose.Cells. Следуйте нашему пошаговому руководству, чтобы обеспечить бесперебойное преобразование данных. + ### [Программное преобразование файла Excel в PPTX в .NET](./converting-excel-file-to-pptx/) Узнайте, как преобразовать файл Excel в презентацию PowerPoint (PPTX) программным способом с помощью Aspose.Cells для .NET, следуя этому пошаговому руководству. + +### [Создание PowerPoint из Excel – пошаговое руководство C#](./create-powerpoint-from-excel-step-by-step-c-guide/) +Узнайте, как программно создавать презентации PowerPoint из файлов Excel с помощью 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/) Узнайте, как читать электронные таблицы Numbers и конвертировать их в PDF с помощью Aspose.Cells для .NET в этом подробном руководстве. + ### [Сохранение рабочей книги в строгом формате электронной таблицы Open XML в .NET](./saving-workbook-to-strict-open-xml-spreadsheet-format/) В этом подробном руководстве вы узнаете, как сохранить книгу в формате Strict Open XML Spreadsheet с помощью Aspose.Cells для .NET. + ### [Отслеживание процесса преобразования документа программным способом в .NET](./tracking-document-conversion-progress/) описание: Узнайте, как программно отслеживать ход преобразования документа с помощью Aspose.Cells для .NET в этом подробном руководстве. + ### [Отслеживание процесса преобразования документа в формат TIFF программным способом в .NET](./tracking-document-conversion-progress-for-tiff/) Научитесь отслеживать ход преобразования TIFF программно с помощью Aspose.Cells для .NET с помощью нашего пошагового руководства. Улучшите свои навыки управления документами. diff --git a/cells/russian/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md b/cells/russian/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md new file mode 100644 index 0000000000..6d2471e967 --- /dev/null +++ b/cells/russian/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md @@ -0,0 +1,254 @@ +--- +category: general +date: 2026-03-30 +description: Создайте презентацию PowerPoint из Excel быстро с помощью Aspose.Cells + и Aspose.Slides. Узнайте, как экспортировать лист как изображение и сохранить презентацию + в формате PPTX на C#. +draft: false +keywords: +- create powerpoint from excel +- convert excel to powerpoint +- export worksheet as image +- save presentation as pptx +- export excel chart as picture +language: ru +og_description: Создайте PowerPoint из Excel на C# с помощью Aspose. Экспортируйте + лист как изображение, оставьте формы редактируемыми и сохраните результат в формате + PPTX. +og_title: Создайте PowerPoint из Excel — Полный учебник по C# +tags: +- Aspose +- C# +- Office Automation +title: Создание PowerPoint из Excel — пошаговое руководство на C# +url: /ru/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Создание PowerPoint из Excel – Полный C#‑урок + +Когда‑то вам нужно **создать PowerPoint из Excel**, но вы не знаете, какая библиотека позволит сохранить диаграммы редактируемыми? Вы не одиноки. Во многих сценариях отчётности требуется превратить таблицу в набор слайдов, не теряя возможности позже поправить текстовые поля. В этом руководстве показано, как **конвертировать Excel в PowerPoint** с помощью Aspose.Cells и Aspose.Slides, а также как **экспортировать лист как изображение** и, наконец, **сохранить презентацию в формате PPTX**. + +Мы пройдёмся по каждой строке кода, объясним *почему* каждое настройка важна и обсудим, что делать, если ваша книга содержит сложные диаграммы, которые лучше экспортировать как картинку. К концу вы получите готовое к запуску консольное приложение C#, которое берёт `ShapesDemo.xlsx` и выдаёт `Result.pptx` — все текстовые поля остаются редактируемыми, а изображения чёткими. + +## Что понадобится + +- .NET 6.0 или новее (API также работает с .NET Framework, но .NET 6 — оптимальный вариант). +- NuGet‑пакеты **Aspose.Cells** и **Aspose.Slides** (для тестирования подойдёт бесплатная пробная лицензия). +- Базовое знакомство с синтаксисом C# — если вы умеете писать `Console.WriteLine`, вам достаточно. + +Никакого дополнительного COM‑interop, без установки Office на сервере и без ручного копирования‑вставки изображений. Всё делается программно. + +--- + +## Создание PowerPoint из Excel – Загрузка книги и настройка параметров экспорта + +Первое, что мы делаем, — открываем файл Excel и указываем Aspose.Cells, как должен быть отрисован лист. Объект `ImageOrPrintOptions` — это место, где происходит магия: мы включаем `ExportShapes` и `ExportEditableTextBoxes`, чтобы любые фигуры (включая диаграммы) стали частью слайда **и** оставались редактируемыми после конвертации. + +```csharp +using Aspose.Cells; +using Aspose.Slides; + +// 1️⃣ Load the Excel workbook +string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; +Workbook workbook = new Workbook(excelPath); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first sheet + +// 2️⃣ Configure image export – keep shapes editable +ImageOrPrintOptions imageOptions = new ImageOrPrintOptions +{ + OnePagePerSheet = true, // Export the whole sheet as one slide + ExportShapes = true, // Include shapes (charts, drawings) + ExportEditableTextBoxes = true // Make text boxes editable in PPTX +}; +``` + +**Зачем эти флаги?** +- `OnePagePerSheet` предотвращает разбивку листа на несколько слайдов — вы получаете одну картинку полного размера. +- `ExportShapes` заставляет Aspose.Cells растеризовать диаграммы *и* векторные фигуры, сохраняя их внешний вид. +- `ExportEditableTextBoxes` — секретный ингредиент, позволяющий дважды кликнуть по текстовому полю в PowerPoint и отредактировать текст без открытия Excel. + +> **Pro tip:** Если вам нужна только статичная картинка диаграммы, установите `ExportShapes = false` и позже используйте метод `ExportExcelChartAsPicture` (см. завершающий раздел). + +--- + +## Конвертация Excel в PowerPoint – Генерация изображения из листа + +С готовыми параметрами мы превращаем лист в `System.Drawing.Image`. Класс `WorksheetToImageConverter` делает всю тяжёлую работу, применяя только что заданные настройки. + +```csharp +// 3️⃣ Convert the worksheet to an image using the options above +WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); +System.Drawing.Image sheetImage = converter.ConvertToImage(0, imageOptions); +``` + +Аргумент `0` указывает на первую страницу (у нас только одна из‑за `OnePagePerSheet`). Полученный `sheetImage` сохраняет исходное DPI, поэтому ваш слайд не будет выглядеть пиксельным даже на дисплеях с высоким разрешением. + +--- + +## Сохранение презентации в PPTX – Вставка изображения на слайд + +Теперь создаём новый файл PowerPoint, добавляем слайд и помещаем битмап на него. Aspose.Slides рассматривает картинку как форму *picture frame*, которую позже можно масштабировать или перемещать так же, как любой нативный объект PowerPoint. + +```csharp +// 4️⃣ Create a new PowerPoint presentation +Presentation presentation = new Presentation(); +ISlide slide = presentation.Slides[0]; // The default blank slide + +// Add the Excel‑derived image as a picture frame +slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, // Simple rectangle container + 0, 0, // Top‑left corner (0,0) + sheetImage.Width, // Width of the picture + sheetImage.Height, // Height of the picture + sheetImage); // The bitmap we generated +``` + +> **Что делать, если изображение больше размеров слайда?** +> PowerPoint автоматически обрежет всё, что выходит за пределы слайда. Быстрое решение — масштабировать изображение перед вставкой: + +```csharp +float scale = Math.Min(presentation.SlideSize.Size.Width / (float)sheetImage.Width, + presentation.SlideSize.Size.Height / (float)sheetImage.Height); +int newWidth = (int)(sheetImage.Width * scale); +int newHeight = (int)(sheetImage.Height * scale); +``` + +Затем передайте `newWidth` и `newHeight` в `AddPictureFrame`. + +--- + +## Экспорт листа как изображения – Сохранение файла PPTX + +Наконец, сохраняем презентацию на диск. Флаг `SaveFormat.Pptx` гарантирует современный формат OpenXML, который работает во всех последних версиях PowerPoint. + +```csharp +// 5️⃣ Save the presentation as a PPTX file +string pptxPath = "YOUR_DIRECTORY/Result.pptx"; +presentation.Save(pptxPath, SaveFormat.Pptx); +``` + +Когда откроете `Result.pptx`, вы увидите один слайд, полностью копирующий ваш лист Excel, но при этом сможете кликнуть по любому текстовому полю и отредактировать его прямо в PowerPoint. + +--- + +## Экспорт диаграммы Excel как картинки – Когда предпочтительны растровые изображения + +Иногда редактируемые фигуры не нужны; достаточно качественного PNG‑изображения диаграммы. Aspose.Cells может экспортировать конкретную диаграмму в изображение без конвертации всего листа: + +```csharp +// Example: Export the first chart on the sheet as a PNG +int chartIndex = 0; // Adjust if you have multiple charts +Chart chart = worksheet.Charts[chartIndex]; +ImageOrPrintOptions chartOptions = new ImageOrPrintOptions +{ + ImageFormat = ImageFormat.Png, + OnePagePerSheet = false +}; +chart.ToImage("chart.png", chartOptions); +``` + +Затем можно вставить `chart.png` в слайд тем же способом, что и `sheetImage`. Такой подход уменьшает размер файла PPTX и полезен, когда окружающие данные не требуются на слайде. + +--- + +## Распространённые подводные камни и как их избежать + +| Проблема | Почему происходит | Как исправить | +|----------|-------------------|---------------| +| **Текст выглядит размытым** | Экспорт выполнен с низким DPI (по умолчанию 96). | Установите `imageOptions.Dpi = 300;` перед конвертацией. | +| **Фигуры исчезают** | `ExportShapes` оставлен `false`. | Убедитесь, что `ExportShapes = true`, когда нужны редактируемые графики. | +| **Несоответствие размеров слайда** | Изображение больше размеров слайда. | Масштабируйте изображение (см. фрагмент кода) или измените размер слайда через `presentation.SlideSize`. | +| **Исключение лицензии** | Используется пробная версия без активации. | В начале `Main` вызовите `License license = new License(); license.SetLicense("Aspose.Total.lic");`. | + +--- + +## Полный рабочий пример (готов к копированию) + +Ниже представлен весь код программы, готовый к вставке в новый консольный проект. Замените `YOUR_DIRECTORY` на папку, где находится ваш файл Excel. + +```csharp +using System; +using Aspose.Cells; +using Aspose.Slides; +using System.Drawing; + +namespace ExcelToPowerPointDemo +{ + class Program + { + static void Main(string[] args) + { + // ----------------------------------------------------------------- + // 1️⃣ Load the Excel workbook + // ----------------------------------------------------------------- + string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; + Workbook workbook = new Workbook(excelPath); + Worksheet worksheet = workbook.Worksheets[0]; + + // ----------------------------------------------------------------- + // 2️⃣ Set up export options – keep shapes editable + // ----------------------------------------------------------------- + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + OnePagePerSheet = true, + ExportShapes = true, + ExportEditableTextBoxes = true, + Dpi = 300 // High‑resolution output + }; + + // ----------------------------------------------------------------- + // 3️⃣ Convert worksheet to an image + // ----------------------------------------------------------------- + WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); + Image sheetImage = converter.ConvertToImage(0, imageOptions); + + // ----------------------------------------------------------------- + // 4️⃣ Create PowerPoint and add the image as a slide + // ----------------------------------------------------------------- + Presentation presentation = new Presentation(); + ISlide slide = presentation.Slides[0]; + slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, + 0, 0, + sheetImage.Width, + sheetImage.Height, + sheetImage); + + // ----------------------------------------------------------------- + // 5️⃣ Save the PPTX file + // ----------------------------------------------------------------- + string pptxPath = "YOUR_DIRECTORY/Result.pptx"; + presentation.Save(pptxPath, SaveFormat.Pptx); + + Console.WriteLine("✅ PowerPoint created successfully at: " + pptxPath); + } + } +} +``` + +**Ожидаемый вывод:** +При запуске программа выводит `✅ PowerPoint created successfully at: YOUR_DIRECTORY/Result.pptx`. Открытие PPTX показывает один слайд, отражающий оригинальный лист Excel, с редактируемыми текстовыми полями. + +--- + +## Итоги и дальнейшие шаги + +Теперь вы знаете, как **создавать PowerPoint из Excel** с помощью мощных API Aspose, как **экспортировать лист как изображение** и как **сохранять презентацию в PPTX**, сохраняя возможность редактирования. Та же схема работает и с книгами, содержащими несколько листов — просто пройдитесь в цикле по `workbook.Worksheets` и добавляйте новый слайд для каждого листа. + +**Что изучать дальше?** + +- **Пакетная конверсия:** Обход папки с Excel‑файлами и генерация наборов слайдов для каждого. +- **Динамические макеты:** Используйте `slide.LayoutSlide` для применения заранее подготовленных шаблонов PowerPoint. +- **Экспорт только диаграмм:** Сочетайте фрагмент «Export Excel chart as picture» с заполнителями слайдов для более лёгкой презентации. +- **Продвинутая стилизация:** Добавляйте пользовательские фоны слайдов, переходы или анимацию через Aspose.Slides. + +Экспериментируйте — изменяйте DPI, заменяйте `ShapeType.Ellipse` на круглую рамку для изображения, или даже вставляйте несколько картинок на один слайд. Возможности безграничны, когда у вас есть программный контроль над + +{{< /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/russian/net/document-properties/_index.md b/cells/russian/net/document-properties/_index.md index 1a081ca4e1..6db2fd7690 100644 --- a/cells/russian/net/document-properties/_index.md +++ b/cells/russian/net/document-properties/_index.md @@ -35,6 +35,8 @@ Узнайте, как получить доступ к свойствам документа в Excel с помощью Aspose.Cells для .NET с помощью нашего пошагового руководства. Управляйте своими электронными таблицами эффективно. ### [Добавление свойств документа в .NET](./adding-document-properties/) Узнайте, как добавлять свойства документа в Excel с помощью Aspose.Cells для .NET, с помощью этого подробного пошагового руководства. +### [Как сохранить XLSB с пользовательскими свойствами в C# – пошаговое руководство](./how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/) +Узнайте, как сохранить файл XLSB с пользовательскими свойствами в C# с помощью Aspose.Cells для .NET, следуя пошаговому руководству. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/russian/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md b/cells/russian/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md new file mode 100644 index 0000000000..55987473ef --- /dev/null +++ b/cells/russian/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md @@ -0,0 +1,232 @@ +--- +category: general +date: 2026-03-30 +description: Узнайте, как сохранять XLSB в C#, добавляя пользовательское свойство, + считывать его обратно и освоить сохранение книги в формате XLSB с помощью Aspose.Cells. + Полный код включён. +draft: false +keywords: +- how to save xlsb +- add custom property +- how to add property +- how to read property +- save workbook as xlsb +language: ru +og_description: Как сохранить XLSB в C#? Этот учебник показывает, как добавить пользовательское + свойство, прочитать его обратно и сохранить книгу в формате XLSB с помощью Aspose.Cells. +og_title: Как сохранить XLSB с пользовательскими свойствами в C# – Полное руководство +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Как сохранить XLSB с пользовательскими свойствами в C# — пошаговое руководство +url: /ru/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Как сохранить XLSB с пользовательскими свойствами в C# – Пошаговое руководство + +Когда‑нибудь задумывались **как сохранить XLSB**, сохранив при этом дополнительные метаданные, привязанные к листу? Вы не одиноки. Во многих корпоративных сценариях нужен бинарный файл Excel, который всё ещё содержит ваши собственные пары ключ/значение — например, идентификатор контракта, флаг обработки или тег версии. + +Хорошая новость в том, что Aspose.Cells делает это проще простого. В этом руководстве вы увидите, как добавить пользовательское свойство, сохранить его и затем прочитать, при этом **сохраняя книгу в формате XLSB**. Никаких расплывчатых ссылок, только полностью готовый к запуску пример, который вы можете сразу добавить в свой проект. + +## Что вы получите в результате + +- Свежий файл `.xlsb`, созданный с нуля. +- Возможность **добавлять пользовательские свойства** к листу. +- Код, демонстрирующий **как читать свойство** после перезагрузки файла. +- Советы по подводным камням, которые могут возникнуть при **сохранении книги как XLSB**. + +> **Prerequisites:** .NET 6+ (или .NET Framework 4.6+), Visual Studio (или любой IDE для C#) и библиотека Aspose.Cells for .NET, установленная через NuGet. Больше ничего не требуется. + +--- + +## Шаг 1: Настройте проект и создайте новую книгу + +Сначала получим чистый объект книги. + +```csharp +using Aspose.Cells; +using System; + +// Initialize a new workbook; this will be an in‑memory Excel file. +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0) – it’s created automatically. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Почему это важно:* `Workbook` — точка входа для любой операции в Aspose.Cells. Начав с полностью нового экземпляра, вы избегаете скрытого состояния, которое могло бы испортить ваши пользовательские метаданные позже. + +--- + +## Шаг 2: **Добавить пользовательское свойство** к листу + +Теперь прикрепим пару ключ/значение, которая существует только на этом листе. + +```csharp +// Add a user‑defined property called "MyProperty" with the value "CustomValue". +worksheet.CustomProperties.Add("MyProperty", "CustomValue"); +``` + +> **Pro tip:** Имена свойств чувствительны к регистру. Если позже попытаться получить `"myproperty"`, вы получите `KeyNotFoundException`. Придерживайтесь единого стиля именования — camelCase или PascalCase — с самого начала. + +--- + +## Шаг 3: **Сохранить книгу как XLSB** – Сериализация свойства + +Магия происходит, когда вы записываете книгу в бинарный формат XLSB. + +```csharp +// Define the output path. Adjust the folder to something writable on your machine. +string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + +// Save the workbook; the custom property travels with the file. +workbook.Save(outputPath, SaveFormat.Xlsb); +``` + +*Что вы на самом деле делаете:* Перечисление `SaveFormat.Xlsb` указывает Aspose.Cells вывести бинарный файл Excel (быстрее открывается, меньше по размеру). Все пользовательские свойства уровня листа сериализуются автоматически — дополнительных действий не требуется. + +--- + +## Шаг 4: Перезагрузите файл и **как прочитать свойство** + +Давайте проверим, что свойство выжило после кругового перехода. + +```csharp +// Load the just‑saved XLSB file back into memory. +Workbook reloadedWorkbook = new Workbook(outputPath); + +// Access the same worksheet (index 0) and fetch the property value. +string customValue = reloadedWorkbook.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); +``` + +Если всё прошло гладко, `customValue` теперь содержит `"CustomValue"`. + +--- + +## Шаг 5: Проверка результата – Быстрый вывод в консоль + +Небольшая проверка помогает во время разработки. + +```csharp +Console.WriteLine($"Custom property value: {customValue}"); +``` + +Запуск программы должен вывести: + +``` +Custom property value: CustomValue +``` + +Появление этой строки означает, что вы успешно освоили **как сохранить XLSB**, **добавить пользовательское свойство** и **как прочитать свойство** — всё в одном аккуратном процессе. + +--- + +## Полный рабочий пример (готов к копированию) + +Ниже представлен весь код программы. Вставьте его в новый консольный проект, нажмите **F5** и наблюдайте, как консоль подтверждает значение свойства. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // 1️⃣ Create a new workbook and get its first sheet + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // 2️⃣ Add a custom property (key/value) to the sheet + // ------------------------------------------------- + worksheet.CustomProperties.Add("MyProperty", "CustomValue"); + + // ------------------------------------------------- + // 3️⃣ Save the workbook as XLSB – the property is kept + // ------------------------------------------------- + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(outputPath, SaveFormat.Xlsb); + + // ------------------------------------------------- + // 4️⃣ Reload the saved file to demonstrate persistence + // ------------------------------------------------- + Workbook reloaded = new Workbook(outputPath); + + // ------------------------------------------------- + // 5️⃣ Retrieve the custom property's value + // ------------------------------------------------- + string customValue = reloaded.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); + + // ------------------------------------------------- + // 6️⃣ Display the retrieved value (optional) + // ------------------------------------------------- + Console.WriteLine($"Custom property value: {customValue}"); + } +} +``` + +> **Remember:** Измените `outputPath` на папку, в которую у вас есть права записи. Если вы работаете в Linux/macOS, используйте путь вроде `"/tmp/WithCustomProp.xlsb"`. + +--- + +## Часто задаваемые вопросы и особые случаи + +### Что делать, если свойство уже существует? +Вызов `Add` с уже существующим ключом бросает `ArgumentException`. Используйте `ContainsKey` или оберните вызов в `try/catch`, если не уверены. + +```csharp +if (!worksheet.CustomProperties.ContainsKey("MyProperty")) +{ + worksheet.CustomProperties.Add("MyProperty", "AnotherValue"); +} +``` + +### Можно ли хранить значения не‑строкового типа? +Конечно. Свойство `Value` принимает любой `object`. Для чисел, дат или логических значений просто передайте соответствующий тип — Aspose.Cells выполнит преобразование при чтении. + +### Выживает ли свойство при конвертации в XLSX? +Да. Пользовательские свойства являются частью XML‑представления листа, поэтому они сохраняются при переходе между форматами XLSX, XLS и XLSB. + +### Как **добавить свойство** к нескольким листам? +Пройдитесь по коллекции `Worksheets` и выполните тот же вызов `CustomProperties.Add` для каждого нужного листа. + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + ws.CustomProperties.Add("ExportedBy", "MyApp"); +} +``` + +### Совет по производительности при **сохранении книг как XLSB** массово +Если вы генерируете сотни файлов, переиспользуйте один экземпляр `Workbook` и вызывайте `Clear` после каждого сохранения, чтобы освободить память. Кроме того, установите `Workbook.Settings.CalculateFormulaOnOpen = false`, если вам не требуется вычислять формулы при загрузке. + +--- + +## Заключение + +Теперь вы знаете **как сохранить XLSB** в C# с внедрением и последующим извлечением пользовательского свойства с помощью Aspose.Cells. Полное решение — создание книги, добавление свойства, сохранение её через **save workbook as XLSB**, повторная загрузка и чтение значения — укладывается в менее чем 50 строк кода. + +Дальше вы можете исследовать: + +- Добавление нескольких пользовательских свойств на лист. +- Хранение сложных объектов в виде JSON‑строк. +- Шифрование файла XLSB для дополнительной безопасности. + +Попробуйте эти идеи, и вы быстро станете главным специалистом по автоматизации Excel в своей команде. Есть вопросы или сложный сценарий? Оставляйте комментарий ниже, и удачной разработки! + +![Как сохранить XLSB с пользовательским свойством](/images/how-to-save-xlsb.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/russian/net/excel-copy-worksheet/_index.md b/cells/russian/net/excel-copy-worksheet/_index.md index 8304aae2d9..5eadb59c08 100644 --- a/cells/russian/net/excel-copy-worksheet/_index.md +++ b/cells/russian/net/excel-copy-worksheet/_index.md @@ -42,6 +42,7 @@ Aspose.Cells for .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. | +| [Как скопировать рабочий лист в C# с Aspose.Cells – Полное руководство](./how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/) | Подробное руководство по копированию листов Excel в C# с использованием Aspose.Cells, включая примеры кода и лучшие практики. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/russian/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md b/cells/russian/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md new file mode 100644 index 0000000000..0ea19e39f2 --- /dev/null +++ b/cells/russian/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md @@ -0,0 +1,268 @@ +--- +category: general +date: 2026-03-30 +description: Как копировать лист в C# с помощью Aspose.Cells — пошаговое руководство, + охватывающее копирование диапазона ячеек, копирование столбцов между листами, копирование + сводной таблицы листа и добавление кода нового листа. +draft: false +keywords: +- how to copy worksheet +- copy cell range +- copy columns between sheets +- copy worksheet pivot table +- add new worksheet code +language: ru +og_description: Узнайте, как копировать лист в C# с помощью Aspose.Cells. Это руководство + показывает, как копировать диапазон ячеек, сохранять сводные таблицы, копировать + столбцы между листами и добавлять код нового листа. +og_title: Как скопировать лист в C# – Полный учебник Aspose.Cells +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Как скопировать лист в C# с помощью Aspose.Cells – Полное руководство +url: /ru/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Как скопировать лист в C# с помощью Aspose.Cells – Полное руководство + +Когда‑нибудь задумывались **how to copy worksheet** в C# без потери единой сводной таблицы или формулы? Вы не одиноки — многие разработчики сталкиваются с проблемой, когда нужно дублировать лист, сохранив все детали. В этом руководстве мы пройдем практическое, сквозное решение, которое не только копирует данные, но и сохраняет **copy worksheet pivot table**, обрабатывает **copy cell range** и показывает **add new worksheet code**, который вам понадобится. + +Мы охватим всё от загрузки исходной книги до сохранения файла назначения, чтобы вы могли copy columns between sheets, сохранять объекты и поддерживать чистоту кода. Без расплывчатых ссылок, только полноценный, исполняемый пример, который вы можете сразу добавить в свой проект. + +## Что покрывает этот учебник + +- Загрузка существующего Excel‑файла с помощью Aspose.Cells +- Использование **add new worksheet code** для создания целевого листа +- Определение **copy cell range**, включающего сводную таблицу +- Настройка **CopyOptions** для сохранения диаграмм, формул и сводных таблиц без изменений +- Выполнение **copy columns between sheets** с точностью по строкам +- Сохранение результата и проверка корректности копирования листа + +К концу этого руководства вы сможете уверенно ответить на вопрос «how to copy worksheet», независимо от того, автоматизируете ли вы отчёты или создаёте пользовательский интерфейс, управляемый электронными таблицами. + +## Как скопировать лист – Обзор + +Прежде чем погрузиться в код, давайте очертим общий процесс. Представьте его как рецепт: + +1. **Load** исходную книгу (`Source.xlsx`). +2. **Add** новый лист для размещения копии (`add new worksheet code`). +3. **Define** область, которую нужно дублировать (`copy cell range`). +4. **Configure** параметры копирования, чтобы сводная таблица сохранилась (`copy worksheet pivot table`). +5. **Copy** строки и столбцы (`copy columns between sheets`). +6. **Save** новую книгу (`Destination.xlsx`). + +Вот и всё — шесть шагов, без магии. Каждый шаг объясняется ниже с фрагментами кода и обоснованием. + +## Шаг 1 – Загрузка исходной книги + +Первое и главное: вам нужен экземпляр `Workbook`, указывающий на файл, который вы хотите дублировать. Этот шаг важен, потому что Aspose.Cells работает напрямую с файловой системой, а не с пользовательским интерфейсом Office. + +```csharp +using Aspose.Cells; + +// Path to the original file +string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; +string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + +// Load the workbook – this is the starting point for how to copy worksheet +Workbook workbook = new Workbook(sourcePath); +``` + +*Why this matters:* Загрузка файла создаёт в‑памяти представление каждого листа, ячейки и объекта. Без этого нечего копировать, и любая попытка выполнить `add new worksheet code` позже завершится неудачей, поскольку исходные данные отсутствуют. + +## Шаг 2 – Добавление нового листа (add new worksheet code) + +Теперь нам нужно место для вставки скопированных данных. Здесь проявляется сила **add new worksheet code**. Вы можете назвать лист как угодно; в данном примере мы назвали его `"Copy"`. + +```csharp +// Grab the first worksheet (the one we want to copy) +Worksheet sourceSheet = workbook.Worksheets[0]; + +// Add a fresh worksheet to receive the copy +Worksheet copySheet = workbook.Worksheets.Add("Copy"); +``` + +*Pro tip:* Если вы планируете копировать несколько листов, вызывайте `Worksheets.Add` внутри цикла и присваивайте каждому листу уникальное имя. Так вы избежите конфликтов имён и поддержите порядок в книге. + +## Шаг 3 – Определение диапазона копируемых ячеек + +**copy cell range** указывает Aspose.Cells точно, какие строки и столбцы дублировать. Во многих реальных сценариях диапазон включает сводную таблицу, поэтому необходимо быть точным. + +```csharp +// Define the area that contains the pivot table (A1:G20) +CellArea sourceRange = new CellArea +{ + StartRow = 0, // Row 1 (zero‑based) + StartColumn = 0, // Column A + EndRow = 19, // Row 20 + EndColumn = 6 // Column G +}; + +// Destination range – we start at the same top‑left corner +CellArea destinationRange = new CellArea +{ + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 +}; +``` + +*Why we need this:* Явно указывая диапазон, вы избегаете копирования всего листа (что может быть неэкономично) и гарантируете, что сводная таблица находится внутри копируемой области. Это суть **how to copy worksheet**, когда нужен только часть листа. + +## Шаг 4 – Настройка параметров копирования (preserve copy worksheet pivot table) + +Aspose.Cells предоставляет объект `CopyOptions`, который управляет тем, что будет вставлено. Чтобы сохранить сводную таблицу, диаграммы и формулы, мы устанавливаем `PasteType.All` и включаем `PasteSpecial`. + +```csharp +CopyOptions copyOptions = new CopyOptions +{ + PasteType = PasteType.All, // Copy everything: values, formats, objects + PasteSpecial = true // Enable special paste to retain pivot tables +}; +``` + +*Explanation:* `PasteType.All` — самый всеобъемлющий вариант, а `PasteSpecial` указывает движку правильно обрабатывать сложные объекты, такие как сводные таблицы. Пропуск этого шага — распространённая ошибка; скопированный лист потеряет интерактивные функции. + +## Шаг 5 – Копирование строк и столбцов (copy columns between sheets) + +Теперь начинается самая сложная часть: фактическое перемещение данных. Мы будем использовать `CopyRows` и `CopyColumns` для обработки **copy columns between sheets**. Выполнение обоих действий гарантирует сохранение объединённых ячеек и ширины столбцов. + +```csharp +// Copy rows from the source to the destination sheet +sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + +// Copy columns from the source to the destination sheet +sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); +``` + +*What’s happening:* `CopyRows` перемещает данные построчно, а `CopyColumns` — постолбцово. Выполнение обоих гарантирует дублирование всего прямоугольного блока, что необходимо, когда нужно **copy columns between sheets** с разной шириной столбцов или скрытыми столбцами. + +## Шаг 6 – Сохранение книги + +Наконец, запишите изменения обратно на диск. Этот шаг завершает процесс **how to copy worksheet**. + +```csharp +// Save the workbook with the newly copied sheet +workbook.Save(destinationPath); +``` + +*Verification tip:* Откройте `Destination.xlsx` и проверьте, что лист `"Copy"` выглядит идентично оригиналу, сводные таблицы работают, а ширина столбцов совпадает. Если что‑то выглядит неправильно, пересмотрите настройки `CopyOptions`. + +## Особые случаи и распространённые варианты + +### Копирование нескольких листов + +Если нужно дублировать несколько листов, оберните вышеописанную логику в цикл `foreach`: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + Worksheet newWs = workbook.Worksheets.Add(ws.Name + "_Copy"); + // Re‑use sourceRange/destinationRange or calculate per sheet + // Then call CopyRows/CopyColumns as shown earlier +} +``` + +### Сохранение формул между разными книгами + +Если у исходной и целевой книг разные именованные диапазоны, установите `copyOptions` в `PasteType.Formulas` в дополнение к `All`: + +```csharp +copyOptions.PasteType = PasteType.All | PasteType.Formulas; +``` + +### Большие диапазоны и производительность + +Для огромных наборов данных (сотни тысяч строк) рассмотрите возможность использовать только `CopyRows` и пропустить `CopyColumns`, если ширина столбцов не критична. Это может сэкономить несколько секунд. + +## Полный рабочий пример + +Ниже приведена полная, готовая к запуску программа, воплощающая всё, о чём мы говорили. Вставьте её в консольное приложение, скорректируйте пути к файлам и нажмите **F5**. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // ---------- Step 1: Load the source workbook ---------- + string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; + string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + Workbook workbook = new Workbook(sourcePath); + + // ---------- Step 2: Add a new worksheet (add new worksheet code) ---------- + Worksheet sourceSheet = workbook.Worksheets[0]; + Worksheet copySheet = workbook.Worksheets.Add("Copy"); + + // ---------- Step 3: Define the copy cell range ---------- + CellArea sourceRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + CellArea destinationRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + + // ---------- Step 4: Set copy options (preserve copy worksheet pivot table) ---------- + CopyOptions copyOptions = new CopyOptions + { + PasteType = PasteType.All, + PasteSpecial = true + }; + + // ---------- Step 5: Copy rows and columns (copy columns between sheets) ---------- + sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + + sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); + + // ---------- Step 6: Save the workbook ---------- + workbook.Save(destinationPath); + } +} +``` + +**Expected result:** При открытии `Destination.xlsx` отображается лист с именем **Copy**, который полностью копирует первый лист `Source.xlsx` — включая любые сводные таблицы, форматирование и ширину столбцов. Исходный файл остаётся нетронутым. + +## Часто задаваемые вопросы + +**В:** Работает ли это с файлами .xlsx, созданными в Excel 2019? +**О:** Абсолютно. Aspose.Cells поддерживает все современные форматы Excel, поэтому тот же код работает с `.xlsx`, `.xlsm` и даже более старыми файлами `.xls`. + +{{< /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/russian/net/excel-custom-number-date-formatting/_index.md b/cells/russian/net/excel-custom-number-date-formatting/_index.md index 9016c0c69f..13269faa2e 100644 --- a/cells/russian/net/excel-custom-number-date-formatting/_index.md +++ b/cells/russian/net/excel-custom-number-date-formatting/_index.md @@ -36,6 +36,10 @@ Узнайте, как проверить значения ячеек Excel на соответствие пользовательским числовым форматам с помощью Aspose.Cells для .NET, из этого пошагового руководства. ### [Укажите поля формул при импорте данных в таблицу Excel](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) Узнайте, как импортировать данные в таблицы Excel с указанными полями формул с помощью Aspose.Cells для .NET в этом подробном руководстве. +### [Форматирование чисел с разделителем в C# – Полное руководство Aspose.Cells](./format-number-with-separator-in-c-complete-aspose-cells-guid/) +Узнайте, как форматировать числа с разделителями в C# с помощью Aspose.Cells, следуя полному пошаговому руководству. +### [Формат даты ISO из Excel – Полное руководство C#](./format-date-iso-from-excel-complete-c-guide/) +Узнайте, как преобразовать даты в формат ISO в Excel с помощью Aspose.Cells для .NET в этом полном руководстве. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/russian/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md b/cells/russian/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..e4dba83593 --- /dev/null +++ b/cells/russian/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md @@ -0,0 +1,219 @@ +--- +category: general +date: 2026-03-30 +description: Узнайте, как форматировать дату в ISO, читая значения даты и времени + из Excel, и извлекать данные даты и времени из Excel с помощью Aspose.Cells на C#. +draft: false +keywords: +- format date iso +- read excel datetime +- extract datetime excel +- Aspose.Cells date parsing +- Japanese era dates +language: ru +og_description: Форматировать дату в ISO из данных Excel с помощью Aspose.Cells. Это + руководство показывает, как читать дату и время из Excel, извлекать значения даты + и времени и выводить даты в формате ISO. +og_title: Формат даты ISO из Excel – пошаговое руководство C# +tags: +- C# +- Excel +- DateTime +- Aspose.Cells +title: Формат даты ISO из Excel – Полное руководство по C# +url: /ru/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Форматирование даты ISO из Excel – Полное руководство C# + +Когда‑нибудь вам нужно было **format date iso** при извлечении дат из листа Excel? Возможно, вы работаете с датами японских эпох, или просто хотите чистую строку `yyyy‑MM‑dd` для полезной нагрузки API. В этом руководстве вы увидите, как **read Excel datetime** ячейки, **extract datetime Excel** значения и преобразовать их в формат ISO‑8601 — без догадок. + +Мы пройдем реальный пример, использующий Aspose.Cells, объясним, почему каждая строка важна, и покажем окончательный вывод, который вы можете скопировать и вставить в свой проект. К концу вы сможете обрабатывать странные строки эпох, такие как «令和3年5月1日», и получать стандартную дату ISO, готовую для баз данных, JSON или любого другого места, где она нужна. + +## Требования + +- .NET 6.0 или новее (код также работает с .NET Framework) +- Aspose.Cells for .NET (бесплатная пробная версия или лицензированная) +- Базовое знакомство с C# и концепциями Excel +- Visual Studio или любой другой редактор C#, который вам нравится + +Дополнительные пакеты NuGet не требуются, кроме Aspose.Cells, поэтому настройка довольно проста. + +--- + +## Шаг 1: Создать Workbook и выбрать первый лист + +Первое, что вы делаете, — создаёте новый объект `Workbook`. Это даёт вам представление Excel‑файла в памяти, с которым вы затем можете работать или читать данные. + +```csharp +using Aspose.Cells; +using System.Globalization; + +// Step 1: Initialize a new workbook and grab the first worksheet +Workbook workbook = new Workbook(); // creates an empty .xlsx +Worksheet worksheet = workbook.Worksheets[0]; // the default sheet is "Sheet1" +``` + +*Почему это важно:* +Создание workbook программно позволяет избежать работы с физическими файлами во время тестирования. Это также гарантирует, что ссылка на лист всегда действительна — без неожиданностей с null‑reference позже, когда вы попытаетесь **read Excel datetime** значения. + +--- + +## Шаг 2: Записать строку даты японской эпохи в ячейку + +Наша цель — продемонстрировать разбор негригорианской даты. Мы поместим строку эпохи непосредственно в ячейку **A1**. + +```csharp +// Step 2: Insert a Japanese era date string into cell A1 +worksheet.Cells["A1"].PutValue("令和3年5月1日"); +``` + +*Совет:* +Если вы извлекаете данные из существующего workbook, вы пропустите вызов `PutValue` и просто обратитесь к ячейке, уже содержащей дату. Главное, чтобы ячейка содержала **string**, представляющую дату в японском лунно‑солярном календаре. + +--- + +## Шаг 3: Настроить культуру, понимающую японский лунно‑солярный календарь + +Класс .NET `CultureInfo` позволяет задать, как должны интерпретироваться даты. Заменив календарь по умолчанию Gregorian на `JapaneseLunisolarCalendar`, вы предоставляете парсеру необходимый контекст. + +```csharp +// Step 3: Set up a culture using the Japanese lunisolar calendar +CultureInfo japaneseCulture = new CultureInfo("ja-JP"); +japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); +``` + +*Почему мы это делаем:* +Если попытаться разобрать «令和3年5月1日» с культурой по умолчанию, .NET выдаст `FormatException`. Замена на лунно‑солярный календарь сообщает среде выполнения, как точно сопоставить «令和3年» (3‑й год эпохи Reiwa) с григорианским годом 2021. + +--- + +## Шаг 4: Разобрать значение ячейки как `DateTime`, используя настроенную культуру + +Теперь наступает основная часть операции — преобразование строки эпохи в корректный объект `DateTime`. Aspose.Cells предоставляет удобный перегруз `GetDateTime`, принимающий `CultureInfo`. + +```csharp +// Step 4: Retrieve the cell value as a DateTime, respecting the Japanese culture +DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); +``` + +*Что происходит под капотом:* +`GetDateTime` читает исходную строку, применяет правила календаря указанной культуры и возвращает `DateTime`, представляющий тот же момент в григорианском календаре. Это тот момент, когда вы **extract datetime Excel** данные в форме, с которой можно работать в .NET. + +--- + +## Шаг 5: Вывести разобранную дату в формате ISO 8601 + +Наконец, мы форматируем `DateTime` как строку ISO — `yyyy‑MM‑dd` — которая универсально принимается API, базами данных и фронтенд‑фреймворками. + +```csharp +// Step 5: Print the date in ISO format (e.g., 2021-05-01) +Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // Output: 2021-05-01 +``` + +*Почему ISO?* +ISO 8601 устраняет неоднозначность. «05/01/2021» может означать 1 мая или 5 января в зависимости от локали. `2021-05-01` абсолютно ясно, поэтому мы **format date iso** почти во всех сценариях интеграции. + +--- + +## Полный рабочий пример + +Ниже представлен полный готовый к запуску пример программы. Скопируйте его в проект консольного приложения, добавьте ссылку на Aspose.Cells и нажмите **F5**. + +```csharp +using Aspose.Cells; +using System; +using System.Globalization; + +class Program +{ + static void Main() + { + // 1️⃣ Create workbook and select the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("令和3年5月1日"); + + // 3️⃣ Set up Japanese lunisolar culture + CultureInfo japaneseCulture = new CultureInfo("ja-JP"); + japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); + + // 4️⃣ Parse the cell value as DateTime using the culture + DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); + + // 5️⃣ Output the date in ISO format + Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // 2021-05-01 + } +} +``` + +**Ожидаемый вывод** + +``` +2021-05-01 +``` + +Запустите его один раз, и вы увидите дату в формате ISO, выведенную в консоль. Это весь конвейер от **read Excel datetime** до **format date iso**. + +--- + +## Обработка распространённых граничных случаев + +### 1. Ячейки, содержащие реальные числовые даты Excel + +Иногда Excel хранит даты как последовательные числа (например, `44204`). В этом случае культура не нужна; просто вызовите `GetDateTime()` без параметров: + +```csharp +DateTime serialDate = worksheet.Cells["B2"].GetDateTime(); // B2 holds a numeric date +Console.WriteLine(serialDate.ToString("yyyy-MM-dd")); +``` + +### 2. Пустые или неверные ячейки + +Если ячейка пуста или содержит непарсимую строку, `GetDateTime` выбросит исключение. Оберните вызов в `try/catch` или сначала проверьте `IsDateTime`: + +```csharp +if (worksheet.Cells["C3"].Type == CellValueType.IsDateTime) +{ + DateTime safeDate = worksheet.Cells["C3"].GetDateTime(); + Console.WriteLine(safeDate.ToString("yyyy-MM-dd")); +} +else +{ + Console.WriteLine("Cell C3 does not contain a valid date."); +} +``` + +### 3. Разные форматы эпох + +Другие японские эпохи (Heisei, Showa) следуют тому же шаблону. Тот же `JapaneseLunisolarCalendar` обработает их автоматически, так что дополнительная логика не нужна — просто передайте строку. + +--- + +## Полезные советы и подводные камни + +- **Performance:** При обработке больших таблиц переиспользуйте один экземпляр `CultureInfo` вместо создания нового в каждом цикле. +- **Thread Safety:** Объекты `CultureInfo` становятся только для чтения после установки календаря, поэтому их безопасно использовать в разных потоках. +- **Aspose.Cells Licensing:** Если вы используете бесплатную пробную версию, помните, что некоторые функции могут быть ограничены после окончания пробного периода. Парсинг дат, показанный здесь, работает как в пробной, так и в лицензированной версии. +- **Time Zones:** Получаемый `DateTime` имеет **unspecified** (без часового пояса). Если нужен UTC, вызовите `DateTime.SpecifyKind(parsedDate, DateTimeKind.Utc)` или выполните преобразование с помощью `TimeZoneInfo`. + +--- + +## Заключение + +Мы рассмотрели всё, что нужно для **format date iso** из Excel‑книги с помощью C#. Начиная с сырой строки японской эпохи, мы **read Excel datetime**, настроили правильную культуру, **extract datetime excel** данные и в конце вывели чистую строку ISO‑8601. Этот подход работает с любой датой, которую может выдать Excel, будь то числовой сериал, строка, зависящая от локали, или традиционный формат эпохи. + +Что дальше? Попробуйте пройтись по целому столбцу дат, записать результаты ISO обратно в новый лист или сразу передать их в JSON‑полезную нагрузку веб‑сервиса. Если вам интересны другие календарные системы (еврейский, исламский), Aspose.Cells и `CultureInfo` в .NET делают такие эксперименты столь же простыми. + +Есть вопросы или сложный формат даты, который не поддаётся? Оставьте комментарий ниже, и удачной разработки! + +{{< /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/russian/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md b/cells/russian/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md new file mode 100644 index 0000000000..b607a5fbf2 --- /dev/null +++ b/cells/russian/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md @@ -0,0 +1,251 @@ +--- +category: general +date: 2026-03-30 +description: Узнайте, как форматировать числа с разделителем с помощью Aspose.Cells + в C#. Включает установку пользовательского числового формата, добавление разделителя + тысяч, форматирование десятичных знаков и способы форматирования ячейки. +draft: false +keywords: +- format number with separator +- set custom number format +- add thousands separator +- format decimal places +- how to format cell +language: ru +og_description: Форматирование числа с разделителем в C#. Это руководство показывает, + как установить пользовательский числовой формат, добавить разделитель тысяч, отформатировать + десятичные знаки и как отформатировать ячейку с помощью Aspose.Cells. +og_title: Форматирование числа с разделителем в C# – учебник Aspose.Cells +tags: +- C# +- Aspose.Cells +- Number Formatting +title: Форматирование чисел с разделителем в C# – Полное руководство по Aspose.Cells +url: /ru/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Форматирование числа с разделителем в C# – Полное руководство Aspose.Cells + +Когда‑то вам нужно было **format number with separator** в таблице, но вы не знали, какой вызов API использовать? Вы не одиноки — разработчики постоянно сталкиваются с тысячными разделителями, десятичными знаками и пользовательскими шаблонами при экспорте данных. + +Хорошая новость: Aspose.Cells делает это проще простого. В этом руководстве мы пройдем реальный пример, который **устанавливает пользовательский числовой формат**, **добавляет тысячный разделитель**, **форматирует десятичные знаки** и показывает, **как format cell** вывод в виде строки. К концу у вас будет готовый фрагмент кода, который можно вставить в любой .NET‑проект. + +## Что покрывает это руководство + +* Точный NuGet‑пакет, который нужен, и как его установить. +* Пошаговый код, который создает книгу, записывает числовое значение и применяет пользовательский формат. +* Почему `ExportTableOptions.ExportAsString` — предпочтительный способ получить отформатированное значение. +* Распространённые подводные камни — например, забыть включить `ExportAsString` или использовать неправильную маску формата. +* Как изменить маску формата, если вам нужно другое количество десятичных знаков или иной стиль разделителя. + +Внешних ссылок на документацию не требуется; всё, что нужно, находится здесь. Приступим. + +--- + +## Предварительные требования + +| Требование | Причина | +|------------|---------| +| .NET 6.0 или новее | Aspose.Cells 23.10+ нацелен на .NET Standard 2.0+, поэтому .NET 6 безопасен и актуален. | +| Visual Studio 2022 (или любой IDE для C#) | Делает отладку и управление пакетами простыми. | +| NuGet‑пакет Aspose.Cells for .NET | Предоставляет классы `Workbook`, `Worksheet` и `ExportTableOptions`, которые мы будем использовать. | + +Установить пакет можно через консоль диспетчера пакетов: + +```powershell +Install-Package Aspose.Cells +``` + +И всё — никаких дополнительных DLL, без COM‑interop, только одна ссылка на NuGet. + +--- + +## Шаг 1: Инициализация новой книги (How to Format Cell) + +Первое, что мы делаем, — создаём новый экземпляр `Workbook`. Представьте его как пустой файл Excel, готовый принять данные. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Create a new workbook – this is where we’ll format the cell. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Почему это важно:** `Workbook` — точка входа для любой операции в Aspose.Cells. Получив первый лист (`Worksheets[0]`), мы получаем чистый холст без необходимости задавать имя листа. + +--- + +## Шаг 2: Запись числового значения в целевую ячейку + +Далее помещаем «сырой» номер в ячейку **A1**. Значение пока не отформатировано — это просто `double`. + +```csharp + // Step 2: Insert a raw numeric value. + worksheet.Cells["A1"].PutValue(12345.6789); +``` + +> **Pro tip:** Используйте `PutValue` вместо `PutString`, если планируете позже применять числовое форматирование. Это сохраняет исходный тип данных, позволяя выполнять совместимые с Excel вычисления. + +--- + +## Шаг 3: Установка пользовательского числового формата (Add Thousands Separator & Format Decimal Places) + +Теперь к делу: определяем маску формата, которая указывает Aspose.Cells, как отображать число. Маска `#,##0.00` делает три вещи: + +1. **`#,##0`** — добавляет тысячный разделитель (по умолчанию запятая). +2. **`.00`** — фиксирует ровно два десятичных знака. + +Если нужно другое количество знаков после запятой, просто измените количество `0` после точки. + +```csharp + // Step 3: Configure the custom number format. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, // Return the value as a formatted string. + NumberFormat = "#,##0.00" // Add thousands separator and fix to 2 decimals. + }; +``` + +> **Почему мы используем `ExportAsString`**: По умолчанию `ExportString` возвращает «сырое» значение. Установка `ExportAsString = true` заставляет API применить маску `NumberFormat` перед преобразованием в текст. Это критично, когда требуется точное строковое представление для отчётов, JSON‑payload'ов или отображения в UI. + +--- + +## Шаг 4: Экспорт отформатированного текста (How to Format Cell) + +С готовыми параметрами вызываем `ExportString` для той же ячейки. Метод учитывает только что заданную маску и возвращает красиво отформатированную строку. + +```csharp + // Step 4: Export the formatted value. + string formattedCellText = worksheet.Cells["A1"].ExportString(exportOptions); + + // Step 5: Show the result. + Console.WriteLine(formattedCellText); // Expected output: 12,345.68 + } +} +``` + +Запуск программы выводит **`12,345.68`** в консоль — точно тот формат, который мы задали. + +> **Edge case:** Если исходное число имеет более двух десятичных знаков, маска округляет его. Если требуется усечение вместо округления, предварительно обработайте значение с помощью `Math.Truncate` перед вызовом `PutValue`. + +--- + +## Шаг 5: Настройка формата — распространённые варианты + +### 5.1 Изменить точность десятичных знаков + +Нужны три знака после запятой? Просто замените маску: + +```csharp +NumberFormat = "#,##0.000" // → 12,345.679 +``` + +### 5.2 Использовать иной тысячный разделитель + +В некоторых локалях предпочитают пробел или точку. Можно вставить символ напрямую: + +```csharp +NumberFormat = "# ##0.00" // Uses a non‑breaking space as separator. +``` + +Или полагаться на настройки культуры книги: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("de-DE"); +NumberFormat = "#.##0,00"; // German style: 12.345,68 +``` + +### 5.3 Префикс или суффикс (валюта, процент) + +Добавьте знак доллара или процент прямо в маску: + +```csharp +NumberFormat = "$#,##0.00"; // → $12,345.68 +NumberFormat = "0.00%"; // → 1,234,568.00% +``` + +> **Note:** Маска чувствительна к регистру. `$` и `%` — буквальные символы; они не влияют на само числовое значение. + +--- + +## Шаг 6: Полный рабочий пример (Copy‑Paste Ready) + +Ниже полностью готовая программа, которую можно скопировать в новое консольное приложение. В ней присутствуют все шаги, комментарии и проверка конечного вывода. + +```csharp +using System; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write raw numeric value to A1. + worksheet.Cells["A1"].PutValue(12345.6789); + + // 3️⃣ Define custom format: thousands separator + two decimals. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + NumberFormat = "#,##0.00" + }; + + // 4️⃣ Export the formatted string. + string result = worksheet.Cells["A1"].ExportString(exportOptions); + + // 5️⃣ Display the outcome. + Console.WriteLine(result); // Output: 12,345.68 + + // Optional: keep console open. + Console.WriteLine("Press any key to exit..."); + Console.ReadKey(); + } +} +``` + +Запустите программу (`dotnet run` в терминале или нажмите F5 в Visual Studio) — увидите отформатированное число, выведенное точно как в примере. + +--- + +## Часто задаваемые вопросы (FAQ) + +**Q: Работает ли это со старыми версиями Excel?** +A: Да. Маска формата следует нативному синтаксису Excel, поэтому любая версия, понимающая `#,##0.00`, отобразит одинаковую строку. + +**Q: Что делать, если нужно отформатировать диапазон ячеек?** +A: Пройдитесь в цикле по нужному диапазону и примените те же `ExportTableOptions` к каждой ячейке, либо задайте свойство `Style.Custom` для диапазона и затем вызовите `ExportString` у одной ячейки. + +**Q: Можно ли экспортировать напрямую в CSV с применёнными форматами?** +A: Конечно. После установки формата в каждой ячейке выполните `Workbook.Save("output.csv", SaveFormat.CSV);`. Aspose.Cells учитывает `Style` ячейки при генерации CSV. + +--- + +## Заключение + +Мы только что показали, как **format number with separator** в C# с помощью Aspose.Cells, охватив всё от **set custom number format** до **add thousands separator**, **format decimal places** и важного **how to format cell** для экспорта в строку. Код полностью автономный, работает с .NET 6+ и может быть адаптирован под любую локаль или требуемую точность. + +Дальше вы можете изучить: + +* Применение той же техники к датам и времени (`NumberFormat = "dd‑MMM‑yyyy"`). +* Автоматизацию массового экспорта, где каждый столбец требует своей маски. +* Интеграцию отформатированных строк в PDF‑отчёты с помощью Aspose.Words. + +Попробуйте, и вы быстро станете экспертом по форматированию таблиц в своей команде. Happy coding! ![Screenshot showing formatted number with separator in Aspose.Cells](image-placeholder.png){alt="Отформатированное число с разделителем, отображаемое в выводе 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/russian/net/excel-data-import-export/_index.md b/cells/russian/net/excel-data-import-export/_index.md index 016a124d46..c7e5d522ce 100644 --- a/cells/russian/net/excel-data-import-export/_index.md +++ b/cells/russian/net/excel-data-import-export/_index.md @@ -32,6 +32,10 @@ Узнайте, как импортировать данные в Excel с пользовательским форматированием DB Num с помощью Aspose.Cells для .NET в этом простом руководстве. ### [Сдвиг первой строки вниз при вставке строк DataTable в Excel](./shift-first-row-down-when-inserting-cells-datatable-rows-in-excel/) Научитесь вставлять строки DataTable в Excel без смещения первой строки вниз с помощью Aspose.Cells для .NET. Пошаговое руководство для легкой автоматизации. +### [Создать рабочую книгу Excel C# – вставить JSON и сохранить как XLSX](./create-excel-workbook-c-insert-json-and-save-as-xlsx/) +Узнайте, как создать книгу Excel в C#, вставить данные JSON и сохранить файл в формате XLSX с помощью Aspose.Cells. +### [Создать рабочую книгу Excel C# – применить валютный формат и импортировать DataTable](./create-excel-workbook-c-apply-currency-format-and-import-dat/) +Узнайте, как создать книгу Excel в C#, применить валютный формат и импортировать DataTable с помощью Aspose.Cells. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/russian/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md b/cells/russian/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md new file mode 100644 index 0000000000..d0004252bb --- /dev/null +++ b/cells/russian/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md @@ -0,0 +1,285 @@ +--- +category: general +date: 2026-03-30 +description: Создайте Excel‑книгу в C# с форматированием валюты. Узнайте, как импортировать + DataTable, добавить числовой формат в Excel и применить валютный формат к столбцу + за несколько минут. +draft: false +keywords: +- create excel workbook c# +- format cells currency +- import datatable to excel +- add number format excel +- apply currency format column +language: ru +og_description: Создайте рабочую книгу Excel на C# и мгновенно отформатируйте ячейки + как валюту. Этот пошаговый учебник показывает, как импортировать DataTable в Excel + и добавить числовой формат для столбца. +og_title: Создание книги Excel на C# – Руководство по форматированию валют +tags: +- Aspose.Cells +- C# +- Excel automation +title: Создание книги Excel на C# – применение валютного формата и импорт DataTable +url: /ru/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Создание Excel‑книги C# – Применение формата валюты и импорт DataTable + +Когда‑нибудь нужно **создать Excel‑книгу C#**, которая сразу выглядит как готовый отчёт? Может быть, вы вытягиваете данные о продажах из базы и хотите, чтобы столбец цены отображался в долларах без ручных правок в Excel. Знакомо? Вы не одиноки — большинство разработчиков сталкиваются с этой проблемой, когда впервые автоматизируют экспорт в Excel. + +В этом руководстве мы пройдём полный, готовый к запуску пример, который **создаёт Excel‑книгу C#**, импортирует `DataTable` и **форматирует столбец Price как валюту**. В конце у вас будет файл `StyledTable.xlsx`, который можно открыть и увидеть красиво отформатированные числа. Дополнительная пост‑обработка не требуется. + +> **Что вы узнаете** +> - Как настроить Aspose.Cells в проекте .NET +> - Как **import datatable to excel** с массивом стилей +> - Как **add number format excel** для конкретного столбца +> - Советы по работе с большим количеством столбцов или разными локалями + +> **Требования** +> - .NET 6+ (или .NET Framework 4.6+) установлен +> - NuGet‑пакет Aspose.Cells for .NET (`Install-Package Aspose.Cells`) +> - Базовые знания C# и DataTable + +--- + +## Шаг 1: Подготовьте DataTable (import datatable to excel) + +Сначала нам нужны некоторые примерные данные. В реальном приложении вы, скорее всего, заполняете эту таблицу запросом к БД, но жёстко закодированный пример упрощает задачу. + +```csharp +using System.Data; + +// Create a DataTable with two columns: Product (string) and Price (double) +DataTable dataTable = new DataTable(); +dataTable.Columns.Add("Product", typeof(string)); +dataTable.Columns.Add("Price", typeof(double)); + +// Add a few rows – you can add as many as you like +dataTable.Rows.Add("Apple", 1.23); +dataTable.Rows.Add("Banana", 0.78); +dataTable.Rows.Add("Cherry", 2.50); +``` + +*Почему это важно*: `DataTable` служит мостом между вашими бизнес‑данными и файлом Excel. Aspose.Cells может импортировать её напрямую, сохраняя имена столбцов и типы данных. + +--- + +## Шаг 2: Создайте новую книгу (create excel workbook c#) + +Теперь создаём объект Excel‑файла. Представьте его как чистый холст, на котором вы будете рисовать. + +```csharp +using Aspose.Cells; + +// Instantiate a fresh workbook – this is the core of create excel workbook c# +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0). You could also add more sheets later. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Pro tip:** Если нужны несколько листов, вызовите `workbook.Worksheets.Add()` и задайте каждому осмысленное имя. + +--- + +## Шаг 3: Определите стиль валюты (format cells currency) + +Aspose.Cells позволяет создать объект `Style`, описывающий внешний вид ячеек. Для валюты используем встроенный номер формата 164 (`"$#,##0.00"`). + +```csharp +// Create a new style object for the price column +Style priceStyle = workbook.CreateStyle(); +priceStyle.Number = 164; // Built‑in currency format "$#,##0.00" +``` + +*Почему не просто задать строку формата?* Использование встроенного ID гарантирует совместимость между версиями Excel и избавляет от проблем, связанных с локалью. + +--- + +## Шаг 4: Сформируйте массив стилей (apply currency format column) + +При импорте `DataTable` можно передать массив объектов `Style` — один на каждый столбец. `null` означает «использовать стиль по умолчанию». Здесь мы применяем `priceStyle` только ко второму столбцу. + +```csharp +// Column 0 (Product) gets the default style, Column 1 (Price) gets the currency style +Style[] columnStyles = { null, priceStyle }; +``` + +Если позже добавятся новые столбцы, просто расширьте массив. Длина `columnStyles` должна совпадать с количеством импортируемых столбцов, иначе Aspose бросит исключение. + +--- + +## Шаг 5: Импортируйте DataTable со стилями (import datatable to excel) + +Теперь происходит магия — наш `DataTable` попадает на лист, и столбец цены сразу отображается как валюта. + +```csharp +// Parameters: +// - dataTable: source data +// - true: include column headers +// - startRow: 0 (top of sheet) +// - startColumn: 0 (first column) +// - columnStyles: style array defined above +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +*Что делать, если столбцов больше двух?* Просто расширьте `columnStyles`, чтобы каждый столбец получил нужный стиль (или `null` для стиля по умолчанию). Это самый чистый способ **add number format excel** выборочно. + +--- + +## Шаг 6: Сохраните книгу (create excel workbook c#) + +Наконец, записываем файл на диск. Выберите любую папку, в которую у вас есть права записи. + +```csharp +// Save the workbook as an XLSX file +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +Откройте `StyledTable.xlsx` в Excel, и вы увидите: + +| Product | Price | +|---------|-------| +| Apple | $1.23 | +| Banana | $0.78 | +| Cherry | $2.50 | + +Столбец **Price** уже отформатирован как валюта — никаких дополнительных шагов не требуется. + +--- + +## Особые случаи и варианты + +### Больше столбцов, разные форматы + +Если нужно **format cells currency** для нескольких столбцов (например, Cost, Tax, Total), создайте отдельный `Style` для каждого и заполните `columnStyles` соответственно: + +```csharp +Style costStyle = workbook.CreateStyle(); +costStyle.Number = 164; // currency + +Style taxStyle = workbook.CreateStyle(); +taxStyle.Number = 164; + +// Assuming columns: Product, Cost, Tax, Total +Style[] styles = { null, costStyle, taxStyle, priceStyle }; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, styles); +``` + +### Валюта, зависящая от локали + +Для евро или британского фунта используйте другие встроенные ID (например, 165 для `€#,##0.00`). Либо задайте пользовательскую строку формата: + +```csharp +priceStyle.Custom = "€#,##0.00"; +``` + +### Большие наборы данных + +Aspose.Cells справляется с миллионами строк, но потребление памяти растёт вместе с объектами стилей. Переиспользуйте один экземпляр `Style` для всех валютных столбцов, чтобы снизить нагрузку. + +### Отсутствующие стили + +Если `columnStyles` короче, чем количество столбцов, Aspose применит стиль по умолчанию к оставшимся столбцам. Это удобно, когда интересуют только отдельные столбцы. + +--- + +## Полный рабочий пример (все шаги вместе) + +Ниже представлена полная программа, которую можно скопировать в консольное приложение. В ней собраны все обсуждённые части и несколько полезных комментариев. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // Step 1: Build sample DataTable (import datatable to excel) + // ------------------------------------------------- + DataTable dataTable = new DataTable(); + dataTable.Columns.Add("Product", typeof(string)); + dataTable.Columns.Add("Price", typeof(double)); + dataTable.Rows.Add("Apple", 1.23); + dataTable.Rows.Add("Banana", 0.78); + dataTable.Rows.Add("Cherry", 2.50); + // You can add as many rows as you like here. + + // ------------------------------------------------- + // Step 2: Create a new workbook (create excel workbook c#) + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // Step 3: Define a currency style (format cells currency) + // ------------------------------------------------- + Style priceStyle = workbook.CreateStyle(); + priceStyle.Number = 164; // "$#,##0.00" – built‑in currency format + + // ------------------------------------------------- + // Step 4: Build the style array (apply currency format column) + // ------------------------------------------------- + // First column gets default style (null), second column uses priceStyle. + Style[] columnStyles = { null, priceStyle }; + + // ------------------------------------------------- + // Step 5: Import the DataTable with the style array + // ------------------------------------------------- + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // ------------------------------------------------- + // Step 6: Save the workbook to disk + // ------------------------------------------------- + string outputPath = @"YOUR_DIRECTORY\StyledTable.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } +} +``` + +**Ожидаемый результат:** При открытии `StyledTable.xlsx` столбец `Price` будет отображаться с долларовым знаком и двумя знаками после запятой, точно как требует инструкция **format cells currency**. + +--- + +## Часто задаваемые вопросы + +**В: Работает ли это с .NET Core?** +О: Абсолютно. Aspose.Cells совместим с .NET‑standard, поэтому можно целиться в .NET 5, .NET 6 и выше без изменений. + +**В: Что если в моём DataTable 10 столбцов, а форматировать нужно только столбец 5?** +О: Создайте `Style[]` длиной 10, заполните позиции 0‑4 и 6‑9 `null`, а в индекс 4 (нумерация с нуля) поместите ваш кастомный стиль. Aspose учтёт каждое значение. + +**В: Можно ли скрыть строку заголовков?** +О: После импорта задайте `worksheet.Cells.Rows[0].Hidden = true;` или просто передайте `false` в параметр `includeColumnNames` метода `ImportDataTable`. + +--- + +## Заключение + +Мы только что **создали Excel‑книгу C#**, импортировали `DataTable` и **применили формат валюты к столбцу** с помощью Aspose.Cells. Основные шаги — подготовка данных, определение стиля, построение массива стилей, импорт через `ImportDataTable` и сохранение — покрывают ядро большинства задач автоматизации Excel. + +Дальше вы можете исследовать: + +- **add number format excel** для дат или процентов +- Экспорт нескольких листов в один файл +- Использование **format cells currency** с символами разных локалей +- Автоматизацию создания диаграмм на основе тех же данных + +Попробуйте, и вы быстро станете «гуру» по Excel‑отчётности в своей команде. Есть свои находки? Оставляйте комментарий ниже — happy coding! + +![create excel workbook c# screenshot](image.png "create excel workbook c#") + +{{< /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/russian/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md b/cells/russian/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md new file mode 100644 index 0000000000..20a47ccd5a --- /dev/null +++ b/cells/russian/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md @@ -0,0 +1,253 @@ +--- +category: general +date: 2026-03-30 +description: Создайте книгу Excel на C# быстро, вставляя данные JSON и сохраняя её + в формате XLSX. Узнайте, как генерировать Excel из JSON, записывать JSON в Excel + и вставлять JSON в Excel. +draft: false +keywords: +- create excel workbook c# +- save workbook as xlsx +- generate excel from json +- write json to excel +- insert json into excel +language: ru +og_description: Быстро создайте рабочую книгу Excel в C# путем вставки JSON‑данных + и сохранения её в формате XLSX. Следуйте этому пошаговому руководству, чтобы создать + Excel из JSON. +og_title: Создать книгу Excel на C# – вставить JSON и сохранить в формате XLSX +tags: +- Aspose.Cells +- C# +- Excel automation +title: Создание книги Excel на C# – вставка JSON и сохранение в XLSX +url: /ru/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Создать книгу Excel C# – Вставить JSON и сохранить как XLSX + +Когда‑нибудь нужно было **создать книгу Excel C#** и сразу поместить JSON в ячейку? Вы не одиноки — разработчики часто сталкиваются с такой задачей, когда нужно перенести API‑payload или файлы конфигурации в таблицу для отчётов или совместного использования. + +Хорошая новость: с Aspose.Cells это можно сделать в паре строк, **сохранить книгу как XLSX**, и при этом весь процесс остаётся типобезопасным. В этом руководстве мы **генерируем Excel из JSON**, **записываем JSON в Excel** и покажем точные шаги, как **вставить JSON в Excel** без лишних конкатенаций строк. + +## Что покрывает это руководство + +Мы пройдёмся по: + +1. Созданию новой книги. +2. Добавлению Smart Marker, ожидающего JSON. +3. Передаче массива JSON маркеру. +4. Настройке `SmartMarkerOptions`, чтобы JSON оставался в одной ячейке. +5. Сохранению файла как книги XLSX. + +К концу вы получите готовый файл `JsonSingleCell.xlsx` и надёжный шаблон, который можно переиспользовать для любой задачи «JSON → Excel». Никаких внешних сервисов, только чистый C# и библиотека Aspose.Cells. + +**Prerequisites** + +- .NET 6+ (или .NET Framework 4.6+). +- Visual Studio 2022 или любой совместимый с C# IDE. +- NuGet‑пакет `Aspose.Cells` (бесплатная пробная версия или лицензия). + +Если всё это у вас есть, давайте начнём — дополнительной настройки не требуется. + +--- + +## Шаг 1: Создать новую книгу в C# + +Первое, что нужно — пустой объект книги. Представьте его как свежий файл Excel, готовый к заполнению данными. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is your empty Excel file +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; +``` + +**Почему это важно:** +`Workbook` — точка входа для всех операций с Excel. Создав её вначале, вы гарантируете, что последующий вызов **save workbook as xlsx** будет иметь конкретный объект для сериализации. + +> **Pro tip:** Если планируете работать с несколькими листами, их можно добавить сейчас с помощью `workbook.Worksheets.Add()`. + +--- + +## Шаг 2: Поместить Smart Marker, ожидающий JSON + +Smart Markers — это заполнители, которые Aspose.Cells заменяет во время выполнения. Здесь мы указываем искать строку JSON с именем `data`. + +```csharp +// Put a Smart Marker in cell A1 – {{data:json}} tells Aspose to expect JSON +worksheet.Cells["A1"].PutValue("{{data:json}}"); +``` + +**Почему это важно:** +Суффикс `:json` сообщает движку, что передаваемое значение — это JSON, а не обычный текст. Это ключ к **write json to excel** без ручного парсинга. + +--- + +## Шаг 3: Определить массив JSON + +Теперь формируем JSON, который хотим вставить. Для демонстрации используем простой список людей. + +```csharp +// Sample JSON array – could come from an API, file, or DB +string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; +``` + +**Edge case:** +Если ваш JSON содержит двойные кавычки, убедитесь, что они экранированы (как показано) или используйте дословную строку (`@"..."`), чтобы избежать ошибок компиляции. + +--- + +## Шаг 4: Настроить Smart Marker Options – оставить массив целым + +По умолчанию Aspose пытается развернуть массив по строкам. Нам нужен целый JSON‑строк в одной ячейке, что идеально подходит для сценариев **insert json into excel**, где получатель позже будет парсить JSON. + +```csharp +SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions +{ + // Treat the whole array as a single cell value + ArrayAsSingle = true +}; +``` + +**Почему это важно:** +`ArrayAsSingle = true` отключает развертывание по строкам, давая чистый JSON‑блоб в одной ячейке. Это необходимо, когда таблица служит форматом передачи данных, а не отчётом. + +--- + +## Шаг 5: Обработать Smart Marker с данными JSON + +Теперь привязываем JSON к маркеру и позволяем Aspose выполнить всю тяжёлую работу. + +```csharp +// Process the marker – the anonymous object maps "data" to our JSON string +worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); +``` + +**Что происходит под капотом:** +Aspose оценивает заполнитель `{{data:json}}`, сериализует строку `jsonData` и записывает её в ячейку A1, учитывая заданные параметры. + +--- + +## Шаг 6: Сохранить книгу как файл XLSX + +Наконец, записываем книгу на диск. Здесь и вступает в действие **save workbook as xlsx**. + +```csharp +// Save the workbook – the extension determines the format (XLSX here) +workbook.Save("JsonSingleCell.xlsx"); +``` + +**Result:** +Откройте `JsonSingleCell.xlsx` в Excel, и вы увидите массив JSON точно так, как мы его задали, аккуратно размещённый в ячейке A1. + +--- + +## Полный, готовый к запуску пример + +Ниже полностью готовая программа, которую можно скопировать в консольное приложение. Она включает все перечисленные шаги и работает «из коробки» (при установленном NuGet‑пакете Aspose.Cells). + +```csharp +using System; +using Aspose.Cells; + +namespace JsonToExcelDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add a Smart Marker that expects JSON + worksheet.Cells["A1"].PutValue("{{data:json}}"); + + // 3️⃣ Define the JSON array + string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; + + // 4️⃣ Configure options – keep array as a single cell value + SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions + { + ArrayAsSingle = true + }; + + // 5️⃣ Process the marker with the JSON payload + worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); + + // 6️⃣ Save the workbook as XLSX + workbook.Save("JsonSingleCell.xlsx"); + + Console.WriteLine("Excel file created successfully! Check JsonSingleCell.xlsx."); + } + } +} +``` + +**Ожидаемый вывод в Excel** + +| A | +|---| +| `[{"Name":"John","Age":30},{"Name":"Jane","Age":28}]` | + +Эта единственная ячейка теперь содержит полностью корректный массив JSON, готовый к дальнейшей обработке. + +--- + +## Часто задаваемые вопросы и особые случаи + +### Что делать, если нужен JSON, разбитый по строкам? + +Установите `ArrayAsSingle = false` (значение по умолчанию). Aspose создаст строку для каждого элемента массива, сопоставив свойства объектов с колонками. Это удобно, когда нужен табличный вид вместо сырого JSON‑строка. + +### Можно ли использовать JSON‑файл вместо жёстко закодированной строки? + +Конечно. Считайте файл в строку: + +```csharp +string jsonData = File.ReadAllText("people.json"); +``` + +Затем передайте `jsonData` в тот же вызов `Process`. Остальная часть конвейера остаётся без изменений. + +### Работает ли это с большими JSON‑нагрузками? + +Да, но следите за потреблением памяти. Для огромных массивов рассмотрите потоковую передачу данных или запись напрямую в строки (`ArrayAsSingle = false`), чтобы избежать одной гигантской ячейки, с которой Excel может справиться тяжело. + +### Совместим ли полученный XLSX со старыми версиями Excel? + +Формат `.xlsx` основан на Office Open XML и работает с Excel 2007 и новее. Если нужен старый формат `.xls`, измените вызов сохранения: + +```csharp +workbook.Save("JsonSingleCell.xls", SaveFormat.Excel97To2003); +``` + +--- + +## Pro Tips для работы с JSON и Excel + +- **Validate JSON first** – используйте `System.Text.Json.JsonDocument.Parse(jsonData)`, чтобы сразу отловить некорректный ввод. +- **Escape special characters** – если ваш JSON содержит переносы строк, они появятся как литералы `\n` в ячейке; замените их на `Environment.NewLine` перед обработкой. +- **Reuse Smart Markers** – можно разместить несколько маркеров на одном листе, каждый из которых указывает на разное свойство JSON. +- **Combine with formulas** – после того как JSON окажется в ячейке, можно воспользоваться функцией Excel `FILTERXML` (в новых версиях) для мгновенного парсинга. + +--- + +## Заключение + +Теперь вы знаете, как **create excel workbook c#**, встроить JSON‑payload и **save workbook as xlsx** с помощью Aspose.Cells. Этот шаблон позволяет **generate excel from json**, **write json to excel** и **insert json into excel** всего несколькими строками кода, упрощая обмен данными между сервисами и аналитиками. + +Готовы к следующему шагу? Попробуйте преобразовать массив JSON в полноценную таблицу (установив `ArrayAsSingle = false`) или поиграйте со стилизацией листа после вставки. Тот же подход работает и для CSV, XML, и даже пользовательских объектов — просто измените тип Smart Marker. + +Приятного кодинга и экспериментируйте! Если возникнут вопросы, оставляйте комментарий ниже или загляните в официальную документацию Aspose для более глубокого изучения Smart Markers. + +{{< /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/russian/net/excel-workbook/_index.md b/cells/russian/net/excel-workbook/_index.md index 3ee4af6a3a..d80ee37c89 100644 --- a/cells/russian/net/excel-workbook/_index.md +++ b/cells/russian/net/excel-workbook/_index.md @@ -86,6 +86,7 @@ Power Query может стать настоящим прорывом в обр | [Предварительный просмотр печати рабочей тетради](./workbook-print-preview/) | Узнайте, как создавать предварительные просмотры для файлов Excel с помощью Aspose.Cells для .NET. Изучите шаги кодирования в подробном, простом для понимания руководстве. | | [Работа со свойствами типа контента](./working-with-content-type-properties/) | Узнайте, как использовать Aspose.Cells для .NET для работы со свойствами типа контента для улучшенного управления метаданными Excel. Следуйте этому простому пошаговому руководству. | | [Поддержка подписи Xades](./xades-signature-support/) | Узнайте, как добавлять подписи Xades в файлы Excel с помощью Aspose.Cells для .NET с помощью этого пошагового руководства. Защитите свои документы. | +| [Создать главный лист в C# – Полное руководство Aspose.Cells](./create-master-sheet-in-c-complete-aspose-cells-guide/) | Узнайте, как создать главный лист в Excel с помощью Aspose.Cells для .NET на C# в полном пошаговом руководстве. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/russian/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md b/cells/russian/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md new file mode 100644 index 0000000000..6864a74dc8 --- /dev/null +++ b/cells/russian/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-03-30 +description: Создайте главный лист с помощью Aspose.Cells в C#. Узнайте, как создать + Excel‑книгу в C#, разрешить дублирование имён листов и сохранить книгу в формате + XLSX за несколько шагов. +draft: false +keywords: +- create master sheet +- create excel workbook c# +- save workbook as xlsx +- allow duplicate sheet names +language: ru +og_description: Создайте главный лист с помощью Aspose.Cells в C#. Это руководство + показывает, как создать Excel‑книгу в C#, разрешить дублирование имён листов и сохранить + книгу в формате XLSX. +og_title: Создание главного листа в C# – Полное руководство по Aspose.Cells +tags: +- Aspose.Cells +- C# +- Excel automation +title: Создание главного листа в C# – Полное руководство по Aspose.Cells +url: /ru/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Создание листа‑мастера в C# – Полное руководство по Aspose.Cells + +Когда‑нибудь вам нужно было **создать лист‑мастер** в файле Excel, но вы не знали, как обработать множество листов‑деталей, имеющих одинаковое базовое имя? Вы не одиноки. Во многих сценариях отчётности у вас оказывается десятки вкладок‑деталей, а стандартное поведение большинства библиотек — бросать исключение, когда два листа получат одинаковое имя. + +К счастью, Aspose.Cells делает процесс **создания листа‑мастера**, настройки движка на **разрешение дублирования имён листов** и последующего **сохранения книги как XLSX** простым делом — всё из чистого кода C#. В этом руководстве мы пройдём полностью рабочий пример, объясним, почему важна каждая строка, и дадим несколько советов, которые вы сможете сразу скопировать в свои проекты. + +> **Что вы получите** +> * Как **создать Excel‑книгу C#**‑стиля с помощью Aspose.Cells. +> * Как встроить smart‑marker, который создаёт лист‑деталь для каждой строки данных. +> * Как установить `DetailSheetNewName = DuplicateAllowed`, чтобы библиотека автоматически добавляла числовой суффикс. +> * Как **сохранить книгу как XLSX** на диск без дополнительных шагов. + +Никакой внешней документации не требуется — всё, что нужно, находится здесь. + +--- + +## Требования + +Перед тем как приступить, убедитесь, что у вас есть: + +| Требование | Почему это важно | +|------------|-------------------| +| .NET 6.0 или новее (или .NET Framework 4.7+) | Aspose.Cells 23.x+ ориентирован на эти среды выполнения. | +| Visual Studio 2022 (или любой IDE для C#) | Для удобного создания проекта и отладки. | +| NuGet‑пакет Aspose.Cells для .NET (`Install-Package Aspose.Cells`) | Библиотека, обеспечивающая всю магию smart‑marker. | +| Базовые знания C# | Вы сможете понять синтаксис без курса «с нуля». | + +Если чего‑то не хватает, добавьте сейчас — нет смысла продолжать с неполной средой. + +--- + +## Шаг 1: Создание листа‑мастера с Aspose.Cells + +Первое, что мы делаем, — **создаём Excel‑книгу C#**‑стиля, создавая объект `Workbook`. Этот объект уже содержит лист по умолчанию, который мы переименуем в «Master» и будем использовать как шаблон для всех листов‑деталей. + +```csharp +using Aspose.Cells; + +// Step 1: Initialise a new workbook – this automatically gives us one sheet +Workbook workbook = new Workbook(); + +// Grab the first (and only) worksheet that comes with a fresh workbook +Worksheet masterSheet = workbook.Worksheets[0]; + +// Give it a meaningful name – this will be our master sheet +masterSheet.Name = "Master"; +``` + +*Почему переименовывать лист?* +Имя по умолчанию, например «Sheet1», не отражает назначения, а позже, когда вы просматриваете файл, вам нужен сразу узнаваемый мастер‑вкладка. Переименование также предотвращает случайные конфликты при добавлении новых листов. + +--- + +## Шаг 2: Подготовка smart‑marker, который будет создавать листы‑детали + +Smart‑markers — это заполнители, которые Aspose.Cells заменяет данными во время выполнения. Поместив `{{#detail:DataSheetName}}` в ячейку **A1**, мы говорим движку: «Для каждой записи в источнике данных создать новый лист, имя которого берётся из поля `DataSheetName`.» + +```csharp +// Step 2: Insert a smart‑marker into cell A1. +// The marker #detail tells Aspose.Cells to generate a new sheet per data row. +masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); +``` + +Считайте маркер маленькой инструкцией, приклеенной к листу. Когда процессор запускается, он читает инструкцию, берёт соответствующее значение из источника данных и клонирует лист‑мастер в новую вкладку. + +--- + +## Шаг 3: Формирование источника данных – намеренно дублирующие имена листов + +В реальном проекте вы, вероятно, будете получать данные из базы, но для демонстрации используем массив анонимных объектов в памяти. Обратите внимание, что оба элемента используют одинаковое базовое имя `"Detail"`; именно в такой ситуации **разрешение дублирования имён листов** становится критически важным. + +```csharp +// Step 3: Create a data source with two items that share the same base sheet name. +var dataSource = new[] +{ + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } +}; +``` + +Если попытаться выполнить это без специальных настроек, Aspose.Cells выбросит исключение на второй итерации, потому что лист с именем «Detail» уже существует. Поэтому следующий шаг имеет значение. + +--- + +## Шаг 4: Включение дублирования имён листов + +Aspose.Cells предоставляет свойство `SmartMarkerOptions.DetailSheetNewName`. Установив его в `DetailSheetNewName.DuplicateAllowed`, вы говорите движку автоматически добавлять числовой суффикс (например, «Detail_1») каждый раз, когда происходит конфликт имён. + +```csharp +// Step 4: Configure SmartMarker options to permit duplicate sheet names. +var smartMarkerOptions = new SmartMarkerOptions +{ + // This makes the library rename clashes to "Detail_1", "Detail_2", etc. + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed +}; +``` + +*Почему не задавать уникальные имена вручную?* +Потому что часто исходные данные не гарантируют уникальность, особенно когда пользователи вводят свободный текст. Делегирование библиотеки задачи добавления суффикса устраняет целый класс багов. + +--- + +## Шаг 5: Обработка smart‑marker и генерация листов‑деталей + +Теперь вызываем `SmartMarkers.Process`, передавая как источник данных, так и только что настроенные параметры. Метод проходит по каждому элементу, клонирует лист‑мастер и переименовывает клон согласно полю `DataSheetName` (с добавлением суффикса при необходимости). + +```csharp +// Step 5: Run the smart‑marker processor – this creates the detail sheets. +masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); +``` + +После выполнения этой строки в книге будет три вкладки: + +1. **Master** – оригинальный шаблон. +2. **Detail** – первый сгенерированный лист (суффикс не нужен). +3. **Detail_1** – второй сгенерированный лист (суффикс добавлен автоматически). + +Проверьте, открыв файл в Excel — вы увидите два листа‑детали рядом. + +--- + +## Шаг 6: Сохранение книги как файла XLSX + +Наконец, сохраняем файл на диск. Метод `Save` автоматически выбирает формат XLSX, если вы указываете расширение `.xlsx`. + +```csharp +// Step 6: Persist the workbook – this is the moment we finally “save workbook as XLSX”. +string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; +workbook.Save(outputPath); +``` + +**Pro tip:** Если нужно передать файл напрямую в веб‑ответ (например, в ASP.NET Core), используйте `workbook.Save(stream, SaveFormat.Xlsx)` вместо пути к файлу. + +--- + +## Полный рабочий пример + +Ниже представлен полностью готовый к запуску код. Скопируйте его в консольное приложение, нажмите F5 и откройте сгенерированный файл, чтобы увидеть результат. + +```csharp +using System; +using Aspose.Cells; + +namespace MasterSheetDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook and rename the default sheet to "Master" + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert a smart‑marker that will generate a detail sheet per data row + masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); + + // 3️⃣ Prepare a data source where two rows share the same sheet name + var dataSource = new[] + { + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } + }; + + // 4️⃣ Allow duplicate sheet names – the library will add "_1", "_2", … + var smartMarkerOptions = new SmartMarkerOptions + { + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed + }; + + // 5️⃣ Process the smart‑markers; this creates the detail sheets + masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); + + // 6️⃣ Save the workbook as an XLSX file + string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Ожидаемый результат:** Откройте `DuplicateDetailSheets.xlsx` — вы увидите три листа: `Master`, `Detail` и `Detail_1`. Каждый лист‑деталь является точной копией мастера, готовой к заполнению данными, специфичными для строки. + +--- + +## Часто задаваемые вопросы и особые случаи + +### Что делать, если нужно более двух дублирующих листов? + +Никаких проблем. Настройка `DuplicateAllowed` будет продолжать добавлять последовательные номера (`Detail_2`, `Detail_3`, …), пока у каждой строки не будет своей вкладки. + +### Можно ли изменить формат суффикса? + +По умолчанию Aspose.Cells использует подчёркивание и числовой индекс. Если нужен иной шаблон (например, «Detail‑A», «Detail‑B»), придётся пост‑обрабатывать книгу после выполнения `Process`, проходя по `workbook.Worksheets` и переименовывая листы вручную. + +### Работает ли такой подход с большими наборами данных (сотни строк)? + +Да, но следите за потреблением памяти. Каждый сгенерированный лист — полная копия мастера, поэтому большое количество строк быстро увеличивает размер файла. Если требуется лишь несколько строк на лист, рассмотрите возможность включения `SmartMarkerOptions.RemoveEmptyRows = true` для удаления лишних ячеек. + +### Является ли полученный файл действительно XLSX? + +Абсолютно. Метод `Save` записывает пакет Open XML, который ожидает Excel. Файл можно открыть в LibreOffice или Google Sheets без какой‑либо конвертации. + +--- + +## Советы для production‑кода + +| Совет | Почему это важно | +|------|-------------------| +| **Dispose `Workbook + +{{< /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/russian/net/formulas-functions/_index.md b/cells/russian/net/formulas-functions/_index.md index 9b89f0ca4f..1327d4bd58 100644 --- a/cells/russian/net/formulas-functions/_index.md +++ b/cells/russian/net/formulas-functions/_index.md @@ -102,64 +102,10 @@ ### [Обновление формул Excel Power Query с помощью Aspose.Cells .NET](./update-power-query-formulas-aspose-cells-net) Узнайте, как программно обновлять формулы Power Query в книгах Excel с помощью Aspose.Cells для .NET. Управление основными источниками данных для динамической отчетности. -## Понимание типов формул Excel +### [Как использовать WRAPCOLS в C# – Создание книги Excel с функциями обёртывания](./how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/) -Формулы Excel существуют в различных формах, каждая из которых обладает уникальными характеристиками, которыми может управлять Aspose.Cells: - -### Стандартные формулы ячеек - -Вот наиболее распространённые формулы, работающие с отдельными ячейками: - -- **Арифметические формулы**: Базовые расчеты, такие как `=A1+B1` -- **Формулы, основанные на функциях**: Использование встроенных функций, таких как `=SUM(A1:A10)` -- **Логические формулы**: Условная логика с такими функциями, как `=IF(A1>10,"High","Low")` -- **Текстовые формулы**: Обработка текста с помощью таких функций, как `=CONCATENATE(A1," ",B1)` - -### Формулы, основанные на диапазоне - -Эти формулы работают с диапазонами ячеек: - -- **Формулы агрегации**: Функции, подобные `=AVERAGE(A1:A100)` которые обрабатывают несколько ячеек -- **Формулы поиска**: Справочные функции, такие как `=VLOOKUP(E1,A1:B20,2,FALSE)` для извлечения данных -- **Формулы базы данных**: Специализированные функции, такие как `=DSUM(A1:F100,"Amount",G1:H2)` для фильтрации и расчета - -### Формулы массива - -Формулы массива выполняют вычисления над несколькими значениями одновременно: - -- **Формула одноклеточного массива**: Возвращает один результат, но обрабатывает массивы внутренне -- **Формула многоячеечного массива**: Заполняет несколько ячеек связанными результатами -- **Динамические массивы**: Современные формулы Excel, которые автоматически переносят результаты в соседние ячейки - -### Именованные формулы - -В этих формулах используются именованные диапазоны или определенные имена: - -- **Ссылки на именованные диапазоны**: Использование определенных имен, таких как `=SUM(SalesData)` -- **Структурированные ссылки**: Ссылки на таблицы, например `=SUM(Table1[Amount])` -- **Динамические именованные диапазоны**: Формулы, которые автоматически подстраиваются под размер данных - -## Лучшие практики управления формулами - -### Оптимизация производительности - -Для обеспечения эффективной обработки формул: - -1. **Настройка пакетной формулы**: Применяйте формулы к диапазонам, а не к каждой ячейке отдельно -2. **Рассчитать выборочно**: Используйте целевой расчет, когда это возможно, вместо полного пересчета -3. **Минимизируйте изменчивые функции**: Ограничьте использование функций типа NOW() или RAND(), которые вызывают пересчет -4. **Используйте общие формулы**: Используйте возможности общей формулы для повышения эффективности памяти - -### Надежность формулы - -Для надежной реализации формулы: - -1. **Обработка ошибок**: Реализовать обработку ошибок формулы с помощью IFERROR или аналогичных функций -2. **Анализ зависимости клеток**: Понимание зависимостей формул, чтобы избежать циклических ссылок -3. **Аудит формулы**: Проверьте логику формулы перед развертыванием -4. **Документация**: Ведение четкой документации сложных структур формул. - -Освоив возможности формул с помощью Aspose.Cells для .NET, вы сможете создавать сложные вычислительные механизмы в своих электронных таблицах, которые будут выдавать точные и динамичные результаты без необходимости установки Excel. +### [Создание книги Excel C# – руководство по Lambda, SEQUENCE и EXPAND](./create-excel-workbook-c-lambda-sequence-expand-guide/) +Узнайте, как использовать функции Lambda, SEQUENCE и EXPAND в C# для создания и заполнения книг Excel с помощью Aspose.Cells. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/russian/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md b/cells/russian/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md new file mode 100644 index 0000000000..9e2a0cc2a4 --- /dev/null +++ b/cells/russian/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-30 +description: Создайте Excel‑книгу в C# с использованием Aspose.Cells. Узнайте, как + применять лямбда‑функцию в Excel, функцию последовательности в Excel, расширять + массив в Excel и сохранять книгу в формате xlsx. +draft: false +keywords: +- create excel workbook c# +- lambda function excel +- save workbook as xlsx +- sequence function excel +- expand array excel +language: ru +og_description: Быстро создайте книгу Excel на C#. Это руководство показывает, как + использовать лямбда‑функцию Excel, функцию последовательности Excel, расширение + массива Excel и сохранить книгу в формате xlsx. +og_title: Создание рабочей книги Excel на C# – Руководство по Lambda, SEQUENCE и EXPAND +tags: +- Aspose.Cells +- C# +- Excel automation +title: Создание книги Excel на C# – Руководство по Lambda, SEQUENCE и EXPAND +url: /ru/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Создание Excel Workbook C# – Lambda, SEQUENCE & EXPAND руководство + +Когда‑нибудь вам нужно было **создать Excel workbook C#** для автоматизированного отчёта, но вы не знали, какие вызовы API использовать? Вы не одиноки — многие разработчики сталкиваются с тем же самым, когда впервые погружаются в программную генерацию Excel. В этом руководстве вы увидите полностью готовый, исполняемый пример, который охватывает всё от новой **SEQUENCE function Excel** до мощной **LAMBDA function Excel**, а также как **expand array Excel** результаты. + +Мы также покажем точные шаги, как **save workbook as xlsx**, чтобы вы могли передать файл любому пользователю Excel. К концу этого урока у вас будет надёжный, готовый к продакшену фрагмент кода, который можно вставить в любой .NET‑проект. Никаких расплывчатых ссылок «см. документацию» — только работающий код. + +## Что вам понадобится + +- **.NET 6.0 или новее** — пример ориентирован на .NET 6, но подойдёт любая современная версия. +- **Aspose.Cells for .NET** — установить через NuGet (`Install-Package Aspose.Cells`). +- Базовое понимание синтаксиса C# (переменные, объекты и lambda‑выражения). +- IDE, с которым вам удобно работать (Visual Studio, Rider или VS Code). + +Вот и всё. Никакого дополнительного COM‑interop, без установки Office на сервер — Aspose.Cells обрабатывает всё в памяти. + +## Создание Excel Workbook C# – пошаговая реализация + +Ниже мы разбиваем процесс на небольшие шаги. Каждый шаг имеет чёткий заголовок, короткий фрагмент кода и объяснение **почему** мы это делаем. Смело копируйте полный блок в конце и запускайте как консольное приложение. + +### Шаг 1 – Инициализация нового Workbook + +Сначала нам нужен пустой объект workbook, представляющий файл Excel в памяти. + +```csharp +using Aspose.Cells; + +// Step 1: Create a new workbook and get the first worksheet +Workbook workbook = new Workbook(); // empty workbook +Worksheet sheet = workbook.Worksheets[0]; // default first sheet +``` + +*Почему это важно:* `Workbook` — точка входа для всех операций Aspose.Cells. Получив первый `Worksheet`, мы получаем холст, где можем записывать формулы, значения или форматирование. + +> **Pro tip:** Если нужны несколько листов, просто вызовите `workbook.Worksheets.Add()` и сохраните ссылку на каждый. + +### Шаг 2 – Использование функции SEQUENCE Excel для генерации данных + +**sequence function excel** создаёт динамический массив чисел без VBA. Мы разместим её в ячейке `A1` и позволим Excel автоматически расширить диапазон. + +```csharp +// Step 2: Generate a 5‑row, 1‑column array from a SEQUENCE +sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; // 1..3 padded with blanks +``` + +*Почему это важно:* `SEQUENCE(3)` возвращает `[1,2,3]`. Обернув её в `EXPAND`, мы принудительно получаем диапазон из 5 строк, заполняя лишние строки пустыми значениями. Это демонстрирует одновременно **sequence function excel** и **expand array excel**. + +### Шаг 3 – Агрегация чисел с помощью функции LAMBDA Excel + +Теперь продемонстрируем возможности **lambda function excel**. Мы сложим числа от 1 до 5, используя новую функцию `REDUCE`, которая внутри опирается на lambda. + +```csharp +// Step 3: Aggregate a sequence (sum 1..5) using REDUCE/LAMBDA +sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; // result = 15 +``` + +*Почему это важно:* `REDUCE` проходит по массиву, полученному из `SEQUENCE(5)`, передавая каждый элемент (`b`) в lambda вместе с аккумулятором (`a`). Lambda `a+b` складывает их, в результате в `B1` будет `15`. Это чистый, только‑формульный способ выполнять редукцию без циклов в C#. + +### Шаг 4 – Применение тригонометрических функций непосредственно в ячейках + +Встроенные математические функции Excel удобны для быстрых вычислений. Мы разместим котангенс и гиперболический котангенс в соседних ячейках. + +```csharp +// Step 4: Trigonometric functions directly in Excel cells +sheet["C1"].Formula = "COT(PI()/4)"; // evaluates to 1 +sheet["D1"].Formula = "COTH(1)"; // hyperbolic cotangent of 1 +``` + +*Почему это важно:* Показано, что можно сочетать классические математические функции с новыми динамическими массивными формулами. Нет необходимости вычислять эти значения в C#, если только у вас нет особых требований к производительности. + +### Шаг 5 – Вычисление всех формул + +Aspose.Cells не вычисляет формулы автоматически при их установке. Нужно явно вызвать вычисление. + +```csharp +// Step 5: Force calculation so that cells store the results +workbook.CalculateFormula(); +``` + +*Почему это важно:* После этого вызова свойство `Value` каждой ячейки содержит вычисленный результат, готовый к сохранению или чтению обратно. + +### Шаг 6 – Сохранение Workbook в формате Xlsx + +Наконец, сохраняем workbook на диск, используя шаблон **save workbook as xlsx**. + +```csharp +// Step 6: Save the workbook to an Excel file (XLSX format) +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + +workbook.Save(outputPath); +Console.WriteLine($"Workbook saved to: {outputPath}"); +``` + +*Почему это важно:* Метод `Save` автоматически определяет расширение файла. Указывая “.xlsx”, мы гарантируем совместимость с современными версиями Excel. Путь указывает на рабочий стол для удобного доступа во время тестирования. + +### Полный рабочий пример + +Ниже полный код программы, который можно вставить в новый консольный проект. Он включает все перечисленные шаги, а также небольшой блок проверки, выводящий вычисленные значения в консоль. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialize workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + + // SEQUENCE + EXPAND + sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; + + // REDUCE with LAMBDA + sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; + + // Trig functions + sheet["C1"].Formula = "COT(PI()/4)"; + sheet["D1"].Formula = "COTH(1)"; + + // Calculate formulas + workbook.CalculateFormula(); + + // Verify results (optional) + Console.WriteLine("A1‑A5 (expanded SEQUENCE):"); + for (int i = 0; i < 5; i++) + { + Console.WriteLine($" Row {i + 1}: {sheet.Cells[i, 0].Value ?? "blank"}"); + } + Console.WriteLine($"B1 (sum 1‑5): {sheet["B1"].Value}"); + Console.WriteLine($"C1 (cot(π/4)): {sheet["C1"].Value}"); + Console.WriteLine($"D1 (coth(1)): {sheet["D1"].Value}"); + + // Save workbook + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + workbook.Save(outputPath); + Console.WriteLine($"Workbook saved to: {outputPath}"); + } +} +``` + +**Ожидаемый вывод в консоли** + +``` +A1‑A5 (expanded SEQUENCE): + Row 1: 1 + Row 2: 2 + Row 3: 3 + Row 4: blank + Row 5: blank +B1 (sum 1‑5): 15 +C1 (cot(π/4)): 1 +D1 (coth(1)): 1.31303528549933 +Workbook saved to: C:\Users\YourName\Desktop\NewFunctions.xlsx +``` + +И когда вы откроете *NewFunctions.xlsx*, вы увидите те же числа, расположенные в первых четырёх столбцах. + +![create excel workbook c# screenshot of the resulting spreadsheet](/images/create-excel-workbook-csharp.png) + +## Пограничные случаи, советы и часто задаваемые вопросы + +- **Что делать, если нужен более чем один лист?** + Просто вызовите `workbook.Worksheets.Add()` и повторите назначение формул для каждого нового объекта `Worksheet`. + +- **Можно ли использовать более старые версии Excel?** + Динамические массивные функции (`SEQUENCE`, `EXPAND`, `REDUCE`) требуют Excel 365 или Excel 2021+. Если вы нацелены на более старые версии, используйте классические формулы или вычисляйте значения в C# перед записью. + +- **Беспокойства по поводу производительности?** + Для тысяч строк установка формул на диапазон и последующий вызов `CalculateFormula` обычно быстрее, чем цикл с поэлементным присваиванием значений. + +- **Сохранение в поток вместо файла?** + `work + +{{< /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/russian/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md b/cells/russian/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md new file mode 100644 index 0000000000..ceb45f0012 --- /dev/null +++ b/cells/russian/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md @@ -0,0 +1,214 @@ +--- +category: general +date: 2026-03-30 +description: Узнайте, как использовать WRAPCOLS в C# для создания рабочей книги Excel, + добавления данных в Excel и принудительного вычисления формул, одновременно используя + WRAPROWS. +draft: false +keywords: +- how to use wrapcols +- create excel workbook c# +- add data to excel +- force formula calculation +- how to use wraprows +language: ru +og_description: Узнайте, как использовать WRAPCOLS в C# для создания книги Excel, + добавления данных, принудительного вычисления формул и применения WRAPROWS для массивных + формул. +og_title: Как использовать WRAPCOLS в C# – Полное руководство +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Как использовать WRAPCOLS в C# – Создание Excel‑рабочей книги с функциями обтекания +url: /ru/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Как использовать WRAPCOLS в C# – Создание Excel Workbook с функциями Wrap + +Когда‑то задавались вопросом **как использовать WRAPCOLS**, автоматизируя Excel с помощью C#? Вы не одиноки — многие разработчики сталкиваются с проблемой, когда нужно превратить горизонтальный диапазон в вертикальный массив без написания кучи кода. Хорошая новость в том, что Aspose.Cells делает это проще простого. + +В этом руководстве мы пройдем полный, готовый к запуску пример, который показывает **как использовать WRAPCOLS**, как **создать Excel workbook C#**‑style, как **добавить данные в Excel**, а также как **принудительно вычислить формулы**, чтобы результаты появились мгновенно. Мы также добавим **как использовать WRAPROWS** для обратного преобразования. К концу вы получите готовую к запуску программу и чёткое понимание, почему каждый шаг важен. + +--- + +![Пример использования WRAPCOLS в C#](alt="Скриншот, показывающий книгу Excel после использования WRAPCOLS в C#") + +## Что покрывает это руководство + +* Настройка новой книги с Aspose.Cells. +* Заполнение ячеек программно (**add data to Excel**). +* Применение функции `WRAPCOLS` для преобразования строки в столбец. +* Использование `WRAPROWS` для преобразования столбца обратно в строку (**how to use wraprows**). +* Принудительный расчёт формул движком (**force formula calculation**). +* Сохранение файла и проверка результата. + +Никакой внешней документации не требуется — всё, что нужно, находится прямо здесь. + +--- + +## Как использовать WRAPCOLS в C# – Пошаговая реализация + +Ниже приведён полный исходный файл. Смело копируйте‑вставляйте его в новый консольный проект, добавьте пакет Aspose.Cells через NuGet и нажмите **F5**. + +```csharp +// ------------------------------------------------------------ +// How to Use WRAPCOLS in C# – Complete Example +// ------------------------------------------------------------ +using System; +using Aspose.Cells; + +namespace WrapFunctionsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a fresh workbook (this is how we **create excel workbook c#** style) + Workbook workbook = new Workbook(); + + // 2️⃣ Grab the first worksheet – it's created by default + Worksheet sheet = workbook.Worksheets[0]; + + // 3️⃣ **Add data to Excel**: place two numbers side‑by‑side + sheet.Cells["A1"].PutValue(1); // first value + sheet.Cells["B1"].PutValue(2); // second value + + // 4️⃣ **How to use WRAPCOLS** – turn the horizontal range A1:B1 into a vertical array + // The second argument (1) tells WRAPCOLS to create 1 column per element. + sheet["C1"].Formula = "WRAPCOLS(A1:B1, 1)"; + + // 5️⃣ **How to use WRAPROWS** – the opposite; turn the same range into a horizontal array + // Here we ask for 2 rows per element, which produces a single row with both values. + sheet["C2"].Formula = "WRAPROWS(A1:B1, 2)"; + + // 6️⃣ **Force formula calculation** so the workbook reflects the results immediately + workbook.CalculateFormula(); + + // 7️⃣ Save the workbook to disk – change the path to a folder you own + string outputPath = @"WrapFunctions.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + Console.WriteLine("Check cells C1 and C2 for the WRAPCOLS / WRAPROWS results."); + } + } +} +``` + +### Почему каждая строка важна + +| Шаг | Объяснение | +|------|-------------| +| **1️⃣ Создать новую книгу** | Это основа. Aspose.Cells рассматривает объект `Workbook` как весь файл Excel, поэтому вы фактически **создаёте Excel workbook C#** в стиле. | +| **2️⃣ Получить первый лист** | Новая книга всегда содержит как минимум один лист (`Worksheets[0]`). Доступ к нему сразу же избавляет от неожиданностей с null‑reference. | +| **3️⃣ Добавить данные в Excel** | С помощью `PutValue` мы **add data to Excel** без забот о форматировании ячеек. Числа `1` и `2` — наши тестовые данные для функций wrap. | +| **4️⃣ Как использовать WRAPCOLS** | `WRAPCOLS(A1:B1, 1)` говорит Excel взять диапазон `A1:B1` и «разлить» его значения вертикально, по одному в строке. Результат попадает в `C1` и продолжается вниз (`C1`, `C2`, …). | +| **5️⃣ Как использовать WRAPROWS** | `WRAPROWS(A1:B1, 2)` делает наоборот: создаёт горизонтальное «разливание», помещая два значения в одну строку, начиная с `C2`. | +| **6️⃣ Принудительный расчёт формул** | По умолчанию Aspose.Cells может откладывать вычисление до открытия файла в Excel. Вызов `CalculateFormula()` **forces formula calculation**, позволяя сразу же прочитать результаты после сохранения. | +| **7️⃣ Сохранить книгу** | Финальный шаг записывает всё на диск. Откройте полученный `WrapFunctions.xlsx`, чтобы увидеть результат. | + +--- + +## Создание Excel Workbook C# – Настройка среды + +Прежде чем запускать код, убедитесь, что у вас есть нужные инструменты: + +1. **.NET 6.0+** — последняя LTS‑версия работает лучше всего. +2. **Visual Studio 2022** (или VS Code с расширением C#). +3. **Aspose.Cells for .NET** — установить через NuGet: + ```bash + dotnet add package Aspose.Cells + ``` +4. Папка с правом записи для выходного файла. + +Эти предварительные требования минимальны; не требуется COM‑interop или установка Office, именно поэтому Aspose.Cells популярен для серверной генерации Excel. + +--- + +## Добавить данные в Excel – Лучшие практики + +Когда вы **add data to Excel** программно, учитывайте следующие рекомендации: + +* **Используйте `PutValue`** для чистых чисел или строк; он автоматически определяет тип данных. +* **Избегайте жёсткого кодирования адресов ячеек** в больших проектах — используйте циклы или именованные диапазоны для масштабируемости. +* **Применяйте стили к ячейкам экономно**; каждое изменение стиля добавляет нагрузку. Если нужен формат, создайте один объект стиля и примените его к нескольким ячейкам. + +В нашем небольшом примере мы вставляем только два числа, но тот же шаблон масштабируется до тысяч строк. + +--- + +## Как использовать WRAPROWS – Пример горизонтального массива + +Если нужен обратный результат к `WRAPCOLS`, `WRAPROWS` — ваш выбор. Синтаксис выглядит так: + +``` +WRAPROWS(source_range, [rows_per_item]) +``` + +* `source_range` — диапазон, который нужно преобразовать. +* `rows_per_item` — необязательно; указывает Excel, сколько строк занимает каждый элемент. В нашем демо мы использовали `2`, чтобы разместить оба значения в одной строке. + +Вы можете поэкспериментировать, изменив второй аргумент: + +```csharp +// Example: split each value into its own column, three rows per item +sheet["D1"].Formula = "WRAPROWS(A1:B1, 3)"; +``` + +Откройте книгу, и вы увидите, как значения «разливаются» по трём столбцам, каждый столбец содержит исходные числа, повторённые по необходимости. + +--- + +## Принудительный расчёт формул – Когда и почему + +Вы можете задаться вопросом: «Нужно ли действительно вызывать `CalculateFormula()`?» Ответ — **да**, если: + +* Вы планируете читать вычисленные значения **программно** после сохранения. +* Вы хотите гарантировать, что файл откроется в Excel с уже отображёнными правильными результатами. +* Вы работаете в **headless‑среде** (например, веб‑API), где пользователь не будет вручную инициировать пересчёт. + +Пропуск этого шага не сломает книгу, но ячейки будут показывать текст формулы (`=WRAPCOLS(...)`) вместо вычисленных значений, пока Excel не пересчитает их. + +--- + +## Ожидаемый результат – Что искать + +После выполнения программы и открытия `WrapFunctions.xlsx`: + +| Ячейка | Формула | Отображаемое значение | +|--------|---------|------------------------| +| **C1** | `=WRAPCOLS(A1:B1, 1)` | `1` (в C1) и `2` (в C2) — вертикальный список | +| **C2** | `=WRAPROWS(A1:B1, 2)` | `1` в C2 и `2` в D2 — горизонтальный список | + +Таким образом, вы увидите столбец значений, начинающийся с **C1**, и строку значений, начинающуюся с **C2**. Это подтверждает, что обе функции wrap отработали как ожидалось. + +--- + +## Пограничные случаи и варианты + +| Сценарий | Что меняется? | Рекомендуемая правка | +|----------|---------------|----------------------| +| **Большой диапазон (A1:Z1)** | Больше значений для вертикального «разливания» | Увеличьте второй аргумент `WRAPCOLS`, если хотите несколько столбцов на группу. | +| **Не числовые данные** | Строки обрабатываются так же | Код менять не нужно; `PutValue` принимает любой объект. | +| **Динамический диапазон** | Размер неизвестен во время компиляции | Используйте `sheet.Cells.MaxDataColumn` и `MaxDataRow` для построения строки адреса. | +| **Несколько листов** | Нужно применять функции wrap на разных листах | Ссылайтесь на нужный лист (`workbook.Worksheets["Sheet2"]`). | + +Предвидя эти варианты, вы сможете адаптировать основной шаблон под почти любую задачу автоматизации. + +--- + +## Профессиональные советы из практики + +* **Pro tip:** Оберните создание книги в блок `using`, если целитесь на .NET Core 3.1+ — это гарантирует своевременное освобождение всех ресурсов. +* **Watch out for:** Установка одной и той же формулы в большом диапазоне без вызова `CalculateFormula()` может вызвать узкие места в производительности. По возможности группируйте формулы пакетно. +* **Tip:** Если нужно считать обратно вычисленные значения в коде, вызовите ` + +{{< /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/russian/net/tables-and-lists/_index.md b/cells/russian/net/tables-and-lists/_index.md index 55999f3340..52d25ea885 100644 --- a/cells/russian/net/tables-and-lists/_index.md +++ b/cells/russian/net/tables-and-lists/_index.md @@ -47,10 +47,12 @@ Легко преобразуйте таблицы Excel в диапазоны с помощью Aspose.Cells для .NET. Следуйте нашему пошаговому руководству, чтобы сделать манипуляции с данными легкими. ### [Преобразовать таблицу в диапазон с параметрами](./converting-table-to-range-with-options/) Легко преобразуйте таблицы в диапазоны в Excel с помощью Aspose.Cells для .NET с пошаговым руководством. Улучшите свои навыки манипулирования данными Excel. -### [Чтение и запись таблицы с запросом источника данных](./reading-and-writing-table-with-query-data-source/) -Откройте для себя мощь Aspose.Cells для .NET. Научитесь читать и писать таблицы с запросами источников данных в этом подробном пошаговом руководстве. ### [Установить комментарий к таблице или списку в Excel](./setting-comment-of-table-or-list/) Узнайте, как добавлять комментарии к таблицам в Excel с помощью Aspose.Cells для .NET, следуя нашему простому пошаговому руководству. +### [Создать таблицу из диапазона в C# – Полное руководство Aspose.Cells](./create-table-from-range-in-c-complete-aspose-cells-tutorial/) +Научитесь создавать таблицу из диапазона в Excel с помощью Aspose.Cells для .NET, следуя пошаговому полному руководству. +### [Чтение и запись таблицы с запросом источника данных](./reading-and-writing-table-with-query-data-source/) +Откройте для себя мощь Aspose.Cells для .NET. Научитесь читать и писать таблицы с запросами источников данных в этом подробном пошаговом руководстве. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/russian/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md b/cells/russian/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md new file mode 100644 index 0000000000..99378229c9 --- /dev/null +++ b/cells/russian/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md @@ -0,0 +1,231 @@ +--- +category: general +date: 2026-03-30 +description: Создать таблицу из диапазона в C# с помощью Aspose.Cells – добавить данные + в ячейки, преобразовать диапазон в ListObject и сохранить Excel без фильтра. +draft: false +keywords: +- create table from range +- create excel workbook c# +- add data to cells +- convert range to listobject +- save excel without filter +language: ru +og_description: Создайте таблицу из диапазона в C# с помощью Aspose.Cells. Узнайте, + как добавлять данные в ячейки, преобразовать диапазон в ListObject и сохранить Excel + без фильтра. +og_title: Создание таблицы из диапазона в C# – Полный учебник по Aspose.Cells +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Создание таблицы из диапазона в C# – Полный учебник по Aspose.Cells +url: /ru/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Создание таблицы из диапазона в C# – Полный учебник Aspose.Cells + +Когда‑нибудь нужно было **создать таблицу из диапазона** в C#, но вы не знали, как превратить обычный блок данных в полнофункциональную таблицу Excel? Вы не одиноки. Будь то автоматизация отчетов, генерация табелей или просто очистка данных для дальнейшего анализа, освоение этого небольшого трюка может сэкономить вам кучу ручной работы. + +В этом руководстве мы пройдем весь процесс: **create excel workbook c#**, **add data to cells**, **convert range to ListObject**, и, наконец, **save excel without filter**. К концу вы получите готовый фрагмент кода, который можно вставить в любой .NET‑проект, использующий Aspose.Cells. + +--- + +## Prerequisites + +- .NET 6+ (или .NET Framework 4.7.2+) установлен +- Aspose.Cells for .NET (NuGet‑пакет `Aspose.Cells`) – последняя версия на момент написания (23.10) работает безупречно. +- Базовое понимание синтаксиса C# – глубоких знаний Excel‑interop не требуется. + +Если всё это у вас есть, приступаем. + +--- + +## Step 1: Create an Excel Workbook in C# + +Сначала нам нужен новый объект рабочей книги. Представьте его как пустой файл Excel, который впоследствии будет содержать нашу таблицу. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is equivalent to opening a blank .xlsx file. +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (default) worksheet. +``` + +> **Pro tip:** `Workbook()` без аргументов создаёт книгу с одним листом по умолчанию, что идеально подходит для быстрых демонстраций. Если нужны дополнительные листы, их можно добавить позже с помощью `workbook.Worksheets.Add()`. + +--- + +## Step 2: Add Data to Cells + +Теперь заполним лист небольшим набором данных – двумя столбцами (Name, Score) и тремя строками значений. Это демонстрирует **add data to cells** простым и читаемым способом. + +```csharp +// Header row +worksheet.Cells["A1"].PutValue("Name"); +worksheet.Cells["B1"].PutValue("Score"); + +// Data rows +worksheet.Cells["A2"].PutValue("Alice"); +worksheet.Cells["B2"].PutValue(85); +worksheet.Cells["A3"].PutValue("Bob"); +worksheet.Cells["B3"].PutValue(92); +``` + +Почему используем `PutValue`? Он автоматически определяет тип данных (строка или число) и форматирует ячейку соответственно, избавляя вас от необходимости вручную работать с объектами `Style` в простых сценариях. + +> **Expected output:** После этого шага, если открыть книгу в Excel, вы увидите сетку из двух столбцов с заголовками «Name» и «Score», за которыми следуют две строки данных. + +--- + +## Step 3: Convert the Range into a ListObject (Table) + +Вот где происходит магия: превращаем обычный диапазон в таблицу Excel (в API Aspose.Cells это называется **ListObject**). Это не только добавляет визуальное оформление, но и включает встроенные возможности, такие как сортировка, фильтрация и структурированные ссылки. + +```csharp +// Define the range boundaries. +// startRow and startColumn are zero‑based indexes. +// rowCount includes the header row. +int startRow = 0; // Row 1 in Excel +int startColumn = 0; // Column A +int rowCount = 3; // Header + 2 data rows +int columnCount = 2; // Two columns: Name & Score + +// Add a ListObject to the worksheet and retrieve the object. +int listIndex = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); +ListObject table = worksheet.ListObjects[listIndex]; + +// Turn on the UI filter dropdowns so users can interact with the table. +table.ShowAutoFilter = true; +``` + +> **Why use a ListObject?** +> - **Structured references**: Формулы могут обращаться к столбцам по имени. +> - **Auto‑filter UI**: Пользователи получают выпадающие стрелки для быстрой фильтрации. +> - **Styling**: Позже можно применить встроенный стиль таблицы одной строкой кода. + +--- + +## Step 4: Remove the AutoFilter UI (Save Excel Without Filter) + +Иногда нужен чистый лист без стрелок фильтра – например, когда книга является финальным отчётом. Aspose.Cells 23.10 представил простой способ полностью убрать UI фильтра. + +```csharp +// Remove the filter UI completely. +table.AutoFilter = null; // Clears the underlying filter object. +table.ShowAutoFilter = false; // Hides the dropdown arrows. +``` + +Обратите внимание, что мы не удаляем данные; мы лишь отключаем визуальные элементы управления фильтром. Это удовлетворяет требование **save excel without filter**. + +--- + +## Step 5: Save the Workbook + +Наконец, сохраняем книгу на диск. Файл будет содержать таблицу, но без UI фильтра. + +```csharp +// Choose a folder you have write access to. +string outputPath = @"C:\Temp\NoAutoFilter.xlsx"; +workbook.Save(outputPath); +``` + +Откройте `NoAutoFilter.xlsx` в Excel – вы увидите таблицу с оформлением по умолчанию, но без стрелок фильтра. Данные сохранены, и файл готов к распространению. + +--- + +![Скриншот, показывающий создание таблицы из диапазона в Excel с помощью Aspose.Cells](image.png "Скриншот создания таблицы из диапазона") + +*Image alt text:* **Скриншот, показывающий создание таблицы из диапазона в Excel с помощью Aspose.Cells** – визуальное подтверждение того, что таблица существует без выпадающих фильтров. + +--- + +## Full, Runnable Example + +Ниже приведена полная программа, которую можно скопировать в консольное приложение. В ней включены все шаги, а также несколько дополнительных комментариев для ясности. + +```csharp +using System; +using Aspose.Cells; + +namespace AsposeTableDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add data to cells – this is the “add data to cells” part. + worksheet.Cells["A1"].PutValue("Name"); + worksheet.Cells["B1"].PutValue("Score"); + worksheet.Cells["A2"].PutValue("Alice"); + worksheet.Cells["B2"].PutValue(85); + worksheet.Cells["A3"].PutValue("Bob"); + worksheet.Cells["B3"].PutValue(92); + + // 3️⃣ Convert the range into a ListObject (i.e., create table from range). + int startRow = 0, startColumn = 0, rowCount = 3, columnCount = 2; + int listIdx = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); + ListObject table = worksheet.ListObjects[listIdx]; + table.ShowAutoFilter = true; // optional UI filter + + // 4️⃣ Remove the AutoFilter UI – “save excel without filter”. + table.AutoFilter = null; + table.ShowAutoFilter = false; + + // 5️⃣ Save the workbook. + string filePath = @"C:\Temp\NoAutoFilter.xlsx"; + workbook.Save(filePath); + + Console.WriteLine($"Workbook saved to {filePath}"); + } + } +} +``` + +Запустите программу, затем откройте `C:\Temp\NoAutoFilter.xlsx`. Вы увидите красиво оформленную таблицу без стрелок фильтра и введённые данные. Это весь рабочий процесс **create excel workbook c#** в менее чем 60 строк кода. + +--- + +## Frequently Asked Questions & Edge Cases + +**Q: Что делать, если мой диапазон данных не сплошной?** +A: Aspose.Cells требует прямоугольный диапазон для `ListObjects.Add`. Если данные разрознены, сначала соберите временный диапазон (например, скопируйте части на новый лист), а затем преобразуйте его в таблицу. + +**Q: Можно ли применить пользовательский стиль таблицы?** +A: Конечно. После создания `ListObject` задайте `table.TableStyleType = TableStyleType.TableStyleMedium9;` (или любой из 65 встроенных стилей). Это удобный способ подстроить таблицу под фирменный стиль. + +**Q: Как оставить фильтр, но скрыть стрелки?** +A: Логика фильтра хранится в `table.AutoFilter`. Установка `ShowAutoFilter = false` скрывает только UI; сам фильтр остаётся активным. Таким образом, вы можете программно фильтровать строки позже. + +**Q: Что с большими наборами данных (10 000+ строк)?** +A: Тот же API работает, но рекомендуется отключить автоматические вычисления (`workbook.CalcEngine = false`) перед массовой загрузкой данных для повышения производительности, а затем включить их обратно. + +--- + +## Wrap‑Up + +Мы только что рассмотрели, как **create table from range** в C# с помощью Aspose.Cells, шаг за шагом – от **create excel workbook c#**, через **add data to cells**, к **convert range to ListObject**, и, наконец, **save excel without filter**. Код полностью готов, исполняем и подходит для продакшна. + +Дальше вы можете изучить: + +- Добавление условного форматирования для выделения лучших результатов. +- Экспорт книги в PDF с помощью `workbook.Save("Report.pdf", SaveFormat.Pdf);`. +- Использование `table.Columns["Score"].DataBodyRange.Sort` для программной сортировки таблицы. + +Экспериментируйте с различными наборами данных, стилями таблиц или даже несколькими листами. API достаточно гибок, чтобы справиться с любой задачей – от небольшого табло до огромного финансового реестра. + +Есть вопросы или возникли сложности? Оставляйте комментарий ниже или пишите мне на GitHub. Приятного кодинга и наслаждайтесь превращением сырых диапазонов в отшлифованные таблицы 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/spanish/net/conversion-to-pdf/_index.md b/cells/spanish/net/conversion-to-pdf/_index.md index f0f7b76de7..92f5676092 100644 --- a/cells/spanish/net/conversion-to-pdf/_index.md +++ b/cells/spanish/net/conversion-to-pdf/_index.md @@ -34,6 +34,8 @@ Pero espera, ¡hay más! ¿Y si quieres convertir gráficos de tus hojas de Exce Convierte fácilmente hojas de cálculo de Excel a PDF con Aspose.Cells para .NET. Sigue nuestra guía paso a paso para una experiencia fluida. ### [Convertir gráficos a PDF en .NET](./convert-chart-to-pdf/) Aprende a convertir gráficos de Excel a PDF en .NET usando Aspose.Cells con esta guía paso a paso. Ideal para programadores de todos los niveles. +### [Guardar libro de trabajo como PDF con Aspose.Cells – Guía completa paso a paso](./save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/) +Aprende a guardar un libro de Excel como PDF usando Aspose.Cells con instrucciones detalladas y ejemplos claros. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/spanish/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md b/cells/spanish/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md new file mode 100644 index 0000000000..ab4ba1da7e --- /dev/null +++ b/cells/spanish/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-03-30 +description: Aprende cómo guardar un libro de trabajo como PDF usando Aspose.Cells. + Este tutorial también cubre la exportación de una hoja de cálculo a PDF, cómo exportar + Excel a PDF y crear PDF a partir de una hoja de cálculo. +draft: false +keywords: +- save workbook as pdf +- export worksheet to pdf +- how to export excel to pdf +- save excel as pdf +- create pdf from worksheet +language: es +og_description: Guarda el libro de trabajo como PDF fácilmente. Esta guía muestra + cómo exportar una hoja de cálculo a PDF, cómo exportar Excel a PDF y crear un PDF + a partir de una hoja de cálculo usando C#. +og_title: Guardar libro de trabajo como PDF con Aspose.Cells – Guía completa +tags: +- Aspose.Cells +- C# +- PDF generation +title: Guardar libro de trabajo como PDF con Aspose.Cells – Guía completa paso a paso +url: /es/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Guardar libro de trabajo como pdf – Guía completa paso a paso + +¿Alguna vez necesitaste **save workbook as pdf** pero no estabas seguro de qué biblioteca mantendría tus números intactos? No estás solo. En muchos proyectos tenemos que convertir datos de Excel en un PDF pulido, y hacerlo de la manera correcta ahorra horas de depuración. + +En este tutorial recorreremos el código exacto que necesitas para **save workbook as pdf** con Aspose.Cells, y a lo largo del camino también te mostraremos cómo **export worksheet to pdf**, responderemos preguntas sobre *how to export excel to pdf* y demostraremos una forma limpia de **create pdf from worksheet** con configuraciones de precisión personalizadas. + +Al final de la guía tendrás una aplicación de consola C# lista para ejecutar que produce un PDF que contiene solo los dígitos significativos que te importan. Sin contenido extra, solo una solución sólida y lista para producción. + +--- + +## Lo que aprenderás + +- Cómo configurar un nuevo `Workbook` y apuntar a su primera hoja de cálculo. +- El método exacto para **save workbook as pdf** mientras se preserva la precisión numérica. +- Por qué la propiedad `SignificantDigits` es importante cuando **export worksheet to pdf**. +- Errores comunes al intentar **how to export excel to pdf** y cómo evitarlos. +- Formas rápidas de **save excel as pdf** con diferentes opciones de página, y cómo **create pdf from worksheet** programáticamente. + +### Requisitos previos + +- .NET 6.0 o posterior (el código también funciona con .NET Framework 4.5+). +- Una licencia válida de Aspose.Cells (o una licencia temporal gratuita para pruebas). +- Visual Studio 2022 o cualquier IDE compatible con C#. + +Si ya tienes esos conceptos básicos, vamos a sumergirnos. + +--- + +## Paso 1 – Instalar Aspose.Cells e inicializar el Workbook + +Lo primero: necesitas el paquete NuGet Aspose.Cells. Abre una terminal en la carpeta de tu proyecto y ejecuta: + +```bash +dotnet add package Aspose.Cells +``` + +Una vez instalado el paquete, crea un nuevo objeto `Workbook`. Este es el objeto que eventualmente **save workbook as pdf**. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialise a fresh workbook – think of it as a blank Excel file. + Workbook workbook = new Workbook(); + + // Grab the first worksheet (index 0). This is where we’ll put our data. + Worksheet worksheet = workbook.Worksheets[0]; +``` + +*¿Por qué este paso?* +Crear el workbook te brinda un lienzo limpio, y seleccionar la primera hoja de cálculo asegura que trabajes en una ubicación conocida. Omitir esto puede provocar errores de *null reference* cuando luego intentes **export worksheet to pdf**. + +--- + +## Paso 2 – Insertar datos de alta precisión + +Ahora insertaremos un número que tiene más decimales de los que realmente queremos mostrar en el PDF. Esto demuestra cómo la configuración `SignificantDigits` recorta la salida. + +```csharp + // Place a high‑precision number in cell A1. + worksheet.Cells["A1"].PutValue(1234.56789); +``` + +Si ejecutas el programa ahora y simplemente llamas a `workbook.Save("output.pdf")`, el PDF mostrará el `1234.56789` completo. Eso está bien en algunos casos, pero a menudo necesitas redondear a un número específico de dígitos significativos, especialmente para informes financieros. + +--- + +## Paso 3 – Configurar opciones de guardado PDF + +Aspose.Cells te brinda un control fino mediante `PdfSaveOptions`. La propiedad que nos importa es `SignificantDigits`. Configurarla a `4` indica al motor que mantenga solo cuatro cifras significativas cuando **save workbook as pdf**. + +```csharp + // Configure PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 // This trims the number to 1235 in the PDF. + }; +``` + +*¿Por qué usar `SignificantDigits`?* +Cuando **create pdf from worksheet**, a menudo necesitas cumplir con reglas regulatorias de redondeo. Esta opción realiza el redondeo por ti, de modo que no tengas que formatear manualmente cada celda. + +--- + +## Paso 4 – Exportar hoja de cálculo a PDF con las opciones + +Este es el momento de la verdad: realmente **save workbook as pdf** usando las opciones que acabamos de definir. + +```csharp + // Save the workbook as a PDF using the configured options. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + } +} +``` + +Ejecutar el programa generará un archivo llamado `SignificantDigits.pdf` en la carpeta de salida de tu proyecto. Ábrelo y verás `1235` en la celda A1: el número ha sido redondeado a cuatro dígitos significativos. + +*Punto clave:* El método `Save` recibe tanto la ruta del archivo como el `PdfSaveOptions`. Si omites las opciones, volverás al comportamiento predeterminado, que puede no cumplir con tus requisitos de precisión. + +--- + +## Paso 5 – Verificar la salida y solucionar problemas comunes + +### Resultado esperado + +- Un PDF de una página llamado `SignificantDigits.pdf`. +- La celda A1 muestra `1235` (cuatro dígitos significativos). +- No aparecen hojas de cálculo extra ni contenido oculto. + +### Preguntas frecuentes + +| Question | Answer | +|----------|--------| +| **¿Qué pasa si necesito más de una hoja de cálculo?** | Recorre `workbook.Worksheets` y aplica el mismo `PdfSaveOptions` cuando guardes cada hoja individualmente, o establece `OnePagePerSheet = true` en las opciones. | +| **¿Puedo mantener el formato numérico original?** | Sí – establece `PdfSaveOptions.AllColumnsInOnePage = true` y deja que las reglas de formato de Excel lo manejen, pero recuerda que `SignificantDigits` seguirá sobrescribiendo la precisión numérica. | +| **¿Esto funciona con archivos .xlsx que ya existen?** | Absolutamente. Reemplaza `new Workbook()` por `new Workbook("input.xlsx")` y el resto del código permanece igual. | +| **¿Qué pasa si el PDF está en blanco?** | Verifica que el workbook realmente contenga datos y que estés guardando en un directorio con permisos de escritura. Además, asegúrate de que la licencia de Aspose.Cells esté aplicada correctamente; una prueba sin licencia puede limitar la salida. | + +### Consejo profesional + +Si necesitas **save excel as pdf** con una orientación de página específica, establece `pdfSaveOptions.PageSetup.Orientation = PageOrientation.Landscape;` antes de llamar a `Save`. Este pequeño ajuste a menudo te evita tener que ajustar manualmente el PDF después. + +--- + +## Variaciones: Exportar múltiples hojas o configuraciones de página personalizadas + +### Exportar todas las hojas en una sola llamada + +```csharp +PdfSaveOptions allSheetsOptions = new PdfSaveOptions +{ + SignificantDigits = 4, + OnePagePerSheet = true // Each worksheet gets its own page. +}; + +workbook.Save("AllSheets.pdf", allSheetsOptions); +``` + +### Exportar una sola hoja como PDF + +Si solo deseas **export worksheet to pdf** para una hoja específica, usa el método `ToPdf` del objeto `Worksheet`: + +```csharp +Worksheet sheet = workbook.Worksheets["Sheet2"]; +sheet.ToPdf("Sheet2.pdf", pdfSaveOptions); +``` + +### Ajustar márgenes de página + +```csharp +pdfSaveOptions.PageSetup.TopMargin = 20; +pdfSaveOptions.PageSetup.BottomMargin = 20; +``` + +Estos ajustes te permiten afinar el documento final sin procesamiento posterior. + +--- + +## Ejemplo completo funcional + +A continuación se muestra el programa completo, listo para copiar y pegar, que incorpora todo lo que hemos discutido. Guárdalo como `Program.cs` y ejecuta `dotnet run`. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and select the first worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Insert a high‑precision number. + worksheet.Cells["A1"].PutValue(1234.56789); + + // 3️⃣ Set PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 + }; + + // 4️⃣ Save the workbook as PDF. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + + // Optional: Export another sheet with custom settings. + // Worksheet sheet2 = workbook.Worksheets.Add("Report"); + // sheet2.Cells["B2"].PutValue(9876.54321); + // sheet2.ToPdf("Report.pdf", pdfSaveOptions); + } +} +``` + +**Resultado:** Abre `SignificantDigits.pdf` – verás el valor redondeado `1235`. El tamaño del archivo es modesto y el diseño coincide con la hoja de Excel original. + +--- + +## Conclusión + +Acabamos de mostrarte cómo **save workbook as pdf** usando Aspose.Cells, cubriendo todo desde la configuración básica hasta opciones avanzadas como **export worksheet to pdf**, **how to export excel to pdf**, y **create pdf from worksheet** con control numérico preciso. + +El enfoque es sencillo, requiere solo unas pocas líneas de C#, y funciona en todas las versiones de .NET. A continuación, podrías explorar agregar encabezados/pies de página, incrustar imágenes o generar PDFs a partir de plantillas, cada una de las cuales se basa en la base que ahora tienes. + +¿Tienes una variante que te gustaría probar? Tal vez necesites proteger con contraseña el PDF o combinar varios PDFs. Esas son extensiones naturales, y la API de Aspose.Cells te cubre. Sumérgete, experimenta y deja que la biblioteca haga el trabajo pesado. + +*¡Feliz codificación! Si te encontraste con algún problema, deja un comentario abajo y lo solucionaremos juntos.* + +![captura de pantalla de guardar libro de trabajo como pdf](/images/save-workbook-as-pdf.png){alt="ejemplo de guardar libro de trabajo como pdf mostrando el archivo PDF generado"} + +{{< /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/spanish/net/converting-excel-files-to-other-formats/_index.md b/cells/spanish/net/converting-excel-files-to-other-formats/_index.md index d683458bb0..68eebb6984 100644 --- a/cells/spanish/net/converting-excel-files-to-other-formats/_index.md +++ b/cells/spanish/net/converting-excel-files-to-other-formats/_index.md @@ -66,6 +66,8 @@ Aprenda a guardar un libro en el formato de hoja de cálculo XML abierta estrict Descripción: Aprenda a realizar el seguimiento del progreso de conversión de documentos mediante programación utilizando Aspose.Cells para .NET en este tutorial detallado. ### [Seguimiento del progreso de conversión de documentos TIFF mediante programación en .NET](./tracking-document-conversion-progress-for-tiff/) Aprenda a monitorizar el progreso de la conversión de TIFF mediante programación con Aspose.Cells para .NET con nuestra guía paso a paso. Mejore sus habilidades de gestión documental. +### [Crear PowerPoint a partir de Excel – Guía paso a paso en C#](./create-powerpoint-from-excel-step-by-step-c-guide/) +Aprenda a generar presentaciones PowerPoint desde archivos de Excel usando Aspose.Cells para .NET con este tutorial paso a paso en C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/spanish/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md b/cells/spanish/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md new file mode 100644 index 0000000000..4ab89389a5 --- /dev/null +++ b/cells/spanish/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md @@ -0,0 +1,254 @@ +--- +category: general +date: 2026-03-30 +description: Crea PowerPoint a partir de Excel rápidamente usando Aspose.Cells y Aspose.Slides. + Aprende cómo exportar la hoja de cálculo como imagen y guardar la presentación como + PPTX en C#. +draft: false +keywords: +- create powerpoint from excel +- convert excel to powerpoint +- export worksheet as image +- save presentation as pptx +- export excel chart as picture +language: es +og_description: Crear PowerPoint a partir de Excel en C# con Aspose. Exportar la hoja + de cálculo como imagen, mantener las formas editables y guardar el resultado como + PPTX. +og_title: Crear PowerPoint desde Excel – Tutorial completo de C# +tags: +- Aspose +- C# +- Office Automation +title: Crear PowerPoint desde Excel – Guía paso a paso en C# +url: /es/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crear PowerPoint desde Excel – Tutorial completo en C# + +¿Alguna vez necesitaste **crear PowerPoint desde Excel** pero no estabas seguro de qué biblioteca podía mantener tus gráficos editables? No estás solo. En muchos escenarios de informes querrás convertir una hoja de cálculo en una presentación sin perder la capacidad de ajustar los cuadros de texto más tarde. Esta guía te muestra exactamente cómo **convertir Excel a PowerPoint** usando Aspose.Cells y Aspose.Slides, además de cubrir cómo **exportar la hoja de cálculo como imagen** y finalmente **guardar la presentación como PPTX**. + +Recorreremos cada línea de código, explicaremos *por qué* cada configuración es importante e incluso discutiremos qué hacer si tu libro de trabajo contiene gráficos complejos que prefieres exportar como una imagen. Al final tendrás una aplicación de consola C# lista para ejecutar que toma `ShapesDemo.xlsx` y genera `Result.pptx`, todo con cuadros de texto editables e imágenes nítidas. + +## Lo que necesitarás + +- .NET 6.0 o posterior (la API funciona también con .NET Framework, pero .NET 6 es el punto óptimo). +- Paquetes NuGet **Aspose.Cells** y **Aspose.Slides** (las licencias de prueba gratuitas sirven para pruebas). +- Familiaridad básica con la sintaxis de C# – si puedes escribir un `Console.WriteLine`, estás listo para continuar. + +Sin interop COM adicional, sin Office instalado en el servidor, y sin copiar‑pegar manual de imágenes. Todo se maneja programáticamente. + +--- + +## Crear PowerPoint desde Excel – Cargar el libro y establecer opciones de exportación + +Lo primero que hacemos es abrir el archivo Excel y decirle a Aspose.Cells cómo queremos que se renderice la hoja. El objeto `ImageOrPrintOptions` es donde ocurre la magia: habilitamos `ExportShapes` y `ExportEditableTextBoxes` para que cualquier forma (incluidos los gráficos) se convierta en parte de la diapositiva **y** permanezca editable después de la conversión. + +```csharp +using Aspose.Cells; +using Aspose.Slides; + +// 1️⃣ Load the Excel workbook +string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; +Workbook workbook = new Workbook(excelPath); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first sheet + +// 2️⃣ Configure image export – keep shapes editable +ImageOrPrintOptions imageOptions = new ImageOrPrintOptions +{ + OnePagePerSheet = true, // Export the whole sheet as one slide + ExportShapes = true, // Include shapes (charts, drawings) + ExportEditableTextBoxes = true // Make text boxes editable in PPTX +}; +``` + +**¿Por qué estas banderas?** +- `OnePagePerSheet` evita que la hoja se divida en varias diapositivas; obtienes una única imagen a tamaño completo. +- `ExportShapes` indica a Aspose.Cells que rasterice los gráficos *y* las formas vectoriales, preservando su apariencia. +- `ExportEditableTextBoxes` es la clave secreta que te permite hacer doble clic en un cuadro de texto en PowerPoint y editar el texto sin volver a abrir Excel. + +> **Consejo profesional:** Si solo necesitas una imagen estática de un gráfico, establece `ExportShapes = false` y usa el método `ExportExcelChartAsPicture` más adelante (ver la sección final). + +--- + +## Convertir Excel a PowerPoint – Generar imagen desde la hoja de cálculo + +Con las opciones listas, ahora convertimos la hoja de cálculo en un `System.Drawing.Image`. El `WorksheetToImageConverter` realiza el trabajo pesado, aplicando la configuración que acabamos de definir. + +```csharp +// 3️⃣ Convert the worksheet to an image using the options above +WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); +System.Drawing.Image sheetImage = converter.ConvertToImage(0, imageOptions); +``` + +El argumento `0` indica la primera página (solo tenemos una debido a `OnePagePerSheet`). La `sheetImage` resultante conserva la DPI original, por lo que tu diapositiva no se verá pixelada incluso en pantallas de alta resolución. + +--- + +## Guardar presentación como PPTX – Insertar imagen en una diapositiva + +Ahora creamos un nuevo archivo PowerPoint, añadimos una diapositiva y colocamos el mapa de bits en ella. Aspose.Slides trata la imagen como una forma de *marco de imagen*, que puedes redimensionar o mover más tarde como cualquier objeto nativo de PowerPoint. + +```csharp +// 4️⃣ Create a new PowerPoint presentation +Presentation presentation = new Presentation(); +ISlide slide = presentation.Slides[0]; // The default blank slide + +// Add the Excel‑derived image as a picture frame +slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, // Simple rectangle container + 0, 0, // Top‑left corner (0,0) + sheetImage.Width, // Width of the picture + sheetImage.Height, // Height of the picture + sheetImage); // The bitmap we generated +``` + +> **¿Qué pasa si la imagen es más grande que el tamaño de la diapositiva?** +> PowerPoint recortará automáticamente cualquier cosa que exceda las dimensiones de la diapositiva. Una solución rápida es escalar la imagen antes de insertarla: + +```csharp +float scale = Math.Min(presentation.SlideSize.Size.Width / (float)sheetImage.Width, + presentation.SlideSize.Size.Height / (float)sheetImage.Height); +int newWidth = (int)(sheetImage.Width * scale); +int newHeight = (int)(sheetImage.Height * scale); +``` + +Luego puedes pasar `newWidth` y `newHeight` a `AddPictureFrame`. + +--- + +## Exportar hoja de cálculo como imagen – Guardar el archivo PPTX + +Finalmente guardamos la presentación en disco. La bandera `SaveFormat.Pptx` garantiza el formato OpenXML moderno, que funciona en todas las versiones recientes de PowerPoint. + +```csharp +// 5️⃣ Save the presentation as a PPTX file +string pptxPath = "YOUR_DIRECTORY/Result.pptx"; +presentation.Save(pptxPath, SaveFormat.Pptx); +``` + +Cuando abras `Result.pptx` verás una única diapositiva que se ve exactamente como tu hoja de Excel, pero aún podrás hacer clic en cualquier cuadro de texto y editar su contenido directamente en PowerPoint. + +--- + +## Exportar gráfico de Excel como imagen – Cuando se prefieren imágenes rasterizadas + +A veces no necesitas formas editables; un PNG de alta calidad de un gráfico es suficiente. Aspose.Cells puede exportar un gráfico específico a una imagen sin convertir toda la hoja: + +```csharp +// Example: Export the first chart on the sheet as a PNG +int chartIndex = 0; // Adjust if you have multiple charts +Chart chart = worksheet.Charts[chartIndex]; +ImageOrPrintOptions chartOptions = new ImageOrPrintOptions +{ + ImageFormat = ImageFormat.Png, + OnePagePerSheet = false +}; +chart.ToImage("chart.png", chartOptions); +``` + +Luego puedes incrustar `chart.png` en una diapositiva de la misma manera que añadimos `sheetImage`. Este enfoque reduce el tamaño del archivo PPTX y es útil cuando los datos circundantes no son necesarios en la diapositiva. + +--- + +## Problemas comunes y cómo evitarlos + +| Problema | Por qué ocurre | Solución | +|----------|----------------|----------| +| **El texto se ve borroso** | Exportado con DPI bajo (predeterminado 96). | Establece `imageOptions.Dpi = 300;` antes de la conversión. | +| **Las formas desaparecen** | `ExportShapes` quedó en `false`. | Asegúrate de que `ExportShapes = true` cuando necesites gráficos editables. | +| **Desajuste de tamaño de diapositiva** | Imagen más grande que las dimensiones de la diapositiva. | Escala la imagen (ver fragmento de código) o cambia el tamaño de la diapositiva mediante `presentation.SlideSize`. | +| **Excepción de licencia** | Uso de la versión de prueba sin la activación adecuada. | Llama a `License license = new License(); license.SetLicense("Aspose.Total.lic");` al inicio de `Main`. | + +--- + +## Ejemplo completo (listo para copiar‑pegar) + +A continuación se muestra el programa completo, listo para insertar en un nuevo proyecto de consola. Reemplaza `YOUR_DIRECTORY` con la carpeta que contiene tu archivo Excel. + +```csharp +using System; +using Aspose.Cells; +using Aspose.Slides; +using System.Drawing; + +namespace ExcelToPowerPointDemo +{ + class Program + { + static void Main(string[] args) + { + // ----------------------------------------------------------------- + // 1️⃣ Load the Excel workbook + // ----------------------------------------------------------------- + string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; + Workbook workbook = new Workbook(excelPath); + Worksheet worksheet = workbook.Worksheets[0]; + + // ----------------------------------------------------------------- + // 2️⃣ Set up export options – keep shapes editable + // ----------------------------------------------------------------- + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + OnePagePerSheet = true, + ExportShapes = true, + ExportEditableTextBoxes = true, + Dpi = 300 // High‑resolution output + }; + + // ----------------------------------------------------------------- + // 3️⃣ Convert worksheet to an image + // ----------------------------------------------------------------- + WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); + Image sheetImage = converter.ConvertToImage(0, imageOptions); + + // ----------------------------------------------------------------- + // 4️⃣ Create PowerPoint and add the image as a slide + // ----------------------------------------------------------------- + Presentation presentation = new Presentation(); + ISlide slide = presentation.Slides[0]; + slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, + 0, 0, + sheetImage.Width, + sheetImage.Height, + sheetImage); + + // ----------------------------------------------------------------- + // 5️⃣ Save the PPTX file + // ----------------------------------------------------------------- + string pptxPath = "YOUR_DIRECTORY/Result.pptx"; + presentation.Save(pptxPath, SaveFormat.Pptx); + + Console.WriteLine("✅ PowerPoint created successfully at: " + pptxPath); + } + } +} +``` + +**Salida esperada:** +Al ejecutar el programa se imprime `✅ PowerPoint created successfully at: YOUR_DIRECTORY/Result.pptx`. Al abrir el PPTX se muestra una única diapositiva que refleja la hoja de Excel original, con cuadros de texto editables. + +--- + +## Resumen y próximos pasos + +Ahora sabes cómo **crear PowerPoint desde Excel** usando las potentes APIs de Aspose, cómo **exportar la hoja de cálculo como imagen**, y cómo **guardar la presentación como PPTX** preservando la editabilidad. El mismo patrón funciona para libros de trabajo con varias hojas: simplemente recorre `workbook.Worksheets` y agrega una nueva diapositiva por cada una. + +**¿Qué explorar a continuación?** + +- **Conversión por lotes:** Recorrer una carpeta de archivos Excel y generar una presentación por archivo. +- **Diseños dinámicos:** Usa `slide.LayoutSlide` para aplicar plantillas de PowerPoint pre‑diseñadas. +- **Exportación solo de gráficos:** Combina el fragmento “Export Excel chart as picture” con marcadores de posición en la diapositiva para una presentación más ligera. +- **Estilizado avanzado:** Aplica fondos de diapositiva personalizados, transiciones o animaciones mediante Aspose.Slides. + +Siéntete libre de experimentar: cambia la DPI, sustituye `ShapeType.Ellipse` por un marco de imagen circular, o incluso incrusta múltiples imágenes por diapositiva. El cielo es el límite cuando tienes control programático sobre + +{{< /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/spanish/net/document-properties/_index.md b/cells/spanish/net/document-properties/_index.md index 3597c9bfeb..391aa8aab3 100644 --- a/cells/spanish/net/document-properties/_index.md +++ b/cells/spanish/net/document-properties/_index.md @@ -35,6 +35,8 @@ Aprenda a acceder a las propiedades de documentos en Excel con Aspose.Cells para Aprenda a acceder a las propiedades de documentos en Excel usando Aspose.Cells para .NET con nuestra guía paso a paso. Administre sus hojas de cálculo eficientemente. ### [Agregar propiedades de documento en .NET](./adding-document-properties/) Aprenda a agregar propiedades de documentos en Excel usando Aspose.Cells para .NET con esta guía detallada paso a paso. +### [Cómo guardar XLSB con propiedades personalizadas en C# – Guía paso a paso](./how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/) +Aprenda a guardar archivos XLSB con propiedades personalizadas en C# usando Aspose.Cells, siguiendo una guía paso a paso. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/spanish/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md b/cells/spanish/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md new file mode 100644 index 0000000000..578d80103f --- /dev/null +++ b/cells/spanish/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md @@ -0,0 +1,233 @@ +--- +category: general +date: 2026-03-30 +description: Aprende cómo guardar XLSB en C# mientras añades una propiedad personalizada, + la lees de nuevo y dominas guardar el libro de trabajo como XLSB usando Aspose.Cells. + Código completo incluido. +draft: false +keywords: +- how to save xlsb +- add custom property +- how to add property +- how to read property +- save workbook as xlsb +language: es +og_description: ¿Cómo guardar XLSB en C#? Este tutorial le muestra cómo agregar una + propiedad personalizada, leerla de nuevo y guardar el libro de trabajo como XLSB + con Aspose.Cells. +og_title: Cómo guardar XLSB con propiedades personalizadas en C# – Guía completa +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Cómo guardar XLSB con propiedades personalizadas en C# – Guía paso a paso +url: /es/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# How to Save XLSB with Custom Properties in C# – Step‑by‑Step Guide + +¿Alguna vez te has preguntado **cómo guardar XLSB** manteniendo metadatos adicionales adjuntos a una hoja de cálculo? No eres el único. En muchos escenarios empresariales necesitas un archivo binario de Excel que siga conservando tus propios pares clave/valor—piensa en un ID de contrato, una bandera de procesamiento o una etiqueta de versión. + +La buena noticia es que Aspose.Cells lo hace muy sencillo. En esta guía verás exactamente cómo añadir una propiedad personalizada, persistirla y luego leerla, todo mientras **guardas el libro como XLSB**. Sin referencias vagas, solo un ejemplo completo y ejecutable que puedes incorporar a tu proyecto hoy mismo. + +## What You’ll Walk Away With + +- Un nuevo archivo `.xlsb` creado desde cero. +- La capacidad de **add custom property** a una hoja de cálculo. +- Código que demuestra **how to read property** después de recargar el archivo. +- Consejos sobre los obstáculos que podrías encontrar al **save workbook as XLSB**. + +> **Prerequisites:** .NET 6+ (o .NET Framework 4.6+), Visual Studio (o cualquier IDE de C#), y la biblioteca Aspose.Cells for .NET instalada vía NuGet. Nada más. + +--- + +## Step 1: Set Up the Project and Create a New Workbook + +First things first—let’s get a clean workbook object on the table. + +```csharp +using Aspose.Cells; +using System; + +// Initialize a new workbook; this will be an in‑memory Excel file. +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0) – it’s created automatically. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Why this matters:* `Workbook` is the entry point for every operation in Aspose.Cells. By starting with a brand‑new instance you avoid any hidden state that could corrupt your custom metadata later. + +--- + +## Step 2: **Add Custom Property** to the Worksheet + +Now we’ll attach a key/value pair that lives only on this sheet. + +```csharp +// Add a user‑defined property called "MyProperty" with the value "CustomValue". +worksheet.CustomProperties.Add("MyProperty", "CustomValue"); +``` + +> **Pro tip:** Property names are case‑sensitive. If you later try to fetch `"myproperty"` you’ll get a `KeyNotFoundException`. Stick to a naming convention—camelCase or PascalCase—right from the start. + +--- + +## Step 3: **Save Workbook as XLSB** – Persisting the Property + +The magic happens when you write the workbook to the binary XLSB format. + +```csharp +// Define the output path. Adjust the folder to something writable on your machine. +string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + +// Save the workbook; the custom property travels with the file. +workbook.Save(outputPath, SaveFormat.Xlsb); +``` + +*What you’re actually doing:* The `SaveFormat.Xlsb` enum tells Aspose.Cells to emit a binary Excel file (faster to open, smaller on disk). All worksheet‑level custom properties are serialized automatically—no extra steps required. + +--- + +## Step 4: Reload the File and **How to Read Property** + +Let’s prove the property survived the round‑trip. + +```csharp +// Load the just‑saved XLSB file back into memory. +Workbook reloadedWorkbook = new Workbook(outputPath); + +// Access the same worksheet (index 0) and fetch the property value. +string customValue = reloadedWorkbook.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); +``` + +If everything went smoothly, `customValue` now holds `"CustomValue"`. + +--- + +## Step 5: Verify the Result – Quick Console Output + +A tiny sanity check helps during development. + +```csharp +Console.WriteLine($"Custom property value: {customValue}"); +``` + +Running the program should print: + +``` +Custom property value: CustomValue +``` + +Seeing that line means you’ve successfully mastered **how to save XLSB**, **add custom property**, and **how to read property**—all in one tidy flow. + +--- + +## Full Working Example (Copy‑Paste Ready) + +Below is the entire program. Paste it into a new Console App, hit **F5**, and watch the console confirm the property value. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // 1️⃣ Create a new workbook and get its first sheet + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // 2️⃣ Add a custom property (key/value) to the sheet + // ------------------------------------------------- + worksheet.CustomProperties.Add("MyProperty", "CustomValue"); + + // ------------------------------------------------- + // 3️⃣ Save the workbook as XLSB – the property is kept + // ------------------------------------------------- + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(outputPath, SaveFormat.Xlsb); + + // ------------------------------------------------- + // 4️⃣ Reload the saved file to demonstrate persistence + // ------------------------------------------------- + Workbook reloaded = new Workbook(outputPath); + + // ------------------------------------------------- + // 5️⃣ Retrieve the custom property's value + // ------------------------------------------------- + string customValue = reloaded.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); + + // ------------------------------------------------- + // 6️⃣ Display the retrieved value (optional) + // ------------------------------------------------- + Console.WriteLine($"Custom property value: {customValue}"); + } +} +``` + +> **Remember:** Change `outputPath` to a folder you have write access to. If you’re on Linux/macOS, use a path like `"/tmp/WithCustomProp.xlsb"`. + +--- + +## Common Questions & Edge Cases + +### What if the property already exists? +Calling `Add` with an existing key throws an `ArgumentException`. Use `ContainsKey` or wrap the call in a `try/catch` if you’re not sure. + +```csharp +if (!worksheet.CustomProperties.ContainsKey("MyProperty")) +{ + worksheet.CustomProperties.Add("MyProperty", "AnotherValue"); +} +``` + +### Can I store non‑string values? +Absolutely. The `Value` property accepts any `object`. For numbers, dates, or booleans just pass the appropriate type—Aspose.Cells will handle the conversion when you read it back. + +### Does the property survive when I convert to XLSX? +Yes. Custom properties are part of the worksheet’s XML representation, so they persist across XLSX, XLS, and XLSB formats. + +### How to **how to add property** to multiple sheets? +Loop through the `Worksheets` collection and apply the same `CustomProperties.Add` call to each sheet you need. + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + ws.CustomProperties.Add("ExportedBy", "MyApp"); +} +``` + +### Performance tip when **saving workbook as XLSB** in bulk +If you’re generating hundreds of files, reuse the same `Workbook` instance and call `Clear` after each save to free memory. Also, set `Workbook.Settings.CalculateFormulaOnOpen = false` if you don’t need formulas evaluated on load. + +--- + +## Conclusion + +You now know **how to save XLSB** in C# while embedding and later retrieving a custom property using Aspose.Cells. The complete solution—creating the workbook, adding a property, persisting it with **save workbook as XLSB**, reloading, and reading the value—fits in under 50 lines of code. + +From here you might explore: + +- Adding multiple custom properties per sheet. +- Storing complex objects via JSON strings. +- Encrypting the XLSB file for extra security. + +Give those ideas a spin, and you’ll quickly become the go‑to person for Excel automation in your team. Got questions or a tricky scenario? Drop a comment below, and happy coding! + +![Cómo guardar XLSB con propiedad personalizada](/images/how-to-save-xlsb.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/spanish/net/excel-copy-worksheet/_index.md b/cells/spanish/net/excel-copy-worksheet/_index.md index 1e85ab2f78..44c6752bce 100644 --- a/cells/spanish/net/excel-copy-worksheet/_index.md +++ b/cells/spanish/net/excel-copy-worksheet/_index.md @@ -42,6 +42,7 @@ Aspose.Cells para .NET ofrece potentes funciones para manipular archivos de Exce | [Copiar hoja de cálculo de Excel](./excel-copy-worksheet/) Aprenda a copiar una hoja de cálculo de Excel con Aspose.Cells para .NET con esta sencilla guía paso a paso. Ideal para desarrolladores .NET que buscan automatizar tareas de Excel. | [Copiar hojas de cálculo entre libros de Excel](./excel-copy-worksheets-between-workbooks/) Aprenda a copiar hojas de cálculo entre libros de Excel con Aspose.Cells para .NET. Una guía paso a paso con ejemplos de código para optimizar la gestión de hojas de cálculo. | [Hoja de cálculo de movimiento de Excel](./excel-move-worksheet/) Aprenda a mover hojas de cálculo en Excel con Aspose.Cells para .NET con nuestra guía paso a paso. Domine la programación en Excel. +| [Cómo copiar una hoja de cálculo en C# con Aspose.Cells – Guía completa](./how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/) | Aprenda a copiar una hoja de cálculo en C# usando Aspose.Cells con una guía paso a paso. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/spanish/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md b/cells/spanish/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md new file mode 100644 index 0000000000..bc9e4820d6 --- /dev/null +++ b/cells/spanish/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md @@ -0,0 +1,268 @@ +--- +category: general +date: 2026-03-30 +description: Cómo copiar una hoja de cálculo en C# usando Aspose.Cells – guía paso + a paso que cubre copiar rango de celdas, copiar columnas entre hojas, copiar tabla + dinámica de la hoja y agregar código para una nueva hoja. +draft: false +keywords: +- how to copy worksheet +- copy cell range +- copy columns between sheets +- copy worksheet pivot table +- add new worksheet code +language: es +og_description: Aprende cómo copiar una hoja de cálculo en C# con Aspose.Cells. Esta + guía muestra cómo copiar un rango de celdas, preservar tablas dinámicas, copiar + columnas entre hojas y agregar código para una nueva hoja. +og_title: Cómo copiar una hoja de cálculo en C# – Tutorial completo de Aspose.Cells +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Cómo copiar una hoja de cálculo en C# con Aspose.Cells – Guía completa +url: /es/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cómo copiar una hoja de cálculo en C# con Aspose.Cells – Guía completa + +¿Alguna vez te has preguntado **cómo copiar worksheet** en C# sin perder ni una sola tabla dinámica o fórmula? No estás solo—muchos desarrolladores se topan con un obstáculo cuando necesitan duplicar una hoja manteniendo todas sus ventajas intactas. En este tutorial recorreremos una solución práctica, de extremo a extremo, que no solo copia los datos sino que también preserva la **copy worksheet pivot table**, maneja **copy cell range**, y muestra el **add new worksheet code** que necesitarás. + +Cubrirémos todo, desde cargar el libro de trabajo fuente hasta guardar el archivo de destino, para que puedas copy columns between sheets, preservar objetos y mantener tu código limpio. Sin referencias vagas, solo un ejemplo completo y ejecutable que puedes incorporar a tu proyecto hoy. + +## Qué cubre este tutorial + +- Cargar un archivo Excel existente con Aspose.Cells +- Usar **add new worksheet code** para crear una hoja de destino +- Definir un **copy cell range** que incluya una tabla dinámica +- Configurar **CopyOptions** para mantener gráficos, fórmulas y tablas dinámicas intactas +- Ejecutar **copy columns between sheets** con precisión por filas +- Guardar el resultado y verificar que la hoja de cálculo se haya copiado correctamente + +Al final de esta guía podrás responder con confianza a la pregunta “how to copy worksheet”, ya sea que estés automatizando informes o construyendo una interfaz basada en hojas de cálculo. + +## Cómo copiar una hoja de cálculo – Visión general + +Antes de sumergirnos en el código, describamos el flujo a alto nivel. Piensa en ello como una receta: + +1. **Load** el libro de trabajo fuente (`Source.xlsx`). +2. **Add** una nueva hoja de cálculo para contener la copia (`add new worksheet code`). +3. **Define** el área que deseas duplicar (`copy cell range`). +4. **Configure** las opciones de copia para que la tabla dinámica sobreviva (`copy worksheet pivot table`). +5. **Copy** filas y columnas (`copy columns between sheets`). +6. **Save** el nuevo libro de trabajo (`Destination.xlsx`). + +Eso es todo—seis pasos, sin magia. Cada paso se explica a continuación con fragmentos de código y la lógica detrás de ellos. + +## Paso 1 – Cargar el libro de trabajo fuente + +Lo primero: necesitas una instancia de `Workbook` que apunte al archivo que deseas duplicar. Este paso es esencial porque Aspose.Cells trabaja directamente con el sistema de archivos, no con la interfaz de Office. + +```csharp +using Aspose.Cells; + +// Path to the original file +string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; +string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + +// Load the workbook – this is the starting point for how to copy worksheet +Workbook workbook = new Workbook(sourcePath); +``` + +*Why this matters:* Cargar el archivo crea una representación en memoria de cada hoja, celda y objeto. Sin esto, no hay nada que copiar, y cualquier intento de `add new worksheet code` más adelante fallará porque los datos fuente no están presentes. + +## Paso 2 – Añadir una nueva hoja de cálculo (add new worksheet code) + +Ahora necesitamos un lugar para pegar los datos copiados. Aquí es donde el **add new worksheet code** brilla. Puedes nombrar la hoja como quieras; aquí la llamamos `"Copy"`. + +```csharp +// Grab the first worksheet (the one we want to copy) +Worksheet sourceSheet = workbook.Worksheets[0]; + +// Add a fresh worksheet to receive the copy +Worksheet copySheet = workbook.Worksheets.Add("Copy"); +``` + +*Pro tip:* Si planeas copiar varias hojas, llama a `Worksheets.Add` dentro de un bucle y asigna a cada hoja un nombre único. Así evitarás colisiones de nombres y mantendrás tu libro de trabajo ordenado. + +## Paso 3 – Definir el rango de celdas a copiar + +Un **copy cell range** indica a Aspose.Cells exactamente qué filas y columnas duplicar. En muchos escenarios reales el rango incluye una tabla dinámica, por lo que debemos ser precisos. + +```csharp +// Define the area that contains the pivot table (A1:G20) +CellArea sourceRange = new CellArea +{ + StartRow = 0, // Row 1 (zero‑based) + StartColumn = 0, // Column A + EndRow = 19, // Row 20 + EndColumn = 6 // Column G +}; + +// Destination range – we start at the same top‑left corner +CellArea destinationRange = new CellArea +{ + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 +}; +``` + +*Why we need this:* Al especificar explícitamente el rango, evitas copiar toda la hoja (lo que puede ser derrochador) y garantizas que la tabla dinámica quede dentro del área copiada. Este es el núcleo de **how to copy worksheet** cuando solo necesitas una parte de la hoja. + +## Paso 4 – Configurar opciones de copia (preserve copy worksheet pivot table) + +Aspose.Cells ofrece un objeto `CopyOptions` que controla lo que se pega. Para mantener la tabla dinámica, los gráficos y las fórmulas, configuramos `PasteType.All` y habilitamos `PasteSpecial`. + +```csharp +CopyOptions copyOptions = new CopyOptions +{ + PasteType = PasteType.All, // Copy everything: values, formats, objects + PasteSpecial = true // Enable special paste to retain pivot tables +}; +``` + +*Explanation:* `PasteType.All` es la opción más inclusiva, mientras que `PasteSpecial` indica al motor que trate correctamente los objetos complejos—como tablas dinámicas. Omitir este paso es una trampa común; la hoja copiada perdería sus características interactivas. + +## Paso 5 – Copiar filas y columnas (copy columns between sheets) + +Ahora llega la parte pesada: mover realmente los datos. Usaremos `CopyRows` y `CopyColumns` para manejar **copy columns between sheets**. Hacer ambos garantiza que las celdas combinadas y los anchos de columna se conserven. + +```csharp +// Copy rows from the source to the destination sheet +sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + +// Copy columns from the source to the destination sheet +sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); +``` + +*What’s happening:* `CopyRows` mueve los datos fila por fila, mientras que `CopyColumns` hace lo mismo columna por columna. Ejecutar ambos garantiza que todo el bloque rectangular se duplique, lo cual es esencial cuando necesitas **copy columns between sheets** que tienen diferentes anchos de columna o columnas ocultas. + +## Paso 6 – Guardar el libro de trabajo + +Finalmente, escribe los cambios de vuelta al disco. Este paso completa el proceso de **how to copy worksheet**. + +```csharp +// Save the workbook with the newly copied sheet +workbook.Save(destinationPath); +``` + +*Verification tip:* Abre `Destination.xlsx` y verifica que la hoja `"Copy"` sea idéntica a la original, que las tablas dinámicas funcionen y que los anchos de columna coincidan. Si algo parece incorrecto, revisa la configuración de `CopyOptions`. + +## Casos límite y variaciones comunes + +### Copiar múltiples hojas de cálculo + +Si necesitas duplicar varias hojas, envuelve la lógica anterior en un bucle `foreach`: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + Worksheet newWs = workbook.Worksheets.Add(ws.Name + "_Copy"); + // Re‑use sourceRange/destinationRange or calculate per sheet + // Then call CopyRows/CopyColumns as shown earlier +} +``` + +### Preservar fórmulas entre diferentes libros de trabajo + +Cuando los libros de trabajo fuente y destino tienen rangos nombrados diferentes, establece `copyOptions` a `PasteType.Formulas` además de `All`: + +```csharp +copyOptions.PasteType = PasteType.All | PasteType.Formulas; +``` + +### Grandes rangos y rendimiento + +Para conjuntos de datos masivos (cientos de miles de filas), considera usar solo `CopyRows` y omitir `CopyColumns` si los anchos de columna no son críticos. Esto puede ahorrar unos segundos. + +## Ejemplo completo y funcional + +Abajo está el programa completo, listo para ejecutar, que incorpora todo lo que hemos discutido. Pégalo en una aplicación de consola, ajusta las rutas de archivo y pulsa **F5**. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // ---------- Step 1: Load the source workbook ---------- + string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; + string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + Workbook workbook = new Workbook(sourcePath); + + // ---------- Step 2: Add a new worksheet (add new worksheet code) ---------- + Worksheet sourceSheet = workbook.Worksheets[0]; + Worksheet copySheet = workbook.Worksheets.Add("Copy"); + + // ---------- Step 3: Define the copy cell range ---------- + CellArea sourceRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + CellArea destinationRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + + // ---------- Step 4: Set copy options (preserve copy worksheet pivot table) ---------- + CopyOptions copyOptions = new CopyOptions + { + PasteType = PasteType.All, + PasteSpecial = true + }; + + // ---------- Step 5: Copy rows and columns (copy columns between sheets) ---------- + sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + + sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); + + // ---------- Step 6: Save the workbook ---------- + workbook.Save(destinationPath); + } +} +``` + +**Expected result:** Al abrir `Destination.xlsx` se muestra una hoja llamada **Copy** que refleja la primera hoja de `Source.xlsx`—incluyendo cualquier tabla dinámica, formato y anchos de columna. El archivo original permanece intacto. + +## Preguntas frecuentes + +**Q: ¿Esto funciona con archivos .xlsx creados por Excel 2019?** +A: Absolutamente. Aspose.Cells soporta todos los formatos modernos de Excel, por lo que el mismo código funciona para `.xlsx`, `.xlsm`, e incluso archivos `.xls` más antiguos. + +{{< /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/spanish/net/excel-custom-number-date-formatting/_index.md b/cells/spanish/net/excel-custom-number-date-formatting/_index.md index 2b6b977bc0..8c7db9f196 100644 --- a/cells/spanish/net/excel-custom-number-date-formatting/_index.md +++ b/cells/spanish/net/excel-custom-number-date-formatting/_index.md @@ -36,6 +36,10 @@ Este tutorial te capacitará para importar tus conjuntos de datos manteniendo la Aprenda a comparar valores de celdas de Excel con formatos numéricos personalizados usando Aspose.Cells para .NET con este tutorial paso a paso. ### [Especificar campos de fórmula al importar datos a una hoja de Excel](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) Aprenda a importar datos a hojas de Excel con campos de fórmula específicos usando Aspose.Cells para .NET en este tutorial detallado. +### [Formato de número con separador en C# – Guía completa de Aspose.Cells](./format-number-with-separator-in-c-complete-aspose-cells-guid/) +Aprenda a formatear números con separadores en C# usando Aspose.Cells en esta guía completa. +### [Formato de fecha ISO desde Excel – Guía completa en C#](./format-date-iso-from-excel-complete-c-guide/) +Aprenda a formatear fechas ISO en Excel usando Aspose.Cells para .NET con esta guía completa en C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/spanish/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md b/cells/spanish/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..a892f8d860 --- /dev/null +++ b/cells/spanish/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md @@ -0,0 +1,202 @@ +--- +category: general +date: 2026-03-30 +description: Aprende a formatear fechas ISO mientras lees valores de fecha y hora + de Excel y extraes datos de fecha y hora de Excel usando Aspose.Cells en C#. +draft: false +keywords: +- format date iso +- read excel datetime +- extract datetime excel +- Aspose.Cells date parsing +- Japanese era dates +language: es +og_description: Formatear fecha ISO a partir de datos de Excel usando Aspose.Cells. + Esta guía muestra cómo leer fechas y horas de Excel, extraer valores de fecha y + hora de Excel y generar fechas ISO. +og_title: Formatear fecha ISO desde Excel – Tutorial paso a paso de C# +tags: +- C# +- Excel +- DateTime +- Aspose.Cells +title: Formatear fecha ISO desde Excel – Guía completa de C# +url: /es/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# formatear fecha iso desde Excel – Guía completa de C# + +¿Alguna vez necesitaste **format date iso** al extraer fechas de una hoja de Excel? Tal vez estés manejando fechas de era japonesa, o simplemente quieras una cadena limpia `yyyy‑MM‑dd` para la carga útil de una API. En este tutorial verás exactamente cómo **read Excel datetime** celdas, **extract datetime Excel** valores, y convertirlos al formato ISO‑8601—sin conjeturas. + +Recorreremos un ejemplo del mundo real que usa Aspose.Cells, explica por qué cada línea es importante y te muestra la salida final que puedes copiar‑pegar en tu proyecto. Al final, podrás manejar cadenas de era peculiares como “令和3年5月1日” y producir una fecha ISO estándar, lista para bases de datos, JSON o donde la necesites. + +## Requisitos previos + +- .NET 6.0 o posterior (el código también funciona con .NET Framework) +- Aspose.Cells para .NET (versión de prueba gratuita o con licencia) +- Familiaridad básica con C# y conceptos de Excel +- Visual Studio o cualquier editor de C# que prefieras + +No se requieren paquetes NuGet adicionales más allá de Aspose.Cells, por lo que la configuración es bastante sencilla. + +--- + +## Paso 1: Crear un Workbook y apuntar a la primera hoja de cálculo + +Lo primero que haces es crear un nuevo objeto `Workbook`. Esto te brinda una representación en memoria de un archivo Excel, que luego puedes manipular o leer. + +```csharp +using Aspose.Cells; +using System.Globalization; + +// Step 1: Initialize a new workbook and grab the first worksheet +Workbook workbook = new Workbook(); // creates an empty .xlsx +Worksheet worksheet = workbook.Worksheets[0]; // the default sheet is "Sheet1" +``` + +*Por qué es importante:* +Crear el workbook programáticamente te permite evitar manejar archivos físicos durante las pruebas. También garantiza que la referencia a la hoja de cálculo sea siempre válida—sin sorpresas de referencia nula más adelante cuando intentes **read Excel datetime** valores. + +## Paso 2: Escribir una cadena de fecha de era japonesa en una celda + +Nuestro objetivo es demostrar el análisis de una fecha no gregoriana. Colocaremos la cadena de era directamente en la celda **A1**. + +```csharp +// Step 2: Insert a Japanese era date string into cell A1 +worksheet.Cells["A1"].PutValue("令和3年5月1日"); +``` + +*Consejo profesional:* Si estás extrayendo datos de un workbook existente, omitirías la llamada `PutValue` y simplemente referenciarías la celda que ya contiene la fecha. La clave es que la celda contiene una **string** que representa una fecha en el calendario lunisolar japonés. + +## Paso 3: Configurar una cultura que entienda el calendario lunisolar japonés + +La clase `CultureInfo` de .NET te permite especificar cómo deben interpretarse las fechas. Al cambiar el calendario gregoriano predeterminado por `JapaneseLunisolarCalendar`, le das al analizador el contexto que necesita. + +```csharp +// Step 3: Set up a culture using the Japanese lunisolar calendar +CultureInfo japaneseCulture = new CultureInfo("ja-JP"); +japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); +``` + +*Por qué lo hacemos:* +Si intentas analizar “令和3年5月1日” con la cultura predeterminada, .NET lanzará una `FormatException`. Cambiar al calendario lunisolar indica al tiempo de ejecución exactamente cómo mapear “令和3年” (el tercer año de la era Reiwa) al año gregoriano 2021. + +## Paso 4: Analizar el valor de la celda como `DateTime` usando la cultura configurada + +Ahora llega el corazón de la operación—convertir esa cadena de era en un objeto `DateTime` adecuado. Aspose.Cells ofrece una sobrecarga conveniente de `GetDateTime` que acepta un `CultureInfo`. + +```csharp +// Step 4: Retrieve the cell value as a DateTime, respecting the Japanese culture +DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); +``` + +*Qué ocurre internamente:* +`GetDateTime` lee la cadena cruda, aplica las reglas del calendario de la cultura suministrada y devuelve un `DateTime` que representa el mismo momento en el calendario gregoriano. Este es el momento en que **extract datetime Excel** datos en una forma con la que puedes trabajar en .NET. + +## Paso 5: Mostrar la fecha analizada en formato ISO 8601 + +Finalmente, formateamos el `DateTime` como una cadena ISO—`yyyy‑MM‑dd`—que es universalmente aceptada por APIs, bases de datos y frameworks front‑end. + +```csharp +// Step 5: Print the date in ISO format (e.g., 2021-05-01) +Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // Output: 2021-05-01 +``` + +*¿Por qué ISO?* +ISO 8601 elimina la ambigüedad. “05/01/2021” podría ser 1 de mayo o 5 de enero según la configuración regional. `2021-05-01` es totalmente claro, por eso **format date iso** en casi todos los escenarios de integración. + +## Ejemplo completo funcional + +A continuación está el programa completo, listo para ejecutar. Cópialo en un proyecto de aplicación de consola, agrega la referencia a Aspose.Cells y pulsa **F5**. + +```csharp +using Aspose.Cells; +using System; +using System.Globalization; + +class Program +{ + static void Main() + { + // 1️⃣ Create workbook and select the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("令和3年5月1日"); + + // 3️⃣ Set up Japanese lunisolar culture + CultureInfo japaneseCulture = new CultureInfo("ja-JP"); + japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); + + // 4️⃣ Parse the cell value as DateTime using the culture + DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); + + // 5️⃣ Output the date in ISO format + Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // 2021-05-01 + } +} +``` + +**Salida esperada** + +``` +2021-05-01 +``` + +Ejecuta una vez, y verás la fecha formateada en ISO impresa en la consola. Esa es toda la cadena de procesamiento desde **read Excel datetime** hasta **format date iso**. + +## Manejo de casos límite comunes + +### 1. Celdas que contienen números de fecha reales de Excel + +A veces Excel almacena fechas como números de serie (p. ej., `44204`). En ese caso, no necesitas una cultura; simplemente llama a `GetDateTime()` sin parámetros: + +```csharp +DateTime serialDate = worksheet.Cells["B2"].GetDateTime(); // B2 holds a numeric date +Console.WriteLine(serialDate.ToString("yyyy-MM-dd")); +``` + +### 2. Celdas vacías o inválidas + +Si una celda está vacía o contiene una cadena no analizable, `GetDateTime` lanzará una excepción. Envuelve la llamada en un `try/catch` o verifica `IsDateTime` primero: + +```csharp +if (worksheet.Cells["C3"].Type == CellValueType.IsDateTime) +{ + DateTime safeDate = worksheet.Cells["C3"].GetDateTime(); + Console.WriteLine(safeDate.ToString("yyyy-MM-dd")); +} +else +{ + Console.WriteLine("Cell C3 does not contain a valid date."); +} +``` + +### 3. Diferentes formatos de era + +Otras eras japonesas (Heisei, Showa) siguen el mismo patrón. El mismo `JapaneseLunisolarCalendar` las manejará automáticamente, por lo que no necesitas lógica adicional—simplemente proporciona la cadena. + +## Consejos profesionales y advertencias + +- **Performance:** Al procesar hojas de cálculo grandes, reutiliza una única instancia de `CultureInfo` en lugar de crear una nueva dentro de un bucle. +- **Thread Safety:** Los objetos `CultureInfo` son de solo lectura después de establecer el calendario, por lo que son seguros para compartir entre hilos. +- **Aspose.Cells Licensing:** Si estás usando la versión de prueba gratuita, recuerda que algunas funciones pueden estar limitadas después de que expire el período de prueba. El análisis de fechas mostrado aquí funciona bien tanto en modo de prueba como con licencia. +- **Time Zones:** El `DateTime` que obtienes es **unspecified** (sin zona horaria). Si necesitas UTC, llama a `DateTime.SpecifyKind(parsedDate, DateTimeKind.Utc)` o conviértelo usando `TimeZoneInfo`. + +## Conclusión + +Hemos cubierto todo lo que necesitas para **format date iso** desde un workbook de Excel usando C#. Partiendo de una cadena cruda de era japonesa, **read Excel datetime**, configuramos la cultura adecuada, **extract datetime excel** datos, y finalmente generamos una cadena ISO‑8601 limpia. El enfoque funciona para cualquier representación de fecha que Excel pueda presentar, ya sea un número de serie, una cadena específica de la configuración regional o un formato de era tradicional. + +¿Próximos pasos? Intenta iterar sobre una columna completa de fechas, escribe los resultados ISO de vuelta en una nueva hoja, o introdúcelos directamente en una carga JSON para un servicio web. Si tienes curiosidad por otros sistemas de calendario (hebreo, islámico), Aspose.Cells y `CultureInfo` de .NET hacen esos experimentos igualmente fáciles. + +¿Tienes preguntas o un formato de fecha complicado que no puedes descifrar? Deja un comentario abajo, ¡y feliz codificación! + +{{< /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/spanish/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md b/cells/spanish/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md new file mode 100644 index 0000000000..44c4aa83bb --- /dev/null +++ b/cells/spanish/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md @@ -0,0 +1,235 @@ +--- +category: general +date: 2026-03-30 +description: Aprende cómo dar formato a números con separador usando Aspose.Cells + en C#. Incluye establecer un formato numérico personalizado, agregar separador de + miles, formatear decimales y cómo dar formato a una celda. +draft: false +keywords: +- format number with separator +- set custom number format +- add thousands separator +- format decimal places +- how to format cell +language: es +og_description: Formatear número con separador en C#. Esta guía muestra cómo establecer + un formato numérico personalizado, agregar separador de miles, formatear decimales + y cómo formatear una celda usando Aspose.Cells. +og_title: Formato de número con separador en C# – Tutorial de Aspose.Cells +tags: +- C# +- Aspose.Cells +- Number Formatting +title: Formatear número con separador en C# – Guía completa de Aspose.Cells +url: /es/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Formato de número con separador en C# – Guía completa de Aspose.Cells + +¿Alguna vez necesitaste **formatear número con separador** en una hoja de cálculo pero no estabas seguro de qué llamada API usar? No eres el único—los desarrolladores luchan constantemente con separadores de miles, decimales y patrones personalizados al exportar datos. + +Buenas noticias: Aspose.Cells lo hace muy fácil. En este tutorial recorreremos un ejemplo del mundo real que **establece un formato numérico personalizado**, **agrega un separador de miles**, **formatea los decimales**, y muestra **cómo formatear una celda** para obtener la salida como una cadena. Al final tendrás un fragmento listo para ejecutar que puedes insertar en cualquier proyecto .NET. + +## Qué cubre esta guía + +* El paquete NuGet exacto que necesitas y cómo instalarlo. +* Código paso a paso que crea un libro de trabajo, escribe un valor numérico y aplica un formato personalizado. +* Por qué `ExportTableOptions.ExportAsString` es la forma preferida de obtener un valor formateado. +* Errores comunes—como olvidar habilitar `ExportAsString` o usar la máscara de formato incorrecta. +* Cómo ajustar la máscara de formato si necesitas un número diferente de decimales o un estilo de separador distinto. + +No se requieren enlaces a documentación externa; todo lo que necesitas está aquí. Vamos a sumergirnos. + +--- + +## Requisitos previos + +| Requisito | Razón | +|-------------|--------| +| .NET 6.0 or later | Aspose.Cells 23.10+ se dirige a .NET Standard 2.0+, por lo que .NET 6 es seguro y actual. | +| Visual Studio 2022 (or any C# IDE) | Facilita la depuración y la gestión de paquetes. | +| Aspose.Cells for .NET NuGet package | Proporciona las clases `Workbook`, `Worksheet` y `ExportTableOptions` que utilizaremos. | + +Puedes instalar el paquete mediante la consola del Administrador de paquetes: + +```powershell +Install-Package Aspose.Cells +``` + +Eso es todo—sin DLLs adicionales, sin interop COM, solo una referencia NuGet. + +## Paso 1: Inicializar un nuevo Workbook (Cómo formatear una celda) + +Lo primero que hacemos es crear una nueva instancia de `Workbook`. Piensa en ella como un archivo de Excel vacío listo para recibir datos. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Create a new workbook – this is where we’ll format the cell. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Por qué es importante:** `Workbook` es el punto de entrada para cada operación en Aspose.Cells. Al obtener la primera hoja de cálculo (`Worksheets[0]`) conseguimos un lienzo limpio sin necesidad de nombrar una hoja. + +## Paso 2: Escribir un valor numérico en la celda objetivo + +A continuación, colocamos un número bruto en la celda **A1**. El valor aún no está formateado—es simplemente un double. + +```csharp + // Step 2: Insert a raw numeric value. + worksheet.Cells["A1"].PutValue(12345.6789); +``` + +> **Consejo profesional:** Usa `PutValue` en lugar de `PutString` cuando planeas aplicar formato numérico más adelante. Esto preserva el tipo de datos subyacente, permitiendo cálculos compatibles con Excel. + +## Paso 3: Establecer formato numérico personalizado (Agregar separador de miles y formatear decimales) + +Ahora llega el corazón del tutorial: definir una máscara de formato que indica a Aspose.Cells cómo mostrar el número. La máscara `#,##0.00` hace tres cosas: + +1. **`#,##0`** – agrega un separador de miles (coma por defecto). +2. **`.00`** – fuerza exactamente dos lugares decimales. + +Si necesitas un número diferente de decimales, simplemente cambia la cantidad de `0`s después del punto decimal. + +```csharp + // Step 3: Configure the custom number format. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, // Return the value as a formatted string. + NumberFormat = "#,##0.00" // Add thousands separator and fix to 2 decimals. + }; +``` + +> **Por qué usamos `ExportAsString`**: Por defecto, `ExportString` devuelve el valor bruto. Establecer `ExportAsString = true` obliga a la API a aplicar la máscara `NumberFormat` antes de convertir a texto. Esto es esencial cuando necesitas la representación exacta en cadena para informes, cargas JSON o visualización en UI. + +## Paso 4: Exportar el texto formateado (Cómo formatear una celda) + +Con las opciones listas, llamamos a `ExportString` en la misma celda. El método respeta la máscara que acabamos de definir y devuelve una cadena bien formateada. + +```csharp + // Step 4: Export the formatted value. + string formattedCellText = worksheet.Cells["A1"].ExportString(exportOptions); + + // Step 5: Show the result. + Console.WriteLine(formattedCellText); // Expected output: 12,345.68 + } +} +``` + +Ejecutar el programa imprime **`12,345.68`** en la consola—exactamente el formato que solicitamos. + +> **Caso límite:** Si el número origen tiene más de dos decimales, la máscara lo redondea. Si necesitas truncamiento en lugar de redondeo, deberás pre‑procesar el valor con `Math.Truncate` antes de llamar a `PutValue`. + +## Paso 5: Ajustar el formato – Variaciones comunes + +### 5.1 Cambiar precisión decimal + +¿Quieres tres decimales? Simplemente reemplaza la máscara: + +```csharp +NumberFormat = "#,##0.000" // → 12,345.679 +``` + +### 5.2 Usar un separador de miles diferente + +Algunas configuraciones regionales prefieren un espacio o un punto. Puedes incrustar el carácter directamente: + +```csharp +NumberFormat = "# ##0.00" // Uses a non‑breaking space as separator. +``` + +O confiar en la configuración cultural del libro de trabajo: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("de-DE"); +NumberFormat = "#.##0,00"; // German style: 12.345,68 +``` + +### 5.3 Prefijo o sufijo (Moneda, Porcentaje) + +Agrega un signo de dólar o un signo de porcentaje directamente en la máscara: + +```csharp +NumberFormat = "$#,##0.00"; // → $12,345.68 +NumberFormat = "0.00%"; // → 1,234,568.00% +``` + +> **Nota:** La máscara distingue entre mayúsculas y minúsculas. `$` y `%` son símbolos literales; no afectan el valor numérico subyacente. + +## Paso 6: Ejemplo completo (listo para copiar y pegar) + +A continuación se muestra el programa completo que puedes copiar en una nueva aplicación de consola. Incluye todos los pasos, comentarios y la verificación de salida final. + +```csharp +using System; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write raw numeric value to A1. + worksheet.Cells["A1"].PutValue(12345.6789); + + // 3️⃣ Define custom format: thousands separator + two decimals. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + NumberFormat = "#,##0.00" + }; + + // 4️⃣ Export the formatted string. + string result = worksheet.Cells["A1"].ExportString(exportOptions); + + // 5️⃣ Display the outcome. + Console.WriteLine(result); // Output: 12,345.68 + + // Optional: keep console open. + Console.WriteLine("Press any key to exit..."); + Console.ReadKey(); + } +} +``` + +Ejecuta el programa (`dotnet run` desde la terminal o presiona F5 en Visual Studio) y verás el número formateado impreso exactamente como se muestra. + +## Preguntas frecuentes (FAQ) + +**P: ¿Esto funciona con versiones antiguas de Excel?** +R: Sí. La máscara de formato sigue la sintaxis nativa de formato numérico de Excel, por lo que cualquier versión que entienda `#,##0.00` mostrará la misma cadena. + +**P: ¿Qué pasa si necesito formatear un rango de celdas?** +R: Recorre el rango deseado y aplica el mismo `ExportTableOptions` a cada celda, o establece la propiedad `Style.Custom` en el rango y luego llama a `ExportString` en una sola celda. + +**P: ¿Puedo exportar directamente a CSV con estos formatos aplicados?** +R: Por supuesto. Usa `Workbook.Save("output.csv", SaveFormat.CSV);` después de establecer el formato en cada celda. Aspose.Cells respeta el `Style` de la celda al generar CSV. + +## Conclusión + +Acabamos de mostrar cómo **formatear número con separador** en C# usando Aspose.Cells, cubriendo todo desde **establecer formato numérico personalizado** hasta **agregar separador de miles**, **formatear decimales**, y lo esencial **cómo formatear una celda** para exportar como cadena. El código es completamente autónomo, funciona con .NET 6+ y puede adaptarse a cualquier configuración regional o requisito de precisión. + +A continuación, podrías explorar: + +* Aplicar la misma técnica a fechas y horas (`NumberFormat = "dd‑MMM‑yyyy"`). +* Automatizar exportaciones masivas donde cada columna necesita una máscara diferente. +* Integrar las cadenas formateadas en informes PDF con Aspose.Words. + +Prueba eso, y pronto serás la persona de referencia para el formateo de hojas de cálculo en tu equipo. ¡Feliz codificación! (Image: ![Screenshot showing formatted number with separator in Aspose.Cells](image-placeholder.png){alt="Número formateado con separador mostrado en la salida de 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/spanish/net/excel-data-import-export/_index.md b/cells/spanish/net/excel-data-import-export/_index.md index 826d3c6971..67c479c2a0 100644 --- a/cells/spanish/net/excel-data-import-export/_index.md +++ b/cells/spanish/net/excel-data-import-export/_index.md @@ -32,6 +32,10 @@ El siguiente paso es otro desafío común: insertar filas de DataTable en Excel Aprenda a importar datos a Excel con formato DB Num personalizado usando Aspose.Cells para .NET en este tutorial fácil de seguir. ### [Desplazar la primera fila hacia abajo al insertar filas de DataTable en Excel](./shift-first-row-down-when-inserting-cells-datatable-rows-in-excel/) Aprenda a insertar filas de DataTable en Excel sin desplazar la primera fila hacia abajo con Aspose.Cells para .NET. Guía paso a paso para una automatización sencilla. +### [Crear libro de Excel C# – Insertar JSON y guardarlo como XLSX](./create-excel-workbook-c-insert-json-and-save-as-xlsx/) +Aprenda a crear un libro de Excel en C#, insertar datos JSON y guardarlo como archivo XLSX usando Aspose.Cells para .NET. +### [Crear libro de Excel C# – Aplicar formato de moneda e importar DataTable](./create-excel-workbook-c-apply-currency-format-and-import-dat/) +Aprenda a crear un libro de Excel en C#, aplicar formato de moneda e importar datos desde un DataTable usando Aspose.Cells para .NET. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/spanish/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md b/cells/spanish/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md new file mode 100644 index 0000000000..4f0c84b2fc --- /dev/null +++ b/cells/spanish/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md @@ -0,0 +1,285 @@ +--- +category: general +date: 2026-03-30 +description: Crear libro de Excel en C# con formato de moneda. Aprende cómo importar + una DataTable, agregar formato numérico en Excel y aplicar formato de moneda a una + columna en minutos. +draft: false +keywords: +- create excel workbook c# +- format cells currency +- import datatable to excel +- add number format excel +- apply currency format column +language: es +og_description: Crea un libro de Excel en C# y formatea instantáneamente las celdas + como moneda. Este tutorial paso a paso muestra cómo importar una DataTable a Excel + y agregar formato numérico de Excel a una columna. +og_title: Crear libro de Excel en C# – Guía de formato de moneda +tags: +- Aspose.Cells +- C# +- Excel automation +title: Crear libro de Excel C# – Aplicar formato de moneda e importar DataTable +url: /es/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crear libro de Excel C# – Aplicar formato de moneda e importar DataTable + +¿Alguna vez necesitaste **create Excel workbook C#** que ya tenga el aspecto de un informe pulido? Tal vez estés extrayendo números de ventas de una base de datos y quieras que la columna de precio se muestre en dólares sin tener que manipular Excel manualmente. ¿Te suena? No estás solo—la mayoría de los desarrolladores se topan con este problema cuando automatizan exportaciones a Excel por primera vez. + +En esta guía recorreremos una solución completa, lista‑para‑ejecutar que **creates an Excel workbook C#**, importa un `DataTable` y **formats the Price column as currency**. Al final tendrás un archivo llamado `StyledTable.xlsx` que podrás abrir y ver números con formato agradable. No se requiere procesamiento adicional. + +> **Qué aprenderás** +> - How to set up Aspose.Cells in a .NET project +> - How to **import datatable to excel** with a style array +> - How to **add number format excel** for a specific column +> - Tips for handling more columns or different locales + +> **Prerequisitos** +> - .NET 6+ (o .NET Framework 4.6+) instalado +> - Aspose.Cells for .NET NuGet package (`Install-Package Aspose.Cells`) +> - Familiaridad básica con C# y DataTables + +--- + +## Paso 1: Preparar el DataTable (import datatable to excel) + +Primero, necesitamos algunos datos de ejemplo. En una aplicación real probablemente rellenarías esta tabla a partir de una consulta a la base de datos, pero un ejemplo codificado mantiene las cosas simples. + +```csharp +using System.Data; + +// Create a DataTable with two columns: Product (string) and Price (double) +DataTable dataTable = new DataTable(); +dataTable.Columns.Add("Product", typeof(string)); +dataTable.Columns.Add("Price", typeof(double)); + +// Add a few rows – you can add as many as you like +dataTable.Rows.Add("Apple", 1.23); +dataTable.Rows.Add("Banana", 0.78); +dataTable.Rows.Add("Cherry", 2.50); +``` + +*Por qué es importante*: El `DataTable` es el puente entre tus datos de negocio y el archivo Excel. Aspose.Cells puede importarlo directamente, preservando los nombres de columnas y los tipos de datos. + +--- + +## Paso 2: Crear un nuevo Workbook (create excel workbook c#) + +Ahora creamos el objeto real del archivo Excel. Piensa en él como el lienzo en blanco sobre el que pintarás. + +```csharp +using Aspose.Cells; + +// Instantiate a fresh workbook – this is the core of create excel workbook c# +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0). You could also add more sheets later. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Consejo:** Si necesitas varias hojas, llama a `workbook.Worksheets.Add()` y asigna a cada una un nombre significativo. + +--- + +## Paso 3: Definir un estilo de moneda (format cells currency) + +Aspose.Cells te permite crear un objeto `Style` que describe cómo deben verse las celdas. Para moneda usamos el formato numérico incorporado ID 164 (`"$#,##0.00"`). + +```csharp +// Create a new style object for the price column +Style priceStyle = workbook.CreateStyle(); +priceStyle.Number = 164; // Built‑in currency format "$#,##0.00" +``` + +*¿Por qué no simplemente establecer la cadena de formato?* Usar el ID incorporado garantiza compatibilidad entre versiones de Excel y evita peculiaridades específicas de la configuración regional. + +--- + +## Paso 4: Construir la matriz de estilos (apply currency format column) + +Al importar un `DataTable`, puedes pasar una matriz de objetos `Style`—uno por columna. `null` significa “usar el estilo predeterminado”. Aquí aplicamos `priceStyle` solo a la segunda columna. + +```csharp +// Column 0 (Product) gets the default style, Column 1 (Price) gets the currency style +Style[] columnStyles = { null, priceStyle }; +``` + +Si más adelante añades más columnas, simplemente extiende la matriz en consecuencia. La longitud de `columnStyles` debe coincidir con el número de columnas que estás importando, de lo contrario Aspose lanzará una excepción. + +--- + +## Paso 5: Importar el DataTable con estilos (import datatable to excel) + +Ahora ocurre la magia—nuestro `DataTable` se coloca en la hoja de cálculo, y la columna de precio se muestra instantáneamente como moneda. + +```csharp +// Parameters: +// - dataTable: source data +// - true: include column headers +// - startRow: 0 (top of sheet) +// - startColumn: 0 (first column) +// - columnStyles: style array defined above +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +*¿Qué pasa si tienes más de dos columnas?* Simplemente expande `columnStyles` para que cada columna reciba el estilo apropiado (o `null` para el predeterminado). Esta es la forma más limpia de **add number format excel** de manera selectiva. + +--- + +## Paso 6: Guardar el Workbook (create excel workbook c#) + +Finalmente, escribimos el archivo en disco. Elige cualquier carpeta a la que tengas permiso de escritura. + +```csharp +// Save the workbook as an XLSX file +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +Abre `StyledTable.xlsx` en Excel y deberías ver: + +| Product | Price | +|---------|-------| +| Apple | $1.23 | +| Banana | $0.78 | +| Cherry | $2.50 | + +La columna **Price** ya está formateada como moneda—no se necesitan pasos adicionales. + +--- + +## Casos límite y variaciones + +### Más columnas, diferentes formatos + +Si necesitas **format cells currency** para varias columnas (p.ej., Cost, Tax, Total), crea un `Style` separado para cada una y rellena `columnStyles` en consecuencia: + +```csharp +Style costStyle = workbook.CreateStyle(); +costStyle.Number = 164; // currency + +Style taxStyle = workbook.CreateStyle(); +taxStyle.Number = 164; + +// Assuming columns: Product, Cost, Tax, Total +Style[] styles = { null, costStyle, taxStyle, priceStyle }; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, styles); +``` + +### Moneda específica de la configuración regional + +Para Euro o Libra esterlina, usa diferentes IDs incorporados (p.ej., 165 para `€#,##0.00`). Alternativamente, establece una cadena de formato personalizada: + +```csharp +priceStyle.Custom = "€#,##0.00"; +``` + +### Conjuntos de datos grandes + +Aspose.Cells puede manejar millones de filas, pero el consumo de memoria crece con los objetos de estilo. Reutiliza una única instancia de `Style` para todas las columnas de moneda para mantener bajo el uso de memoria. + +### Estilos faltantes + +Si `columnStyles` es más corto que el número de columnas, Aspose aplicará el estilo predeterminado a las columnas restantes. Esto es útil cuando solo te importan unas pocas columnas. + +--- + +## Ejemplo completo (todos los pasos combinados) + +A continuación se muestra el programa completo que puedes copiar y pegar en una aplicación de consola. Incluye todas las piezas que discutimos, más algunos comentarios útiles. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // Step 1: Build sample DataTable (import datatable to excel) + // ------------------------------------------------- + DataTable dataTable = new DataTable(); + dataTable.Columns.Add("Product", typeof(string)); + dataTable.Columns.Add("Price", typeof(double)); + dataTable.Rows.Add("Apple", 1.23); + dataTable.Rows.Add("Banana", 0.78); + dataTable.Rows.Add("Cherry", 2.50); + // You can add as many rows as you like here. + + // ------------------------------------------------- + // Step 2: Create a new workbook (create excel workbook c#) + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // Step 3: Define a currency style (format cells currency) + // ------------------------------------------------- + Style priceStyle = workbook.CreateStyle(); + priceStyle.Number = 164; // "$#,##0.00" – built‑in currency format + + // ------------------------------------------------- + // Step 4: Build the style array (apply currency format column) + // ------------------------------------------------- + // First column gets default style (null), second column uses priceStyle. + Style[] columnStyles = { null, priceStyle }; + + // ------------------------------------------------- + // Step 5: Import the DataTable with the style array + // ------------------------------------------------- + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // ------------------------------------------------- + // Step 6: Save the workbook to disk + // ------------------------------------------------- + string outputPath = @"YOUR_DIRECTORY\StyledTable.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } +} +``` + +**Resultado esperado:** Al abrir `StyledTable.xlsx` se muestra la columna `Price` con el símbolo de dólar y dos decimales, exactamente como lo exige la instrucción `format cells currency`. + +--- + +## Preguntas frecuentes + +**P: ¿Esto funciona con .NET Core?** +R: Absolutamente. Aspose.Cells es compatible con .NET‑standard, por lo que puedes apuntar a .NET 5, .NET 6 o versiones posteriores sin cambios. + +**P: ¿Qué pasa si mi DataTable tiene 10 columnas pero solo quiero formatear la columna 5?** +R: Crea un `Style[]` de longitud 10, rellena las posiciones 0‑4 y 6‑9 con `null`, y coloca tu estilo personalizado en el índice 4 (basado en cero). Aspose respetará cada entrada. + +**P: ¿Puedo ocultar la fila de encabezado?** +R: Después de la importación, establece `worksheet.Cells.Rows[0].Hidden = true;` o simplemente pasa `false` para el parámetro `includeColumnNames` en `ImportDataTable`. + +--- + +## Conclusión + +Acabamos de **create an Excel workbook C#**, importar un `DataTable` y **apply a currency format column** usando Aspose.Cells. Los pasos principales—preparar los datos, definir un estilo, construir una matriz de estilos, importar con `ImportDataTable` y guardar—cubren el núcleo de la mayoría de las tareas de automatización de Excel. + +Desde aquí podrías explorar: + +- **add number format excel** para fechas o porcentajes +- Exportar varias hojas de cálculo en un solo archivo +- Usar **format cells currency** con símbolos específicos de la configuración regional +- Automatizar la creación de gráficos basados en los mismos datos + +Pruébalos, y pronto te convertirás en la persona de referencia para los informes de Excel en tu equipo. ¿Tienes una variante que te gustaría compartir? Deja un comentario abajo—¡feliz codificación! + +![create excel workbook c# screenshot](image.png "create excel workbook c#") + +{{< /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/spanish/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md b/cells/spanish/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md new file mode 100644 index 0000000000..1291b2d7cb --- /dev/null +++ b/cells/spanish/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-03-30 +description: Crea rápidamente un libro de Excel en C# insertando datos JSON y guardando + el libro como XLSX. Aprende cómo generar Excel a partir de JSON, escribir JSON en + Excel e insertar JSON en Excel. +draft: false +keywords: +- create excel workbook c# +- save workbook as xlsx +- generate excel from json +- write json to excel +- insert json into excel +language: es +og_description: Crea rápidamente un libro de Excel en C# insertando datos JSON y guardándolo + como XLSX. Sigue esta guía paso a paso para generar Excel a partir de JSON. +og_title: Crear libro de Excel en C# – Insertar JSON y guardar como XLSX +tags: +- Aspose.Cells +- C# +- Excel automation +title: Crear libro de Excel C# – Insertar JSON y guardar como XLSX +url: /es/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crear libro de Excel C# – Insertar JSON y Guardar como XLSX + +¿Alguna vez necesitaste **create Excel workbook C#** y volcar algún JSON directamente en una celda? No eres el único; los desarrolladores a menudo se enfrentan al mismo problema cuando tienen cargas útiles de API o archivos de configuración que deben llegar a una hoja de cálculo para informes o compartir. + +La buena noticia es que con Aspose.Cells puedes hacerlo en unas pocas líneas, **save workbook as XLSX**, y mantener todo el proceso tipado de forma segura. En este tutorial **generaremos Excel a partir de JSON**, **escribiremos JSON en Excel**, y te mostraremos los pasos exactos para **insert JSON into Excel** sin concatenaciones de cadenas complicadas. + +## Qué cubre esta guía + +Vamos a repasar: + +1. Configurar un libro nuevo. +2. Añadir un Smart Marker que espera JSON. +3. Proveer una matriz JSON al marcador. +4. Ajustar `SmartMarkerOptions` para que el JSON permanezca en una sola celda. +5. Guardar el archivo como un libro XLSX. + +Al final tendrás un archivo `JsonSingleCell.xlsx` listo para usar y un patrón sólido que puedes reutilizar para cualquier escenario JSON‑a‑Excel. Sin servicios externos, solo C# puro y la biblioteca Aspose.Cells. + +**Requisitos previos** + +- .NET 6+ (o .NET Framework 4.6+). +- Visual Studio 2022 o cualquier IDE compatible con C#. +- Paquete NuGet `Aspose.Cells` (prueba gratuita o versión licenciada). + +Si ya los tienes, vamos a sumergirnos—no se requiere configuración adicional. + +--- + +## Paso 1: Crear un nuevo libro en C# + +Lo primero que necesitas es un objeto workbook en blanco. Piensa en él como un archivo Excel nuevo esperando datos. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is your empty Excel file +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; +``` + +**Por qué es importante:** +`Workbook` es el punto de entrada para todas las operaciones de Excel. Al crearlo primero, aseguras que la posterior llamada **save workbook as xlsx** tenga un objeto concreto para serializar. + +> **Consejo profesional:** Si planeas trabajar con varias hojas, puedes añadirlas ahora con `workbook.Worksheets.Add()`. + +--- + +## Paso 2: Colocar un Smart Marker que espera JSON + +Los Smart Markers son marcadores de posición que Aspose.Cells reemplaza en tiempo de ejecución. Aquí le indicamos que busque una cadena JSON llamada `data`. + +```csharp +// Put a Smart Marker in cell A1 – {{data:json}} tells Aspose to expect JSON +worksheet.Cells["A1"].PutValue("{{data:json}}"); +``` + +**Por qué es importante:** +El sufijo `:json` indica al motor que el valor entrante es JSON, no texto plano. Esta es la clave para **write json to excel** sin análisis manual. + +--- + +## Paso 3: Definir la matriz JSON + +Ahora creamos el JSON que queremos insertar. Para la demostración usaremos una lista sencilla de personas. + +```csharp +// Sample JSON array – could come from an API, file, or DB +string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; +``` + +**Caso límite:** +Si tu JSON contiene comillas dobles, asegúrate de escaparlas (como se muestra) o usa una cadena literal (`@"..."`) para evitar errores de compilación. + +--- + +## Paso 4: Configurar Smart Marker Options – Mantener la matriz completa + +Por defecto, Aspose intentaría expandir la matriz en filas. Queremos que toda la cadena JSON permanezca dentro de una sola celda, lo cual es perfecto para escenarios de **insert json into excel** donde el consumidor analizará el JSON más tarde. + +```csharp +SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions +{ + // Treat the whole array as a single cell value + ArrayAsSingle = true +}; +``` + +**Por qué es importante:** +`ArrayAsSingle = true` evita la expansión de filas, dándote un blob JSON limpio en una sola celda. Esto es esencial cuando la hoja de cálculo es un formato de transporte más que un informe. + +--- + +## Paso 5: Procesar el Smart Marker con los datos JSON + +Ahora vinculamos el JSON al marcador y dejamos que Aspose haga el trabajo pesado. + +```csharp +// Process the marker – the anonymous object maps "data" to our JSON string +worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); +``` + +**Qué ocurre internamente:** +Aspose evalúa el marcador `{{data:json}}`, serializa la cadena `jsonData` y la escribe en la celda A1 respetando las opciones que configuramos. + +--- + +## Paso 6: Guardar el libro como archivo XLSX + +Finalmente, escribimos el libro en disco. Aquí es donde entra en juego **save workbook as xlsx**. + +```csharp +// Save the workbook – the extension determines the format (XLSX here) +workbook.Save("JsonSingleCell.xlsx"); +``` + +**Resultado:** +Abre `JsonSingleCell.xlsx` en Excel y verás la matriz JSON exactamente como la definimos, sentada ordenadamente en la celda A1. + +--- + +## Ejemplo completo y ejecutable + +A continuación tienes el programa completo que puedes copiar y pegar en una aplicación de consola. Incluye todos los pasos anteriores y funciona de inmediato (suponiendo que el paquete NuGet Aspose.Cells esté instalado). + +```csharp +using System; +using Aspose.Cells; + +namespace JsonToExcelDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add a Smart Marker that expects JSON + worksheet.Cells["A1"].PutValue("{{data:json}}"); + + // 3️⃣ Define the JSON array + string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; + + // 4️⃣ Configure options – keep array as a single cell value + SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions + { + ArrayAsSingle = true + }; + + // 5️⃣ Process the marker with the JSON payload + worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); + + // 6️⃣ Save the workbook as XLSX + workbook.Save("JsonSingleCell.xlsx"); + + Console.WriteLine("Excel file created successfully! Check JsonSingleCell.xlsx."); + } + } +} +``` + +**Salida esperada en Excel** + +| A | +|---| +| `[{"Name":"John","Age":30},{"Name":"Jane","Age":28}]` | + +Esa única celda ahora contiene una matriz JSON perfectamente válida lista para el procesamiento posterior. + +--- + +## Preguntas frecuentes y casos límite + +### ¿Qué pasa si necesito que el JSON se distribuya en filas? + +Establece `ArrayAsSingle = false` (el valor predeterminado). Aspose creará una fila para cada elemento de la matriz, asignando las propiedades del objeto a columnas. Esto es útil cuando deseas una vista tabular en lugar de una cadena JSON cruda. + +### ¿Puedo usar un archivo JSON en lugar de una cadena codificada? + +Absolutamente. Lee el archivo en una cadena: + +```csharp +string jsonData = File.ReadAllText("people.json"); +``` + +Luego pasa `jsonData` a la misma llamada `Process`. El resto del flujo permanece sin cambios. + +### ¿Esto funciona con cargas JSON grandes? + +Sí, pero vigila el uso de memoria. Para matrices masivas, considera transmitir los datos o escribir directamente en filas (`ArrayAsSingle = false`) para evitar una única celda gigantesca que Excel podría tener problemas para manejar. + +### ¿El XLSX generado es compatible con versiones antiguas de Excel? + +El formato `.xlsx` se basa en Office Open XML y funciona con Excel 2007 en adelante. Si necesitas el formato heredado `.xls`, cambia la llamada de guardado: + +```csharp +workbook.Save("JsonSingleCell.xls", SaveFormat.Excel97To2003); +``` + +--- + +## Consejos profesionales para trabajar con JSON y Excel + +- **Valida el JSON primero** – usa `System.Text.Json.JsonDocument.Parse(jsonData)` para detectar entradas mal formadas temprano. +- **Escapa caracteres especiales** – si tu JSON contiene saltos de línea, aparecerán como `\n` literal en la celda; puedes reemplazarlos con `Environment.NewLine` antes de procesar. +- **Reutiliza Smart Markers** – puedes colocar varios marcadores en la misma hoja, cada uno apuntando a una propiedad JSON diferente. +- **Combínalo con fórmulas** – una vez que el JSON está en una celda, puedes usar `FILTERXML` de Excel (en versiones más recientes) para analizarlo al instante. + +--- + +## Conclusión + +Ahora sabes cómo **create excel workbook c#**, incrustar una carga JSON y **save workbook as xlsx** usando Aspose.Cells. Este patrón te permite **generate excel from json**, **write json to excel**, y **insert json into excel** con solo unas pocas líneas de código, facilitando el intercambio de datos entre servicios y analistas. + +¿Listo para el siguiente paso? Prueba convertir la matriz JSON en una tabla adecuada (establece `ArrayAsSingle = false`) o explora aplicar estilos a la hoja después de la inserción. El mismo enfoque funciona para CSV, XML o incluso objetos personalizados—solo ajusta el tipo de Smart Marker. + +¡Feliz codificación y siéntete libre de experimentar! Si encuentras algún problema, deja un comentario abajo o consulta la documentación oficial de Aspose para profundizar en los Smart Markers. + +{{< /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/spanish/net/excel-workbook/_index.md b/cells/spanish/net/excel-workbook/_index.md index f88893e3ef..4a59c3b617 100644 --- a/cells/spanish/net/excel-workbook/_index.md +++ b/cells/spanish/net/excel-workbook/_index.md @@ -85,7 +85,8 @@ En resumen, Aspose.Cells para .NET abre un mundo de posibilidades para quienes b | [Actualizar elemento de fórmula de Power Query](./update-power-query-formula-item/) Actualice fácilmente los elementos de fórmula de Power Query en Excel con Aspose.Cells para .NET. Guía paso a paso para optimizar sus procesos de manipulación de datos. | [Vista previa de impresión del libro de trabajo](./workbook-print-preview/) Aprenda a crear vistas previas de impresión para archivos de Excel con Aspose.Cells para .NET. Aprenda los pasos de programación con un tutorial detallado y fácil de seguir. | [Trabajar con propiedades de tipo de contenido](./working-with-content-type-properties/) Aprenda a usar Aspose.Cells para .NET para trabajar con propiedades de tipo de contenido y optimizar la gestión de metadatos de Excel. Siga esta sencilla guía paso a paso. -| [Soporte de firma de Xades](./xades-signature-support/) Aprenda a agregar firmas de Xades a archivos de Excel usando Aspose.Cells para .NET con esta guía paso a paso. Proteja sus documentos. +| [Soporte de firma de Xades](./xades-signature-support/) Aprenda a agregar firmas de Xades a archivos de Excel usando Aspose.Cells para .NET con esta guía paso a paso. Proteja sus documentos. | +| [Crear hoja maestra en C# – Guía completa de Aspose.Cells](./create-master-sheet-in-c-complete-aspose-cells-guide/) | Aprenda a crear una hoja maestra en C# usando Aspose.Cells con esta guía paso a paso. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/spanish/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md b/cells/spanish/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md new file mode 100644 index 0000000000..23b256a754 --- /dev/null +++ b/cells/spanish/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md @@ -0,0 +1,246 @@ +--- +category: general +date: 2026-03-30 +description: Crear hoja maestra usando Aspose.Cells en C#. Aprende cómo crear un libro + de Excel en C#, permitir nombres de hoja duplicados y guardar el libro como XLSX + en unos pocos pasos. +draft: false +keywords: +- create master sheet +- create excel workbook c# +- save workbook as xlsx +- allow duplicate sheet names +language: es +og_description: Crear hoja maestra con Aspose.Cells en C#. Esta guía muestra cómo + crear un libro de Excel en C#, permitir nombres de hoja duplicados y guardar el + libro como XLSX. +og_title: Crear hoja maestra en C# – Guía completa de Aspose.Cells +tags: +- Aspose.Cells +- C# +- Excel automation +title: Crear hoja maestra en C# – Guía completa de Aspose.Cells +url: /es/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crear hoja maestra en C# – Guía completa de Aspose.Cells + +¿Alguna vez necesitaste **crear una hoja maestra** en un archivo Excel pero no estabas seguro de cómo manejar un montón de hojas de detalle que comparten el mismo nombre base? No estás solo. En muchos escenarios de informes terminas con docenas de pestañas de detalle, y el comportamiento predeterminado de la mayoría de las bibliotecas es lanzar una excepción cuando dos hojas terminarían con el mismo nombre. + +Afortunadamente, Aspose.Cells lo hace muy fácil para **crear una hoja maestra**, configurar el motor para **permitir nombres de hoja duplicados**, y luego **guardar el libro como XLSX**—todo desde código C# limpio. En este tutorial recorreremos un ejemplo completamente ejecutable, explicaremos por qué cada línea es importante y te daremos una serie de consejos que puedes copiar directamente a tus propios proyectos. + +> **Lo que aprenderás** +> * Cómo **crear un libro de Excel en C#** usando Aspose.Cells. +> * Cómo incrustar un smart‑marker que genera una hoja de detalle por cada fila de datos. +> * Cómo establecer `DetailSheetNewName = DuplicateAllowed` para que la biblioteca añada automáticamente un sufijo numérico. +> * Cómo **guardar el libro como XLSX** en disco sin pasos adicionales. + +No se requiere documentación externa—todo lo que necesitas está aquí. + +--- + +## Requisitos previos + +Antes de sumergirnos, asegúrate de tener: + +| Requisito | Por qué es importante | +|-----------|-----------------------| +| .NET 6.0 o posterior (o .NET Framework 4.7+) | Aspose.Cells 23.x+ está dirigido a estos runtimes. | +| Visual Studio 2022 (o cualquier IDE de C#) | Para crear proyectos y depurar fácilmente. | +| Paquete NuGet Aspose.Cells for .NET (`Install-Package Aspose.Cells`) | La biblioteca que impulsa toda la magia del smart‑marker. | +| Conocimientos básicos de C# | Entenderás la sintaxis sin necesidad de un curso intensivo. | + +Si te falta alguno de estos, añádelo ahora—no tiene sentido continuar con un entorno a medio hacer. + +--- + +## Paso 1: Crear hoja maestra con Aspose.Cells + +Lo primero que hacemos es **crear un libro de Excel en C#** instanciando un objeto `Workbook`. Este objeto ya contiene una hoja de cálculo predeterminada, que renombraremos a “Master” y trataremos como la plantilla para todas las páginas de detalle. + +```csharp +using Aspose.Cells; + +// Step 1: Initialise a new workbook – this automatically gives us one sheet +Workbook workbook = new Workbook(); + +// Grab the first (and only) worksheet that comes with a fresh workbook +Worksheet masterSheet = workbook.Worksheets[0]; + +// Give it a meaningful name – this will be our master sheet +masterSheet.Name = "Master"; +``` + +*¿Por qué renombrar la hoja?* +Un nombre predeterminado como “Sheet1” no transmite intención, y más adelante, al escanear el archivo, querrás que la pestaña maestra sea instantáneamente reconocible. Renombrar también evita colisiones accidentales cuando agregues más hojas. + +--- + +## Paso 2: Preparar el smart‑marker que generará hojas de detalle + +Los smart‑markers son marcadores de posición que Aspose.Cells reemplaza con datos en tiempo de ejecución. Al colocar `{{#detail:DataSheetName}}` en la celda **A1**, le decimos al motor: “Para cada registro en la fuente de datos, crea una nueva hoja cuyo nombre provenga del campo `DataSheetName`”. + +```csharp +// Step 2: Insert a smart‑marker into cell A1. +// The marker #detail tells Aspose.Cells to generate a new sheet per data row. +masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); +``` + +Piensa en el marcador como una pequeña tarjeta de instrucciones pegada en la hoja de cálculo. Cuando el procesador se ejecuta, lee la tarjeta, extrae el valor apropiado de la fuente de datos y luego clona la hoja maestra en una nueva pestaña. + +--- + +## Paso 3: Construir la fuente de datos – nombres de hoja duplicados a propósito + +En la vida real podrías obtener esto de una base de datos, pero para la demostración usaremos una matriz en memoria de objetos anónimos. Observa que ambos elementos usan el mismo nombre base `"Detail"`; este es el escenario donde **permitir nombres de hoja duplicados** se vuelve crucial. + +```csharp +// Step 3: Create a data source with two items that share the same base sheet name. +var dataSource = new[] +{ + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } +}; +``` + +Si intentaras esto sin opciones especiales, Aspose.Cells lanzaría una excepción en la segunda iteración porque ya existe una hoja llamada “Detail”. Por eso el siguiente paso es importante. + +--- + +## Paso 4: Habilitar nombres de hoja duplicados + +Aspose.Cells expone `SmartMarkerOptions.DetailSheetNewName`. Configurarlo a `DetailSheetNewName.DuplicateAllowed` indica al motor que añada automáticamente un sufijo numérico (p. ej., “Detail_1”) siempre que ocurra un conflicto de nombres. + +```csharp +// Step 4: Configure SmartMarker options to permit duplicate sheet names. +var smartMarkerOptions = new SmartMarkerOptions +{ + // This makes the library rename clashes to "Detail_1", "Detail_2", etc. + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed +}; +``` + +*¿Por qué no dar a cada fila un nombre único manualmente?* +Porque a menudo los datos de origen no garantizan unicidad, especialmente cuando los usuarios ingresan texto libre. Dejar que la biblioteca maneje el sufijo elimina toda una clase de errores. + +--- + +## Paso 5: Procesar los smart‑markers y generar las hojas de detalle + +Ahora llamamos a `SmartMarkers.Process`, pasando tanto la fuente de datos como las opciones que acabamos de configurar. El método recorre cada elemento, clona la hoja maestra y renombra la copia según el campo `DataSheetName` (más un sufijo si es necesario). + +```csharp +// Step 5: Run the smart‑marker processor – this creates the detail sheets. +masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); +``` + +Después de ejecutar esta línea tendrás tres pestañas en el libro: + +1. **Master** – la plantilla original. +2. **Detail** – primera hoja generada (no se necesita sufijo). +3. **Detail_1** – segunda hoja generada (sufijo añadido automáticamente). + +Puedes verificarlo abriendo el archivo en Excel; verás las dos hojas de detalle una al lado de la otra. + +--- + +## Paso 6: Guardar el libro como archivo XLSX + +Finalmente, persistimos el archivo en disco. El método `Save` elige automáticamente el formato XLSX cuando le das una extensión `.xlsx`. + +```csharp +// Step 6: Persist the workbook – this is the moment we finally “save workbook as XLSX”. +string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; +workbook.Save(outputPath); +``` + +**Consejo profesional:** Si necesitas transmitir el archivo directamente a una respuesta web (p. ej., ASP.NET Core), usa `workbook.Save(stream, SaveFormat.Xlsx)` en lugar de una ruta de archivo. + +--- + +## Ejemplo completo y funcional + +A continuación tienes el programa completo, listo para ejecutar. Copia‑pégalo en una aplicación de consola, pulsa F5 y abre el archivo generado para ver el resultado. + +```csharp +using System; +using Aspose.Cells; + +namespace MasterSheetDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook and rename the default sheet to "Master" + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert a smart‑marker that will generate a detail sheet per data row + masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); + + // 3️⃣ Prepare a data source where two rows share the same sheet name + var dataSource = new[] + { + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } + }; + + // 4️⃣ Allow duplicate sheet names – the library will add "_1", "_2", … + var smartMarkerOptions = new SmartMarkerOptions + { + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed + }; + + // 5️⃣ Process the smart‑markers; this creates the detail sheets + masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); + + // 6️⃣ Save the workbook as an XLSX file + string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Resultado esperado:** Abre `DuplicateDetailSheets.xlsx` y verás tres hojas de cálculo—`Master`, `Detail` y `Detail_1`. Cada hoja de detalle es una copia exacta de la maestra, lista para que la rellenes con datos específicos de cada fila más adelante. + +--- + +## Preguntas frecuentes y casos límite + +### ¿Qué pasa si necesito más de dos hojas duplicadas? + +Ningún problema. La misma configuración `DuplicateAllowed` seguirá añadiendo números incrementales (`Detail_2`, `Detail_3`, …) hasta que cada fila tenga su propia pestaña. + +### ¿Puedo personalizar el formato del sufijo? + +De forma predeterminada, Aspose.Cells usa un guion bajo seguido de un índice numérico. Si necesitas un patrón diferente (p. ej., “Detail‑A”, “Detail‑B”), tendrás que post‑procesar el libro después de que `Process` se ejecute, iterando sobre `workbook.Worksheets` y renombrando según convenga. + +### ¿Este enfoque funciona con conjuntos de datos grandes (cientos de filas)? + +Sí, pero vigila el uso de memoria. Cada hoja generada es una copia completa de la maestra, por lo que un número masivo de filas puede inflar rápidamente el tamaño del archivo. Si solo necesitas unas pocas filas por hoja, considera usar `SmartMarkerOptions.RemoveEmptyRows = true` para recortar celdas vacías. + +### ¿El archivo generado es realmente un archivo XLSX? + +Absolutamente. El método `Save` escribe el paquete Open XML que Excel espera. Incluso puedes abrir el archivo con LibreOffice o Google Sheets sin necesidad de conversión. + +--- + +## Consejos para código listo para producción + +| Consejo | Por qué es importante | +|---------|-----------------------| +| **Dispose `Workbook** | | + +{{< /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/spanish/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md b/cells/spanish/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md new file mode 100644 index 0000000000..04e77eb8a8 --- /dev/null +++ b/cells/spanish/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-30 +description: Crear libro de Excel en C# usando Aspose.Cells. Aprenda a aplicar la + función lambda en Excel, la función SEQUENCE en Excel, expandir matrices en Excel + y guardar el libro como xlsx. +draft: false +keywords: +- create excel workbook c# +- lambda function excel +- save workbook as xlsx +- sequence function excel +- expand array excel +language: es +og_description: Crea rápidamente un libro de Excel con C#. Esta guía muestra cómo + usar la función lambda en Excel, la función secuencia en Excel, expandir matrices + en Excel y guardar el libro como xlsx. +og_title: Crear libro de Excel C# – Guía de Lambda, SEQUENCE y EXPAND +tags: +- Aspose.Cells +- C# +- Excel automation +title: Crear libro de Excel en C# – Guía de Lambda, SEQUENCE y EXPAND +url: /es/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crear Libro de Excel C# – Guía de LAMBDA, SEQUENCE y EXPAND + +¿Alguna vez necesitaste **crear libro de Excel C#** para un informe automatizado, pero no estabas seguro de qué llamadas a la API usar? No estás solo: muchos desarrolladores se topan con el mismo obstáculo al adentrarse por primera vez en la generación programática de Excel. En esta guía verás un ejemplo completo y ejecutable que cubre todo, desde la nueva **función SEQUENCE de Excel** hasta la poderosa **función LAMBDA de Excel**, e incluso cómo **expandir matrices en Excel**. + +También te mostraremos los pasos exactos para **guardar el libro como xlsx** y poder entregar el archivo a cualquiera que use Excel. Al final de este tutorial tendrás un fragmento sólido y listo para producción que puedes insertar en cualquier proyecto .NET. Sin enlaces vagos de “ver la documentación”, solo código que funciona hoy. + +## Qué Necesitarás + +- **.NET 6.0 o posterior** – el ejemplo está dirigido a .NET 6, pero cualquier versión reciente funciona. +- **Aspose.Cells para .NET** – instálalo vía NuGet (`Install-Package Aspose.Cells`). +- Un conocimiento básico de la sintaxis de C# (variables, objetos y expresiones lambda). +- Un IDE con el que te sientas cómodo (Visual Studio, Rider o VS Code). + +Eso es todo. Sin interop COM adicional, sin Office instalado en el servidor—Aspose.Cells maneja todo en memoria. + +## Crear Libro de Excel C# – Implementación Paso a Paso + +A continuación dividimos el proceso en pasos manejables. Cada paso tiene un encabezado claro, un breve fragmento de código y una explicación de **por qué** lo hacemos. Si lo deseas, copia el bloque completo al final y ejecútalo como una aplicación de consola. + +### Paso 1 – Inicializar un Nuevo Libro + +Lo primero: necesitamos un objeto de libro en blanco que represente el archivo de Excel en memoria. + +```csharp +using Aspose.Cells; + +// Step 1: Create a new workbook and get the first worksheet +Workbook workbook = new Workbook(); // empty workbook +Worksheet sheet = workbook.Worksheets[0]; // default first sheet +``` + +*Por qué es importante:* `Workbook` es el punto de entrada para todas las operaciones de Aspose.Cells. Al obtener la primera `Worksheet` obtenemos un lienzo donde podemos escribir fórmulas, valores o aplicar formato. + +> **Consejo profesional:** Si necesitas varias hojas, simplemente llama a `workbook.Worksheets.Add()` y conserva una referencia a cada una. + +### Paso 2 – Usar la función SEQUENCE de Excel para Generar Datos + +La **sequence function excel** crea una matriz dinámica de números sin VBA. La colocaremos en la celda `A1` y dejaremos que Excel la expanda automáticamente. + +```csharp +// Step 2: Generate a 5‑row, 1‑column array from a SEQUENCE +sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; // 1..3 padded with blanks +``` + +*Por qué es importante:* `SEQUENCE(3)` produce `[1,2,3]`. Envolverla con `EXPAND` fuerza el resultado a un rango de 5 filas, rellenando las filas extra con celdas vacías. Esto demuestra tanto **sequence function excel** como **expand array excel** en una sola operación. + +### Paso 3 – Agregar Números con la función LAMBDA de Excel + +Ahora mostraremos la capacidad de la **lambda function excel**. Sumaremos los números del 1 al 5 usando la nueva función `REDUCE`, que internamente depende de una lambda. + +```csharp +// Step 3: Aggregate a sequence (sum 1..5) using REDUCE/LAMBDA +sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; // result = 15 +``` + +*Por qué es importante:* `REDUCE` itera sobre la matriz producida por `SEQUENCE(5)`, pasando cada elemento (`b`) a la lambda junto con el acumulador (`a`). La lambda `a+b` los suma, dejando `15` en `B1`. Esta es una forma limpia, solo con fórmulas, de realizar reducciones sin bucles en C#. + +### Paso 4 – Aplicar Funciones Trigonométricas Directamente en Celdas + +Las funciones matemáticas integradas de Excel son útiles para cálculos rápidos. Pondremos una cotangente y una cotangente hiperbólica en celdas adyacentes. + +```csharp +// Step 4: Trigonometric functions directly in Excel cells +sheet["C1"].Formula = "COT(PI()/4)"; // evaluates to 1 +sheet["D1"].Formula = "COTH(1)"; // hyperbolic cotangent of 1 +``` + +*Por qué es importante:* Demuestra que puedes combinar funciones matemáticas clásicas con las nuevas fórmulas de matriz dinámica. No es necesario calcular estos valores en C# a menos que tengas una razón de rendimiento específica. + +### Paso 5 – Calcular Todas las Fórmulas + +Aspose.Cells no evalúa automáticamente las fórmulas cuando las asignas. Debes indicarle que calcule. + +```csharp +// Step 5: Force calculation so that cells store the results +workbook.CalculateFormula(); +``` + +*Por qué es importante:* Después de esta llamada, la propiedad `Value` de cada celda contiene el resultado evaluado, listo para guardarse o leerse nuevamente. + +### Paso 6 – Guardar el Libro como Xlsx + +Finalmente, persistimos el libro en disco usando el patrón **save workbook as xlsx**. + +```csharp +// Step 6: Save the workbook to an Excel file (XLSX format) +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + +workbook.Save(outputPath); +Console.WriteLine($"Workbook saved to: {outputPath}"); +``` + +*Por qué es importante:* El método `Save` detecta automáticamente la extensión del archivo. Al usar “.xlsx” garantizamos que el archivo sea compatible con las versiones modernas de Excel. La ruta apunta al escritorio para un acceso fácil durante las pruebas. + +### Ejemplo Completo Funcional + +A continuación tienes el programa completo que puedes pegar en un nuevo proyecto de consola. Incluye todos los pasos anteriores, más un pequeño bloque de verificación que imprime los valores calculados en la consola. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialize workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + + // SEQUENCE + EXPAND + sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; + + // REDUCE with LAMBDA + sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; + + // Trig functions + sheet["C1"].Formula = "COT(PI()/4)"; + sheet["D1"].Formula = "COTH(1)"; + + // Calculate formulas + workbook.CalculateFormula(); + + // Verify results (optional) + Console.WriteLine("A1‑A5 (expanded SEQUENCE):"); + for (int i = 0; i < 5; i++) + { + Console.WriteLine($" Row {i + 1}: {sheet.Cells[i, 0].Value ?? "blank"}"); + } + Console.WriteLine($"B1 (sum 1‑5): {sheet["B1"].Value}"); + Console.WriteLine($"C1 (cot(π/4)): {sheet["C1"].Value}"); + Console.WriteLine($"D1 (coth(1)): {sheet["D1"].Value}"); + + // Save workbook + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + workbook.Save(outputPath); + Console.WriteLine($"Workbook saved to: {outputPath}"); + } +} +``` + +**Salida esperada en la consola** + +``` +A1‑A5 (expanded SEQUENCE): + Row 1: 1 + Row 2: 2 + Row 3: 3 + Row 4: blank + Row 5: blank +B1 (sum 1‑5): 15 +C1 (cot(π/4)): 1 +D1 (coth(1)): 1.31303528549933 +Workbook saved to: C:\Users\YourName\Desktop\NewFunctions.xlsx +``` + +Y cuando abras *NewFunctions.xlsx* verás los mismos números distribuidos en las primeras cuatro columnas. + +![captura de pantalla de crear libro de Excel c# del libro de cálculo resultante](/images/create-excel-workbook-csharp.png) + +## Casos límite, Consejos y Preguntas Frecuentes + +- **¿Qué pasa si necesito más de una hoja?** + Simplemente llama a `workbook.Worksheets.Add()` y repite la asignación de fórmulas en cada nuevo objeto `Worksheet`. + +- **¿Puedo usar versiones antiguas de Excel?** + Las funciones de matriz dinámica (`SEQUENCE`, `EXPAND`, `REDUCE`) requieren Excel 365 o Excel 2021+. Si apuntas a versiones anteriores, utiliza fórmulas clásicas o calcula los valores en C# antes de escribirlos. + +- **¿Preocupaciones de rendimiento?** + Para miles de filas, establecer fórmulas en un rango y luego llamar a `CalculateFormula` suele ser más rápido que iterar y asignar valores uno por uno. + +- **¿Guardar en un stream en lugar de un archivo?** + `work + +{{< /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/spanish/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md b/cells/spanish/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md new file mode 100644 index 0000000000..ff6a1fc179 --- /dev/null +++ b/cells/spanish/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md @@ -0,0 +1,212 @@ +--- +category: general +date: 2026-03-30 +description: Aprende cómo usar WRAPCOLS en C# para crear un libro de Excel, agregar + datos a Excel y forzar el cálculo de fórmulas mientras también utilizas WRAPROWS. +draft: false +keywords: +- how to use wrapcols +- create excel workbook c# +- add data to excel +- force formula calculation +- how to use wraprows +language: es +og_description: Descubre cómo usar WRAPCOLS en C# para crear un libro de Excel, agregar + datos, forzar el cálculo de fórmulas y aprovechar WRAPROWS para fórmulas de matriz. +og_title: Cómo usar WRAPCOLS en C# – Guía completa +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Cómo usar WRAPCOLS en C# – Crear libro de Excel con funciones de ajuste +url: /es/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cómo usar WRAPCOLS en C# – Crear libro de Excel con funciones de envoltura + +¿Alguna vez te has preguntado **cómo usar WRAPCOLS** cuando automatizas Excel con C#? No estás solo—muchos desarrolladores se quedan atascados cuando necesitan convertir un rango horizontal en una matriz vertical sin escribir mucho código. La buena noticia es que Aspose.Cells lo hace muy sencillo. + +En este tutorial recorreremos un ejemplo completo y ejecutable que muestra **cómo usar WRAPCOLS**, cómo **crear un libro de Excel en C#**, cómo **agregar datos a Excel**, e incluso cómo **forzar el cálculo de fórmulas** para que los resultados aparezcan al instante. También incluiremos **cómo usar WRAPROWS** para la transformación inversa. Al final tendrás un programa listo para ejecutar y una comprensión clara de por qué cada paso es importante. + +--- + +![Ejemplo de uso de WRAPCOLS en C#](alt="Captura de pantalla que muestra el libro de Excel después de usar WRAPCOLS en C#") + +## Qué cubre esta guía + +* Configurar un libro nuevo con Aspose.Cells. +* Poblar celdas programáticamente (**agregar datos a Excel**). +* Aplicar la función `WRAPCOLS` para convertir una fila en una columna. +* Usar `WRAPROWS` para volver una columna a una fila (**cómo usar wraprows**). +* Forzar al motor a evaluar fórmulas de inmediato (**force formula calculation**). +* Guardar el archivo y comprobar el resultado. + +No se requiere documentación externa—todo lo que necesitas está aquí. + +--- + +## Cómo usar WRAPCOLS en C# – Implementación paso a paso + +A continuación se muestra el archivo fuente completo. Siéntete libre de copiar‑pegarlo en un nuevo proyecto de consola, agregar el paquete NuGet Aspose.Cells y pulsar **F5**. + +```csharp +// ------------------------------------------------------------ +// How to Use WRAPCOLS in C# – Complete Example +// ------------------------------------------------------------ +using System; +using Aspose.Cells; + +namespace WrapFunctionsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a fresh workbook (this is how we **create excel workbook c#** style) + Workbook workbook = new Workbook(); + + // 2️⃣ Grab the first worksheet – it's created by default + Worksheet sheet = workbook.Worksheets[0]; + + // 3️⃣ **Add data to Excel**: place two numbers side‑by‑side + sheet.Cells["A1"].PutValue(1); // first value + sheet.Cells["B1"].PutValue(2); // second value + + // 4️⃣ **How to use WRAPCOLS** – turn the horizontal range A1:B1 into a vertical array + // The second argument (1) tells WRAPCOLS to create 1 column per element. + sheet["C1"].Formula = "WRAPCOLS(A1:B1, 1)"; + + // 5️⃣ **How to use WRAPROWS** – the opposite; turn the same range into a horizontal array + // Here we ask for 2 rows per element, which produces a single row with both values. + sheet["C2"].Formula = "WRAPROWS(A1:B1, 2)"; + + // 6️⃣ **Force formula calculation** so the workbook reflects the results immediately + workbook.CalculateFormula(); + + // 7️⃣ Save the workbook to disk – change the path to a folder you own + string outputPath = @"WrapFunctions.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + Console.WriteLine("Check cells C1 and C2 for the WRAPCOLS / WRAPROWS results."); + } + } +} +``` + +### Por qué cada línea es importante + +| Paso | Explicación | +|------|-------------| +| **1️⃣ Crear un libro nuevo** | Esta es la base. Aspose.Cells trata a un objeto `Workbook` como todo el archivo de Excel, por lo que efectivamente **creas un libro de Excel en C#**. | +| **2️⃣ Obtener la primera hoja** | Un libro nuevo siempre contiene al menos una hoja (`Worksheets[0]`). Acceder a ella temprano evita sorpresas de referencias nulas. | +| **3️⃣ Agregar datos a Excel** | Usando `PutValue` **agregamos datos a Excel** sin preocuparnos por el formato de la celda. Los números `1` y `2` son nuestros datos de prueba para las funciones de envoltura. | +| **4️⃣ Cómo usar WRAPCOLS** | `WRAPCOLS(A1:B1, 1)` indica a Excel que tome el rango `A1:B1` y derrame sus valores verticalmente, uno por fila. El resultado se coloca en `C1` y se extiende hacia abajo (`C1`, `C2`, …). | +| **5️⃣ Cómo usar WRAPROWS** | `WRAPROWS(A1:B1, 2)` hace lo contrario: crea un derrame horizontal, ajustando los dos valores en una sola fila que comienza en `C2`. | +| **6️⃣ Forzar cálculo de fórmulas** | Por defecto, Aspose.Cells puede posponer el cálculo hasta que el archivo se abra en Excel. Llamar a `CalculateFormula()` **force formula calculation** para que puedas leer los resultados inmediatamente después de guardar. | +| **7️⃣ Guardar el libro** | El paso final escribe todo en disco. Abre el `WrapFunctions.xlsx` resultante para ver el resultado. | + +--- + +## Crear libro de Excel en C# – Configuración del entorno + +Antes de ejecutar el código, asegúrate de tener las herramientas correctas: + +1. **.NET 6.0+** – La última versión LTS funciona mejor. +2. **Visual Studio 2022** (o VS Code con la extensión C#). +3. **Aspose.Cells para .NET** – Instálalo vía NuGet: + ```bash + dotnet add package Aspose.Cells + ``` +4. Una carpeta con permisos de escritura para el archivo de salida. + +Estos requisitos son mínimos; no se necesita interop COM ni instalación de Office, por lo que Aspose.Cells es una opción popular para la generación de Excel del lado del servidor. + +--- + +## Agregar datos a Excel – Mejores prácticas + +Cuando **agregas datos a Excel** programáticamente, considera estos consejos: + +* **Usa `PutValue`** para números o cadenas sin formato; detecta automáticamente el tipo de dato. +* **Evita codificar direcciones de celda** de forma rígida en proyectos grandes—utiliza bucles o rangos con nombre para escalar. +* **Aplica estilos de celda con moderación**; cada cambio de estilo genera sobrecarga. Si necesitas formato, crea un solo objeto de estilo y aplícalo a varias celdas. + +En nuestro pequeño ejemplo solo insertamos dos números, pero el mismo patrón escala a miles de filas. + +--- + +## Cómo usar WRAPROWS – Ejemplo de matriz horizontal + +Si necesitas lo opuesto a `WRAPCOLS`, `WRAPROWS` es tu solución. La sintaxis es: + +``` +WRAPROWS(source_range, [rows_per_item]) +``` + +* `source_range` – el rango que deseas transformar. +* `rows_per_item` – opcional; indica a Excel cuántas filas ocupa cada elemento. En nuestra demo usamos `2` para forzar que ambos valores queden en una sola fila. + +Puedes experimentar cambiando el segundo argumento: + +```csharp +// Example: split each value into its own column, three rows per item +sheet["D1"].Formula = "WRAPROWS(A1:B1, 3)"; +``` + +Abre el libro y verás los valores derramarse a través de tres columnas, cada columna conteniendo los números originales repetidos según sea necesario. + +--- + +## Forzar cálculo de fórmulas – Cuándo y por qué + +Quizás te preguntes, “¿Realmente necesito llamar a `CalculateFormula()`?” La respuesta es **sí**, si: + +* Planeas leer los valores calculados **programáticamente** después de guardar. +* Quieres garantizar que el archivo se abra en Excel con los resultados correctos ya mostrados. +* Estás ejecutando en un **entorno sin cabeza** (por ejemplo, una API web) donde ningún usuario disparará manualmente una recalculación. + +Omitir este paso no romperá el libro, pero las celdas mostrarán el texto de la fórmula (`=WRAPCOLS(...)`) en lugar de los valores calculados hasta que Excel vuelva a calcular. + +--- + +## Resultado esperado – Qué observar + +Después de ejecutar el programa y abrir `WrapFunctions.xlsx`: + +| Celda | Fórmula | Valor mostrado | +|------|---------|-----------------| +| **C1** | `=WRAPCOLS(A1:B1, 1)` | `1` (en C1) y `2` (en C2) – una lista vertical | +| **C2** | `=WRAPROWS(A1:B1, 2)` | `1` en C2 y `2` en D2 – una lista horizontal | + +Así verás una columna de valores que comienza en **C1** y una fila de valores que comienza en **C2**. Esto confirma que ambas funciones de envoltura se comportaron como se esperaba. + +--- + +## Casos límite y variaciones + +| Escenario | Qué cambia? | Ajuste sugerido | +|----------|-------------|-----------------| +| **Rango grande (A1:Z1)** | Más valores para derramar verticalmente | Incrementa el segundo argumento de `WRAPCOLS` si deseas varias columnas por grupo. | +| **Datos no numéricos** | Las cadenas se manejan igual | No se necesita cambiar código; `PutValue` acepta cualquier objeto. | +| **Rango dinámico** | No conoces el tamaño en tiempo de compilación | Usa `sheet.Cells.MaxDataColumn` y `MaxDataRow` para construir la cadena de dirección. | +| **Múltiples hojas** | Necesitas aplicar funciones de envoltura en hojas distintas | Referencia la hoja correcta (`workbook.Worksheets["Sheet2"]`). | + +Al anticipar estas variaciones, puedes adaptar el patrón central a casi cualquier escenario de automatización. + +--- + +## Consejos de experto desde el terreno + +* **Pro tip:** Envuelve la creación del libro en un bloque `using` si apuntas a .NET Core 3.1+ para asegurar que todos los recursos se liberen rápidamente. +* **Cuidado con:** Establecer la misma fórmula en un rango grande sin llamar a `CalculateFormula()` puede generar cuellos de botella de rendimiento. Procesa fórmulas por lotes cuando sea posible. +* **Tip:** Si necesitas leer de nuevo los valores calculados en código, llama a ` + +{{< /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/spanish/net/tables-and-lists/_index.md b/cells/spanish/net/tables-and-lists/_index.md index f644251397..a59ee08a84 100644 --- a/cells/spanish/net/tables-and-lists/_index.md +++ b/cells/spanish/net/tables-and-lists/_index.md @@ -51,6 +51,8 @@ Convierte fácilmente tablas en rangos en Excel con Aspose.Cells para .NET y gu Descubra el poder de Aspose.Cells para .NET. Aprenda a leer y escribir tablas con fuentes de datos de consulta con esta guía detallada paso a paso. ### [Establecer comentario de tabla o lista en Excel](./setting-comment-of-table-or-list/) Aprenda a configurar comentarios para tablas en Excel usando Aspose.Cells para .NET con nuestra sencilla guía paso a paso. +### [Crear tabla a partir de un rango en C# – Tutorial completo de Aspose.Cells](./create-table-from-range-in-c-complete-aspose-cells-tutorial/) +Aprenda a crear una tabla a partir de un rango en C# usando Aspose.Cells con este tutorial paso a paso. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/spanish/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md b/cells/spanish/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md new file mode 100644 index 0000000000..4d4ce6b457 --- /dev/null +++ b/cells/spanish/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md @@ -0,0 +1,231 @@ +--- +category: general +date: 2026-03-30 +description: Crear tabla a partir de un rango en C# con Aspose.Cells – agregar datos + a las celdas, convertir el rango a ListObject y guardar Excel sin filtro. +draft: false +keywords: +- create table from range +- create excel workbook c# +- add data to cells +- convert range to listobject +- save excel without filter +language: es +og_description: Crear tabla a partir de un rango en C# con Aspose.Cells. Aprende cómo + agregar datos a celdas, convertir un rango en un ListObject y guardar Excel sin + filtro. +og_title: Crear tabla a partir de un rango en C# – Tutorial completo de Aspose.Cells +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Crear tabla a partir de un rango en C# – Tutorial completo de Aspose.Cells +url: /es/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crear tabla a partir de un rango en C# – Tutorial completo de Aspose.Cells + +¿Alguna vez necesitaste **create table from range** en C# pero no estabas seguro de cómo convertir un bloque de datos simple en una tabla de Excel totalmente funcional? No eres el único. Ya sea que estés automatizando informes, generando tarjetas de puntuación o simplemente limpiando datos para análisis posteriores, dominar este pequeño truco puede ahorrarte mucho trabajo manual. + +En esta guía recorreremos todo el proceso: **create excel workbook c#**, **add data to cells**, **convert range to ListObject**, y finalmente **save excel without filter**. Al final tendrás un fragmento listo para ejecutar que puedes insertar en cualquier proyecto .NET que haga referencia a Aspose.Cells. + +--- + +## Prerequisitos + +- .NET 6+ (o .NET Framework 4.7.2+) instalado +- Aspose.Cells para .NET (paquete NuGet `Aspose.Cells`) – la última versión al momento de escribir (23.10) funciona perfectamente. +- Un conocimiento básico de la sintaxis de C# – no se requiere un conocimiento profundo de interop de Excel. + +Si tienes eso, comencemos. + +--- + +## Paso 1: Crear un libro de Excel en C# + +Primero necesitamos un objeto workbook nuevo. Piensa en esto como el archivo de Excel vacío que eventualmente contendrá nuestra tabla. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is equivalent to opening a blank .xlsx file. +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (default) worksheet. +``` + +> **Consejo profesional:** `Workbook()` sin argumentos crea un libro con una hoja de cálculo predeterminada, lo cual es perfecto para demostraciones rápidas. Si necesitas varias hojas, puedes agregarlas más tarde con `workbook.Worksheets.Add()`. + +--- + +## Paso 2: Añadir datos a celdas + +Ahora rellenaremos la hoja con un pequeño conjunto de datos – dos columnas (Name, Score) y tres filas de valores. Esto demuestra **add data to cells** de forma limpia y legible. + +```csharp +// Header row +worksheet.Cells["A1"].PutValue("Name"); +worksheet.Cells["B1"].PutValue("Score"); + +// Data rows +worksheet.Cells["A2"].PutValue("Alice"); +worksheet.Cells["B2"].PutValue(85); +worksheet.Cells["A3"].PutValue("Bob"); +worksheet.Cells["B3"].PutValue(92); +``` + +¿Por qué usar `PutValue`? Detecta automáticamente el tipo de dato (cadena vs. numérico) y formatea la celda en consecuencia, ahorrándote de manipular objetos `Style` en escenarios simples. + +> **Salida esperada:** Después de este paso, si abres el libro en Excel verás una cuadrícula de dos columnas con los encabezados “Name” y “Score”, seguida de dos filas de datos. + +--- + +## Paso 3: Convertir el rango en un ListObject (Tabla) + +Aquí es donde ocurre la magia: convertir ese rango simple en una tabla de Excel (llamada **ListObject** en la API de Aspose.Cells). Esto no solo añade estilo visual sino que también habilita funciones integradas como ordenación, filtrado y referencias estructuradas. + +```csharp +// Define the range boundaries. +// startRow and startColumn are zero‑based indexes. +// rowCount includes the header row. +int startRow = 0; // Row 1 in Excel +int startColumn = 0; // Column A +int rowCount = 3; // Header + 2 data rows +int columnCount = 2; // Two columns: Name & Score + +// Add a ListObject to the worksheet and retrieve the object. +int listIndex = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); +ListObject table = worksheet.ListObjects[listIndex]; + +// Turn on the UI filter dropdowns so users can interact with the table. +table.ShowAutoFilter = true; +``` + +> **¿Por qué usar un ListObject?** +> - **Referencias estructuradas**: Las fórmulas pueden referirse a columnas por nombre. +> - **Interfaz de auto‑filtro**: Los usuarios obtienen flechas desplegables para filtrar rápidamente. +> - **Estilizado**: Puedes aplicar estilos de tabla incorporados con una sola línea más adelante. + +--- + +## Paso 4: Eliminar la interfaz de AutoFilter (Guardar Excel sin filtro) + +A veces necesitas una hoja limpia sin flechas de filtro – por ejemplo, cuando el libro es un informe final. Aspose.Cells 23.10 introdujo una forma sencilla de eliminar completamente la interfaz de filtro. + +```csharp +// Remove the filter UI completely. +table.AutoFilter = null; // Clears the underlying filter object. +table.ShowAutoFilter = false; // Hides the dropdown arrows. +``` + +Observa que no estamos eliminando los datos; solo desactivamos los controles visuales de filtro. Esto cumple con el requisito de **save excel without filter**. + +--- + +## Paso 5: Guardar el libro + +Finalmente, escribe el libro en disco. El archivo contendrá la tabla pero sin ninguna interfaz de filtro. + +```csharp +// Choose a folder you have write access to. +string outputPath = @"C:\Temp\NoAutoFilter.xlsx"; +workbook.Save(outputPath); +``` + +Abre `NoAutoFilter.xlsx` en Excel – verás la tabla con el formato predeterminado, pero sin flechas de filtro. Los datos están intactos y el archivo está listo para distribución. + +--- + +![Screenshot showing create table from range in Excel using Aspose.Cells](image.png "Create table from range screenshot") + +*Texto alternativo de la imagen:* **Screenshot showing create table from range in Excel using Aspose.Cells** – prueba visual de que la tabla existe sin menús desplegables de filtro. + +--- + +## Ejemplo completo y ejecutable + +A continuación se muestra el programa completo que puedes copiar y pegar en una aplicación de consola. Incluye todos los pasos anteriores, más un par de comentarios extra para mayor claridad. + +```csharp +using System; +using Aspose.Cells; + +namespace AsposeTableDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add data to cells – this is the “add data to cells” part. + worksheet.Cells["A1"].PutValue("Name"); + worksheet.Cells["B1"].PutValue("Score"); + worksheet.Cells["A2"].PutValue("Alice"); + worksheet.Cells["B2"].PutValue(85); + worksheet.Cells["A3"].PutValue("Bob"); + worksheet.Cells["B3"].PutValue(92); + + // 3️⃣ Convert the range into a ListObject (i.e., create table from range). + int startRow = 0, startColumn = 0, rowCount = 3, columnCount = 2; + int listIdx = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); + ListObject table = worksheet.ListObjects[listIdx]; + table.ShowAutoFilter = true; // optional UI filter + + // 4️⃣ Remove the AutoFilter UI – “save excel without filter”. + table.AutoFilter = null; + table.ShowAutoFilter = false; + + // 5️⃣ Save the workbook. + string filePath = @"C:\Temp\NoAutoFilter.xlsx"; + workbook.Save(filePath); + + Console.WriteLine($"Workbook saved to {filePath}"); + } + } +} +``` + +Ejecuta el programa, luego abre `C:\Temp\NoAutoFilter.xlsx`. Verás una tabla bien formateada, sin flechas de filtro, y los datos que ingresamos. Ese es todo el flujo de trabajo de **create excel workbook c#** en menos de 60 líneas de código. + +--- + +## Preguntas frecuentes y casos límite + +**P: ¿Qué pasa si mi rango de datos no es contiguo?** +R: Aspose.Cells requiere un rango rectangular para `ListObjects.Add`. Si tienes datos no contiguos, crea primero un rango temporal (p. ej., copia los fragmentos en una nueva hoja) y luego convierte ese rango. + +**P: ¿Puedo aplicar un estilo de tabla personalizado?** +R: Por supuesto. Después de crear el `ListObject`, establece `table.TableStyleType = TableStyleType.TableStyleMedium9;` (o cualquiera de los 65 estilos incorporados). Esta es una buena forma de que la tabla coincida con la identidad corporativa. + +**P: ¿Cómo mantengo el filtro pero oculto las flechas?** +R: La lógica del filtro está en `table.AutoFilter`. Configurar `ShowAutoFilter = false` solo oculta la interfaz; el filtro subyacente permanece. Así puedes seguir filtrando filas programáticamente más adelante. + +**P: ¿Qué pasa con conjuntos de datos grandes (¡10 k+ filas)?** +R: La misma API funciona, pero considera desactivar los cálculos automáticos (`workbook.CalcEngine = false`) antes de inserciones masivas para mejorar el rendimiento, y habilítalos después. + +--- + +## Conclusión + +Acabamos de cubrir cómo **create table from range** en C# usando Aspose.Cells, paso a paso—from **create excel workbook c#**, through **add data to cells**, to **convert range to ListObject**, and finally **save excel without filter**. El código está completo, ejecutable y listo para producción. + +A continuación, podrías explorar: + +- Agregar formato condicional para resaltar los puntajes más altos. +- Exportar el libro a PDF con `workbook.Save("Report.pdf", SaveFormat.Pdf);`. +- Usar `table.Columns["Score"].DataBodyRange.Sort` para ordenar la tabla programáticamente. + +Siéntete libre de experimentar con diferentes conjuntos de datos, estilos de tabla o incluso múltiples hojas de cálculo. La API es lo suficientemente flexible como para manejar desde una pequeña tabla de puntuaciones hasta un enorme libro contable. + +¿Tienes preguntas o encuentras algún problema? Deja un comentario abajo o envíame un mensaje en GitHub. ¡Feliz codificación y disfruta convirtiendo rangos sin procesar en tablas de Excel pulidas! + +{{< /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/swedish/net/conversion-to-pdf/_index.md b/cells/swedish/net/conversion-to-pdf/_index.md index cb6d748835..3d8a501e3e 100644 --- a/cells/swedish/net/conversion-to-pdf/_index.md +++ b/cells/swedish/net/conversion-to-pdf/_index.md @@ -34,6 +34,8 @@ Men vänta, det finns mer! Tänk om du vill konvertera diagram från dina Excel- Konvertera Excel-kalkylblad till PDF enkelt med Aspose.Cells för .NET! Följ vår steg-för-steg-guide för en smidig upplevelse. ### [Konvertera diagram till PDF i .NET](./convert-chart-to-pdf/) Lär dig hur du konverterar Excel-diagram till PDF i .NET med hjälp av Aspose.Cells med den här steg-för-steg-guiden! Perfekt för programmerare på alla nivåer. +### [Spara arbetsbok som PDF med Aspose.Cells – Komplett steg‑för‑steg‑guide](./save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/) +Lär dig hur du sparar en arbetsbok som PDF med Aspose.Cells i en komplett steg‑för‑steg‑guide. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/swedish/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md b/cells/swedish/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md new file mode 100644 index 0000000000..6ca5544ba2 --- /dev/null +++ b/cells/swedish/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md @@ -0,0 +1,248 @@ +--- +category: general +date: 2026-03-30 +description: Lär dig hur du sparar arbetsbok som PDF med Aspose.Cells. Den här handledningen + täcker också export av kalkylblad till PDF, hur du exporterar Excel till PDF och + skapar PDF från kalkylblad. +draft: false +keywords: +- save workbook as pdf +- export worksheet to pdf +- how to export excel to pdf +- save excel as pdf +- create pdf from worksheet +language: sv +og_description: Spara arbetsbok som PDF enkelt. Den här guiden visar hur du exporterar + ett kalkylblad till PDF, hur du exporterar Excel till PDF och hur du skapar PDF + från ett kalkylblad med C#. +og_title: Spara arbetsbok som PDF med Aspose.Cells – Komplett guide +tags: +- Aspose.Cells +- C# +- PDF generation +title: Spara arbetsbok som PDF med Aspose.Cells – Komplett steg‑för‑steg‑guide +url: /sv/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Spara arbetsbok som pdf – Komplett steg‑för‑steg‑guide + +Har du någonsin behövt **save workbook as pdf** men varit osäker på vilket bibliotek som behåller dina siffror intakta? Du är inte ensam. I många projekt måste vi omvandla Excel‑data till en polerad PDF, och att göra det på rätt sätt sparar timmar av felsökning. + +I den här handledningen går vi igenom exakt den kod du behöver för att **save workbook as pdf** med Aspose.Cells, och på vägen visar vi också hur du **export worksheet to pdf**, svarar på frågor om *how to export excel to pdf* och demonstrerar ett rent sätt att **create pdf from worksheet** med anpassade precisionsinställningar. + +När du är klar med guiden har du en färdig‑att‑köra C#‑konsolapp som producerar en PDF som bara innehåller de signifikanta siffror du bryr dig om. Ingen extra fluff, bara en solid, produktionsklar lösning. + +--- + +## Vad du kommer att lära dig + +- Hur du sätter upp en ny `Workbook` och riktar in dig på dess första arbetsblad. +- Den exakta metoden för att **save workbook as pdf** samtidigt som du bevarar numerisk precision. +- Varför egenskapen `SignificantDigits` är viktig när du **export worksheet to pdf**. +- Vanliga fallgropar när du försöker **how to export excel to pdf** och hur du undviker dem. +- Snabba sätt att **save excel as pdf** med olika sidalternativ, och hur du **create pdf from worksheet** programatiskt. + +### Förutsättningar + +- .NET 6.0 eller senare (koden fungerar även med .NET Framework 4.5+). +- En giltig Aspose.Cells‑licens (eller en gratis tillfällig licens för testning). +- Visual Studio 2022 eller någon C#‑kompatibel IDE. + +Om du har dessa grunder på plats, låt oss dyka in. + +--- + +## Steg 1 – Installera Aspose.Cells och initiera arbetsboken + +Först och främst: du behöver Aspose.Cells NuGet‑paketet. Öppna en terminal i din projektmapp och kör: + +```bash +dotnet add package Aspose.Cells +``` + +När paketet är installerat, skapa ett nytt `Workbook`‑objekt. Detta är objektet du så småningom kommer att **save workbook as pdf**. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialise a fresh workbook – think of it as a blank Excel file. + Workbook workbook = new Workbook(); + + // Grab the first worksheet (index 0). This is where we’ll put our data. + Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Varför detta steg?* +Skapandet av arbetsboken ger dig en ren canvas, och att välja det första arbetsbladet säkerställer att du arbetar med en känd plats. Att hoppa över detta kan leda till *null reference*-fel när du senare försöker **export worksheet to pdf**. + +--- + +## Steg 2 – Infoga högprecisiondata + +Nu lägger vi in ett tal som har fler decimaler än vi faktiskt vill visa i PDF‑filen. Detta demonstrerar hur `SignificantDigits`‑inställningen trimmar utskriften. + +```csharp + // Place a high‑precision number in cell A1. + worksheet.Cells["A1"].PutValue(1234.56789); +``` + +Om du kör programmet nu och helt enkelt anropar `workbook.Save("output.pdf")`, kommer PDF‑filen att visa hela `1234.56789`. Det är okej i vissa fall, men ofta behöver du avrunda till ett specifikt antal signifikanta siffror — särskilt för finansiella rapporter. + +--- + +## Steg 3 – Konfigurera PDF‑spara‑alternativ + +Aspose.Cells ger dig fin‑granulerad kontroll via `PdfSaveOptions`. Egenskapen vi bryr oss om är `SignificantDigits`. Att sätta den till `4` talar om för motorn att behålla endast fyra signifikanta siffror när den **save workbook as pdf**. + +```csharp + // Configure PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 // This trims the number to 1235 in the PDF. + }; +``` + +*Varför använda `SignificantDigits`?* +När du **create pdf from worksheet**, måste du ofta följa regulatoriska avrundningsregler. Detta alternativ gör avrundningen åt dig, så att du inte behöver formatera varje cell manuellt. + +--- + +## Steg 4 – Exportera arbetsblad till PDF med alternativen + +Här är sanningsögonblicket: vi **save workbook as pdf** faktiskt med de alternativ vi just definierade. + +```csharp + // Save the workbook as a PDF using the configured options. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + } +} +``` + +När du kör programmet genereras en fil som heter `SignificantDigits.pdf` i ditt projekts output‑mapp. Öppna den så ser du `1235` i cell A1 – talet har avrundats till fyra signifikanta siffror. + +*Viktigt:* `Save`‑metoden tar både filvägen och `PdfSaveOptions`. Om du utelämnar alternativen återgår du till standardbeteendet, vilket kanske inte uppfyller dina precisionskrav. + +--- + +## Steg 5 – Verifiera resultatet och felsök vanliga problem + +### Förväntat resultat + +- En en‑sidig PDF med namn `SignificantDigits.pdf`. +- Cell A1 visar `1235` (fyra signifikanta siffror). +- Inga extra arbetsblad eller dolt innehåll visas. + +### Vanliga frågor + +| Question | Answer | +|----------|--------| +| **Vad händer om jag behöver mer än ett arbetsblad?** | Loopa igenom `workbook.Worksheets` och applicera samma `PdfSaveOptions` när du sparar varje blad individuellt, eller sätt `OnePagePerSheet = true` i alternativen. | +| **Kan jag behålla det ursprungliga talformatet?** | Ja – sätt `PdfSaveOptions.AllColumnsInOnePage = true` och låt Excels formateringsregler hantera det, men kom ihåg att `SignificantDigits` fortfarande kommer att åsidosätta den numeriska precisionen. | +| **Fungerar detta med .xlsx‑filer som redan finns?** | Absolut. Ersätt `new Workbook()` med `new Workbook("input.xlsx")` så förblir resten av koden densamma. | +| **Vad händer om PDF‑filen är tom?** | Verifiera att arbetsboken faktiskt innehåller data och att du sparar till en skrivbar katalog. Se också till att Aspose.Cells‑licensen är korrekt tillämpad; en olicensierad provversion kan begränsa utskriften. | + +### Proffstips + +Om du behöver **save excel as pdf** med en specifik sidorientering, sätt `pdfSaveOptions.PageSetup.Orientation = PageOrientation.Landscape;` innan du anropar `Save`. Denna lilla justering sparar dig ofta från att manuellt justera PDF‑filen senare. + +--- + +## Variationer: Exportera flera blad eller anpassade sidinställningar + +### Exportera alla blad i ett anrop + +```csharp +PdfSaveOptions allSheetsOptions = new PdfSaveOptions +{ + SignificantDigits = 4, + OnePagePerSheet = true // Each worksheet gets its own page. +}; + +workbook.Save("AllSheets.pdf", allSheetsOptions); +``` + +### Exportera ett enskilt blad som PDF + +Om du bara vill **export worksheet to pdf** för ett specifikt blad, använd `Worksheet`‑objektets `ToPdf`‑metod: + +```csharp +Worksheet sheet = workbook.Worksheets["Sheet2"]; +sheet.ToPdf("Sheet2.pdf", pdfSaveOptions); +``` + +### Justera sidmarginaler + +```csharp +pdfSaveOptions.PageSetup.TopMargin = 20; +pdfSaveOptions.PageSetup.BottomMargin = 20; +``` + +Dessa justeringar låter dig fin‑justera det slutgiltiga dokumentet utan efterbearbetning. + +--- + +## Fullt fungerande exempel + +Nedan är det kompletta, kopiera‑och‑klistra‑klara programmet som innehåller allt vi har diskuterat. Spara det som `Program.cs` och kör `dotnet run`. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and select the first worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Insert a high‑precision number. + worksheet.Cells["A1"].PutValue(1234.56789); + + // 3️⃣ Set PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 + }; + + // 4️⃣ Save the workbook as PDF. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + + // Optional: Export another sheet with custom settings. + // Worksheet sheet2 = workbook.Worksheets.Add("Report"); + // sheet2.Cells["B2"].PutValue(9876.54321); + // sheet2.ToPdf("Report.pdf", pdfSaveOptions); + } +} +``` + +**Resultat:** Öppna `SignificantDigits.pdf` – du kommer att se det avrundade värdet `1235`. Filstorleken är måttlig och layouten matchar det ursprungliga Excel‑bladet. + +--- + +## Slutsats + +Vi har just visat dig hur du **save workbook as pdf** med Aspose.Cells, och täckt allt från grundläggande installation till avancerade alternativ som **export worksheet to pdf**, **how to export excel to pdf** och **create pdf from worksheet** med exakt numerisk kontroll. + +Metoden är enkel, kräver bara några få rader C#, och fungerar över .NET‑versioner. Nästa steg kan vara att utforska att lägga till sidhuvuden/sidfötter, bädda in bilder eller generera PDF‑filer från mallar — varje alternativ bygger på den grund du nu har. + +Har du en variant du vill prova? Kanske du behöver lösenordsskydda PDF‑filen eller slå ihop flera PDF‑filer. Det är naturliga utökningar, och Aspose.Cells‑API:et har dig täckt. Dyka ner, experimentera och låt biblioteket göra det tunga arbetet. + +*Lycklig kodning! Om du stöter på problem, lämna en kommentar nedan så felsöker vi tillsammans.* + +![spara arbetsbok som pdf skärmbild](/images/save-workbook-as-pdf.png){alt="exempel på spara arbetsbok som pdf som visar den genererade PDF-filen"} + +*Lycklig kodning! Om du stöter på problem, lämna en kommentar nedan så felsöker vi tillsammans.* + +{{< /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/swedish/net/converting-excel-files-to-other-formats/_index.md b/cells/swedish/net/converting-excel-files-to-other-formats/_index.md index 20c5cd31b2..9a4a0ffe72 100644 --- a/cells/swedish/net/converting-excel-files-to-other-formats/_index.md +++ b/cells/swedish/net/converting-excel-files-to-other-formats/_index.md @@ -56,6 +56,8 @@ Lär dig hur du konverterar Excel-filer till PDF/A-1a för arkivering med Aspose Lär dig hur du konverterar JSON till CSV programmatiskt i .NET med hjälp av Aspose.Cells. Följ vår steg-för-steg-guide för att säkerställa sömlös datatransformation. ### [Konvertera Excel-fil till PPTX programmatiskt i .NET](./converting-excel-file-to-pptx/) Lär dig hur du konverterar en Excel-fil till en PowerPoint-presentation (PPTX) programmatiskt med hjälp av Aspose.Cells för .NET med den här steg-för-steg-guiden. +### [Skapa PowerPoint från Excel – Steg‑för‑steg C#‑guide](./create-powerpoint-from-excel-step-by-step-c-guide/) +Lär dig hur du skapar en PowerPoint-presentation från en Excel-fil med Aspose.Cells för .NET i en steg‑för‑steg‑guide. ### [Ange HTML CrossType i utdata-HTML programmatiskt i .NET](./specifying-html-crosstype-in-output-html/) Lär dig hur du anger HTML CrossType i Aspose.Cells för .NET. Följ vår steg-för-steg-handledning för att konvertera Excel-filer till HTML med precision. ### [Läsa siffror programmatiskt i .NET](./reading-numbers-spreadsheet/) diff --git a/cells/swedish/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md b/cells/swedish/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md new file mode 100644 index 0000000000..7a9dad9c54 --- /dev/null +++ b/cells/swedish/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md @@ -0,0 +1,253 @@ +--- +category: general +date: 2026-03-30 +description: Skapa PowerPoint från Excel snabbt med Aspose.Cells och Aspose.Slides. + Lär dig hur du exporterar kalkylblad som bild och sparar presentationen som PPTX + i C#. +draft: false +keywords: +- create powerpoint from excel +- convert excel to powerpoint +- export worksheet as image +- save presentation as pptx +- export excel chart as picture +language: sv +og_description: Skapa PowerPoint från Excel i C# med Aspose. Exportera kalkylbladet + som bild, behåll former redigerbara och spara resultatet som PPTX. +og_title: Skapa PowerPoint från Excel – Komplett C#-handledning +tags: +- Aspose +- C# +- Office Automation +title: Skapa PowerPoint från Excel – Steg‑för‑steg C#‑guide +url: /sv/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Skapa PowerPoint från Excel – Komplett C#‑handledning + +Har du någonsin behövt **skapa PowerPoint från Excel** men inte varit säker på vilket bibliotek som kan hålla dina diagram redigerbara? Du är inte ensam. I många rapporteringsscenario vill du omvandla ett kalkylblad till en bildspel utan att förlora möjligheten att justera textrutor senare. Denna guide visar exakt hur du **konverterar Excel till PowerPoint** med Aspose.Cells och Aspose.Slides, samt hur du **exporterar arbetsblad som bild** och slutligen **sparar presentationen som PPTX**. + +Vi går igenom varje kodrad, förklarar *varför* varje inställning är viktig, och diskuterar även vad du ska göra om din arbetsbok innehåller komplexa diagram som du hellre exporterar som en bild. I slutet har du en färdig‑att‑köra C#‑konsolapp som tar `ShapesDemo.xlsx` och genererar `Result.pptx` – med redigerbara textrutor och skarpa bilder. + +## Vad du behöver + +- .NET 6.0 eller senare (API‑et fungerar även med .NET Framework, men .NET 6 är den optimala versionen). +- **Aspose.Cells** och **Aspose.Slides** NuGet‑paket (gratis provlicenser fungerar för testning). +- En grundläggande förståelse för C#‑syntax – om du kan skriva en `Console.WriteLine` är du redo att köra. + +Ingen extra COM‑interop, ingen Office‑installation på servern och ingen manuell kopiering‑och‑klistra av bilder. Allt hanteras programatiskt. + +--- + +## Skapa PowerPoint från Excel – Ladda arbetsbok och ställ in exportalternativ + +Det första vi gör är att öppna Excel‑filen och tala om för Aspose.Cells hur vi vill att bladet ska renderas. Objektet `ImageOrPrintOptions` är där magin sker: vi aktiverar `ExportShapes` och `ExportEditableTextBoxes` så att alla former (inklusive diagram) blir en del av sliden **och** förblir redigerbara efter konverteringen. + +```csharp +using Aspose.Cells; +using Aspose.Slides; + +// 1️⃣ Load the Excel workbook +string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; +Workbook workbook = new Workbook(excelPath); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first sheet + +// 2️⃣ Configure image export – keep shapes editable +ImageOrPrintOptions imageOptions = new ImageOrPrintOptions +{ + OnePagePerSheet = true, // Export the whole sheet as one slide + ExportShapes = true, // Include shapes (charts, drawings) + ExportEditableTextBoxes = true // Make text boxes editable in PPTX +}; +``` + +**Varför dessa flaggor?** +- `OnePagePerSheet` förhindrar att bladet delas upp på flera slides – du får en enda bild i full storlek. +- `ExportShapes` instruerar Aspose.Cells att rasterisera diagram *och* vektorformer, vilket bevarar deras utseende. +- `ExportEditableTextBoxes` är den hemliga ingrediensen som låter dig dubbelklicka på en textruta i PowerPoint och redigera texten utan att öppna Excel igen. + +> **Proffstips:** Om du bara behöver en statisk bild av ett diagram, sätt `ExportShapes = false` och använd metoden `ExportExcelChartAsPicture` senare (se sista avsnittet). + +--- + +## Konvertera Excel till PowerPoint – Generera bild från arbetsblad + +Med alternativen klara omvandlar vi nu arbetsbladet till en `System.Drawing.Image`. `WorksheetToImageConverter` gör det tunga lyftet och använder de inställningar vi just definierat. + +```csharp +// 3️⃣ Convert the worksheet to an image using the options above +WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); +System.Drawing.Image sheetImage = converter.ConvertToImage(0, imageOptions); +``` + +Argumentet `0` anger den första sidan (vi har bara en på grund av `OnePagePerSheet`). Den resulterande `sheetImage` behåller original‑DPI, så din slide blir inte pixelerad även på högupplösta skärmar. + +--- + +## Spara presentation som PPTX – Infoga bild i en slide + +Nu skapar vi en ny PowerPoint‑fil, lägger till en slide och placerar bitmap‑bilden på den. Aspose.Slides behandlar bilden som en *picture frame*-form, som du senare kan ändra storlek på eller flytta precis som vilken inbyggd PowerPoint‑objekt som helst. + +```csharp +// 4️⃣ Create a new PowerPoint presentation +Presentation presentation = new Presentation(); +ISlide slide = presentation.Slides[0]; // The default blank slide + +// Add the Excel‑derived image as a picture frame +slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, // Simple rectangle container + 0, 0, // Top‑left corner (0,0) + sheetImage.Width, // Width of the picture + sheetImage.Height, // Height of the picture + sheetImage); // The bitmap we generated +``` + +> **Vad händer om bilden är större än slide‑storleken?** +> PowerPoint klipper automatiskt allt som överskrider slide‑dimensionerna. En snabb lösning är att skala bilden innan du infogar den: + +```csharp +float scale = Math.Min(presentation.SlideSize.Size.Width / (float)sheetImage.Width, + presentation.SlideSize.Size.Height / (float)sheetImage.Height); +int newWidth = (int)(sheetImage.Width * scale); +int newHeight = (int)(sheetImage.Height * scale); +``` + +Du kan sedan skicka `newWidth` och `newHeight` till `AddPictureFrame`. + +--- + +## Exportera arbetsblad som bild – Spara PPTX‑filen + +Till sist sparar vi presentationen till disk. Flaggan `SaveFormat.Pptx` garanterar det moderna OpenXML‑formatet, som fungerar i alla aktuella versioner av PowerPoint. + +```csharp +// 5️⃣ Save the presentation as a PPTX file +string pptxPath = "YOUR_DIRECTORY/Result.pptx"; +presentation.Save(pptxPath, SaveFormat.Pptx); +``` + +När du öppnar `Result.pptx` ser du en enda slide som ser exakt ut som ditt Excel‑blad, men du kan fortfarande klicka på någon textruta och redigera innehållet direkt i PowerPoint. + +--- + +## Exportera Excel‑diagram som bild – När rasterbilder föredras + +Ibland behöver du inte redigerbara former; en högkvalitativ PNG av ett diagram räcker. Aspose.Cells kan exportera ett specifikt diagram till en bild utan att konvertera hela bladet: + +```csharp +// Example: Export the first chart on the sheet as a PNG +int chartIndex = 0; // Adjust if you have multiple charts +Chart chart = worksheet.Charts[chartIndex]; +ImageOrPrintOptions chartOptions = new ImageOrPrintOptions +{ + ImageFormat = ImageFormat.Png, + OnePagePerSheet = false +}; +chart.ToImage("chart.png", chartOptions); +``` + +Du kan sedan bädda in `chart.png` i en slide på samma sätt som vi lade till `sheetImage`. Detta minskar PPTX‑filens storlek och är användbart när den omgivande datan inte behövs på sliden. + +--- + +## Vanliga fallgropar & hur du undviker dem + +| Problem | Varför det händer | Lösning | +|---------|-------------------|---------| +| **Text blir suddig** | Exporterad med låg DPI (standard 96). | Sätt `imageOptions.Dpi = 300;` innan konvertering. | +| **Former försvinner** | `ExportShapes` var `false`. | Säkerställ `ExportShapes = true` när du behöver redigerbara grafik. | +| **Slide‑storlek matchar inte** | Bilden är större än slide‑dimensionerna. | Skala bilden (se kodsnutt) eller ändra slide‑storlek via `presentation.SlideSize`. | +| **Licensundantag** | Använder provversion utan korrekt aktivering. | Anropa `License license = new License(); license.SetLicense("Aspose.Total.lic");` tidigt i `Main`. | + +--- + +## Fullt fungerande exempel (Kopiera‑klistra‑klart) + +Nedan är hela programmet, redo att klistras in i ett nytt konsolprojekt. Byt ut `YOUR_DIRECTORY` mot mappen som innehåller din Excel‑fil. + +```csharp +using System; +using Aspose.Cells; +using Aspose.Slides; +using System.Drawing; + +namespace ExcelToPowerPointDemo +{ + class Program + { + static void Main(string[] args) + { + // ----------------------------------------------------------------- + // 1️⃣ Load the Excel workbook + // ----------------------------------------------------------------- + string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; + Workbook workbook = new Workbook(excelPath); + Worksheet worksheet = workbook.Worksheets[0]; + + // ----------------------------------------------------------------- + // 2️⃣ Set up export options – keep shapes editable + // ----------------------------------------------------------------- + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + OnePagePerSheet = true, + ExportShapes = true, + ExportEditableTextBoxes = true, + Dpi = 300 // High‑resolution output + }; + + // ----------------------------------------------------------------- + // 3️⃣ Convert worksheet to an image + // ----------------------------------------------------------------- + WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); + Image sheetImage = converter.ConvertToImage(0, imageOptions); + + // ----------------------------------------------------------------- + // 4️⃣ Create PowerPoint and add the image as a slide + // ----------------------------------------------------------------- + Presentation presentation = new Presentation(); + ISlide slide = presentation.Slides[0]; + slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, + 0, 0, + sheetImage.Width, + sheetImage.Height, + sheetImage); + + // ----------------------------------------------------------------- + // 5️⃣ Save the PPTX file + // ----------------------------------------------------------------- + string pptxPath = "YOUR_DIRECTORY/Result.pptx"; + presentation.Save(pptxPath, SaveFormat.Pptx); + + Console.WriteLine("✅ PowerPoint created successfully at: " + pptxPath); + } + } +} +``` + +**Förväntad utskrift:** +När programmet körs skrivs `✅ PowerPoint created successfully at: YOUR_DIRECTORY/Result.pptx`. När du öppnar PPTX‑filen visas en enda slide som speglar det ursprungliga Excel‑bladet, med redigerbara textrutor. + +--- + +## Sammanfattning & Nästa steg + +Du vet nu hur du **skapar PowerPoint från Excel** med Asposes kraftfulla API:er, hur du **exporterar arbetsblad som bild**, och hur du **sparar presentation som PPTX** samtidigt som du bevarar redigerbarhet. Samma mönster fungerar för arbetsböcker med flera blad – bara loopa igenom `workbook.Worksheets` och lägg till en ny slide för varje. + +**Vad kan du utforska härnäst?** + +- **Batchkonvertering:** Loopa över en mapp med Excel‑filer och generera ett bildspel per fil. +- **Dynamiska layouter:** Använd `slide.LayoutSlide` för att tillämpa fördesignade PowerPoint‑mallar. +- **Endast‑diagram‑export:** Kombinera kodsnutten “Export Excel chart as picture” med slide‑platshållare för ett slankare bildspel. +- **Avancerad styling:** Lägg till anpassade slide‑bakgrunder, övergångar eller animationer via Aspose.Slides. + +Känn dig fri att experimentera – ändra DPI, byt `ShapeType.Ellipse` mot en cirkulär bildram, eller bädda in flera bilder per slide. Möjligheterna är oändliga när du har programmatisk kontroll över + +{{< /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/swedish/net/document-properties/_index.md b/cells/swedish/net/document-properties/_index.md index 0c1f785ec4..f9fa624ce1 100644 --- a/cells/swedish/net/document-properties/_index.md +++ b/cells/swedish/net/document-properties/_index.md @@ -35,6 +35,8 @@ Lär dig hur du får åtkomst till dokumentegenskaper i Excel med Aspose.Cells f Lär dig hur du får åtkomst till dokumentegenskaper i Excel med Aspose.Cells för .NET med vår steg-för-steg-guide. Hantera dina kalkylblad effektivt. ### [Lägga till dokumentegenskaper i .NET](./adding-document-properties/) Lär dig hur du lägger till dokumentegenskaper i Excel med hjälp av Aspose.Cells för .NET med den här detaljerade steg-för-steg-guiden. +### [Hur du sparar XLSB med anpassade egenskaper i C# – Steg‑för‑steg‑guide](./how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/) +Lär dig hur du sparar en XLSB-fil med anpassade egenskaper i C# med vår steg‑för‑steg‑guide. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/swedish/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md b/cells/swedish/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md new file mode 100644 index 0000000000..66877cdabd --- /dev/null +++ b/cells/swedish/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md @@ -0,0 +1,233 @@ +--- +category: general +date: 2026-03-30 +description: Lär dig hur du sparar XLSB i C# samtidigt som du lägger till en anpassad + egenskap, läser tillbaka den och behärskar att spara arbetsboken som XLSB med Aspose.Cells. + Fullständig kod medföljer. +draft: false +keywords: +- how to save xlsb +- add custom property +- how to add property +- how to read property +- save workbook as xlsb +language: sv +og_description: Hur sparar man XLSB i C#? Den här handledningen visar hur du lägger + till en anpassad egenskap, läser tillbaka den och sparar arbetsboken som XLSB med + Aspose.Cells. +og_title: Hur man sparar XLSB med anpassade egenskaper i C# – Komplett guide +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Hur man sparar XLSB med anpassade egenskaper i C# – Steg‑för‑steg‑guide +url: /sv/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hur man sparar XLSB med anpassade egenskaper i C# – Steg‑för‑steg‑guide + +Har du någonsin funderat på **hur man sparar XLSB** samtidigt som du behåller extra metadata kopplad till ett kalkylblad? Du är inte ensam. I många företagsmiljöer behöver du en binär Excel‑fil som fortfarande bär dina egna nyckel/värde‑par—tänk på ett kontrakts‑ID, en bearbetningsflagga eller en versionsetikett. + +Den goda nyheten är att Aspose.Cells gör detta till en barnlek. I den här guiden kommer du att se exakt hur du lägger till en anpassad egenskap, sparar den och sedan läser tillbaka den, allt medan du **sparar arbetsboken som XLSB**. Inga vaga referenser, bara ett komplett, körbart exempel som du kan klistra in i ditt projekt idag. + +## Vad du får med dig + +- En ny `.xlsb`‑fil skapad från grunden. +- Förmågan att **lägga till anpassad egenskap** i ett kalkylblad. +- Kod som demonstrerar **hur man läser egenskapen** efter att filen har laddats om. +- Tips om fallgropar du kan stöta på när du **sparar arbetsboken som XLSB**. + +> **Förutsättningar:** .NET 6+ (eller .NET Framework 4.6+), Visual Studio (eller någon C#‑IDE), och Aspose.Cells för .NET‑biblioteket installerat via NuGet. Inget annat. + +--- + +## Steg 1: Ställ in projektet och skapa en ny arbetsbok + +Först och främst—låt oss få ett rent arbetsboks‑objekt på bordet. + +```csharp +using Aspose.Cells; +using System; + +// Initialize a new workbook; this will be an in‑memory Excel file. +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0) – it’s created automatically. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Varför detta är viktigt:* `Workbook` är ingångspunkten för varje operation i Aspose.Cells. Genom att börja med en helt ny instans undviker du dold status som senare kan förstöra dina anpassade metadata. + +--- + +## Steg 2: **Lägg till anpassad egenskap** i kalkylbladet + +Nu kommer vi att bifoga ett nyckel/värde‑par som bara finns på detta blad. + +```csharp +// Add a user‑defined property called "MyProperty" with the value "CustomValue". +worksheet.CustomProperties.Add("MyProperty", "CustomValue"); +``` + +> **Proffstips:** Egendomsnamn är skiftlägeskänsliga. Om du senare försöker hämta `"myproperty"` får du ett `KeyNotFoundException`. Håll dig till en namngivningskonvention—camelCase eller PascalCase—redan från början. + +--- + +## Steg 3: **Spara arbetsbok som XLSB** – Spara egenskapen + +Magin händer när du skriver arbetsboken till det binära XLSB‑formatet. + +```csharp +// Define the output path. Adjust the folder to something writable on your machine. +string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + +// Save the workbook; the custom property travels with the file. +workbook.Save(outputPath, SaveFormat.Xlsb); +``` + +*Vad du faktiskt gör:* `SaveFormat.Xlsb`‑enumet talar om för Aspose.Cells att skapa en binär Excel‑fil (snabbare att öppna, mindre på disk). Alla anpassade egenskaper på kalkylbladsnivå serialiseras automatiskt—inga extra steg behövs. + +--- + +## Steg 4: Ladda om filen och **hur man läser egenskap** + +Låt oss bevisa att egenskapen överlevde rundresan. + +```csharp +// Load the just‑saved XLSB file back into memory. +Workbook reloadedWorkbook = new Workbook(outputPath); + +// Access the same worksheet (index 0) and fetch the property value. +string customValue = reloadedWorkbook.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); +``` + +Om allt gick smidigt, innehåller `customValue` nu `"CustomValue"`. + +--- + +## Steg 5: Verifiera resultatet – Snabb konsolutskrift + +En liten kontroll hjälper under utveckling. + +```csharp +Console.WriteLine($"Custom property value: {customValue}"); +``` + +Att köra programmet bör skriva ut: + +``` +Custom property value: CustomValue +``` + +Att se den raden betyder att du framgångsrikt har bemästrat **hur man sparar XLSB**, **lägger till anpassad egenskap**, och **hur man läser egenskap**—allt i ett snyggt flöde. + +--- + +## Fullt fungerande exempel (Klar att kopiera‑klistra) + +Nedan är hela programmet. Klistra in det i en ny Console App, tryck **F5**, och se konsolen bekräfta egenskapsvärdet. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // 1️⃣ Create a new workbook and get its first sheet + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // 2️⃣ Add a custom property (key/value) to the sheet + // ------------------------------------------------- + worksheet.CustomProperties.Add("MyProperty", "CustomValue"); + + // ------------------------------------------------- + // 3️⃣ Save the workbook as XLSB – the property is kept + // ------------------------------------------------- + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(outputPath, SaveFormat.Xlsb); + + // ------------------------------------------------- + // 4️⃣ Reload the saved file to demonstrate persistence + // ------------------------------------------------- + Workbook reloaded = new Workbook(outputPath); + + // ------------------------------------------------- + // 5️⃣ Retrieve the custom property's value + // ------------------------------------------------- + string customValue = reloaded.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); + + // ------------------------------------------------- + // 6️⃣ Display the retrieved value (optional) + // ------------------------------------------------- + Console.WriteLine($"Custom property value: {customValue}"); + } +} +``` + +> **Kom ihåg:** Ändra `outputPath` till en mapp du har skrivrättigheter till. Om du är på Linux/macOS, använd en sökväg som `"/tmp/WithCustomProp.xlsb"`. + +--- + +## Vanliga frågor & kantfall + +### Vad händer om egenskapen redan finns? +Att anropa `Add` med en befintlig nyckel kastar ett `ArgumentException`. Använd `ContainsKey` eller omslut anropet i ett `try/catch` om du är osäker. + +```csharp +if (!worksheet.CustomProperties.ContainsKey("MyProperty")) +{ + worksheet.CustomProperties.Add("MyProperty", "AnotherValue"); +} +``` + +### Kan jag lagra icke‑strängvärden? +Absolut. `Value`‑egenskapen accepterar vilket `object` som helst. För tal, datum eller booleska värden, skicka bara rätt typ—Aspose.Cells hanterar konverteringen när du läser tillbaka den. + +### Behåller egenskapen sig när jag konverterar till XLSX? +Ja. Anpassade egenskaper är en del av kalkylbladets XML‑representation, så de kvarstår över XLSX, XLS och XLSB‑format. + +### Hur man **lägger till egenskap** på flera blad? +Loop igenom `Worksheets`‑samlingen och applicera samma `CustomProperties.Add`‑anrop på varje blad du behöver. + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + ws.CustomProperties.Add("ExportedBy", "MyApp"); +} +``` + +### Prestandatips när du **sparar arbetsbok som XLSB** i bulk +Om du genererar hundratals filer, återanvänd samma `Workbook`‑instans och anropa `Clear` efter varje sparning för att frigöra minne. Sätt också `Workbook.Settings.CalculateFormulaOnOpen = false` om du inte behöver att formler beräknas vid laddning. + +--- + +## Slutsats + +Du vet nu **hur man sparar XLSB** i C# samtidigt som du bäddar in och senare hämtar en anpassad egenskap med Aspose.Cells. Den kompletta lösningen—skapa arbetsboken, lägga till en egenskap, spara den med **spara arbetsbok som XLSB**, ladda om och läsa värdet—ryms på under 50 kodrader. + +Härifrån kan du utforska: + +- Lägga till flera anpassade egenskaper per blad. +- Lagra komplexa objekt via JSON‑strängar. +- Kryptera XLSB‑filen för extra säkerhet. + +Prova dessa idéer, så blir du snabbt go‑to‑personen för Excel‑automatisering i ditt team. Har du frågor eller ett knepigt scenario? Lämna en kommentar nedan, och lycka till med kodandet! + +![Hur man sparar XLSB med anpassad egenskap](/images/how-to-save-xlsb.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/swedish/net/excel-copy-worksheet/_index.md b/cells/swedish/net/excel-copy-worksheet/_index.md index 065c8ba9cc..1b9943cc8a 100644 --- a/cells/swedish/net/excel-copy-worksheet/_index.md +++ b/cells/swedish/net/excel-copy-worksheet/_index.md @@ -42,6 +42,7 @@ Aspose.Cells för .NET erbjuder kraftfulla funktioner för att manipulera Excel- | [Excel-kopieringsark](./excel-copy-worksheet/) | Lär dig hur du kopierar ett Excel-ark med Aspose.Cells för .NET med den här lättförståeliga steg-för-steg-guiden. Perfekt för .NET-utvecklare som vill automatisera Excel-uppgifter. | | [Kopiera Excel-kalkylblad mellan arbetsböcker](./excel-copy-worksheets-between-workbooks/) | Lär dig hur du kopierar kalkylblad mellan Excel-arbetsböcker med Aspose.Cells för .NET. En steg-för-steg-guide med kodexempel för att effektivisera din kalkylbladshantering. | | [Flytta i Excel-arbetsblad](./excel-move-worksheet/) | Lär dig flytta kalkylblad i Excel med hjälp av Aspose.Cells för .NET i vår steg-för-steg-guide. Bemästra konsten att programmera i Excel. | +| [Hur man kopierar kalkylblad i C# med Aspose.Cells – Komplett guide](./how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/) | Lär dig hur du kopierar ett kalkylblad i C# med Aspose.Cells i denna kompletta steg-för-steg-guide. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/swedish/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md b/cells/swedish/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md new file mode 100644 index 0000000000..67f6083461 --- /dev/null +++ b/cells/swedish/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md @@ -0,0 +1,268 @@ +--- +category: general +date: 2026-03-30 +description: Så här kopierar du ett kalkylblad i C# med Aspose.Cells – steg‑för‑steg‑guide + som täcker kopiering av cellområde, kopiering av kolumner mellan blad, kopiering + av pivottabell i kalkylbladet och kod för att lägga till ett nytt kalkylblad. +draft: false +keywords: +- how to copy worksheet +- copy cell range +- copy columns between sheets +- copy worksheet pivot table +- add new worksheet code +language: sv +og_description: Lär dig hur du kopierar kalkylblad i C# med Aspose.Cells. Den här + guiden visar hur du kopierar cellområde, bevarar pivottabeller, kopierar kolumner + mellan blad och lägger till kod för ett nytt kalkylblad. +og_title: Hur man kopierar kalkylblad i C# – Fullständig Aspose.Cells-handledning +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Hur man kopierar kalkylblad i C# med Aspose.Cells – Komplett guide +url: /sv/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hur man kopierar arbetsblad i C# med Aspose.Cells – Komplett guide + +Har du någonsin undrat **how to copy worksheet** i C# utan att förlora en enda pivottabell eller formel? Du är inte ensam—många utvecklare stöter på problem när de måste duplicera ett blad samtidigt som alla funktioner behålls. I den här handledningen går vi igenom en praktisk, end‑to‑end‑lösning som inte bara kopierar data utan också bevarar **copy worksheet pivot table**, hanterar **copy cell range**, och visar den **add new worksheet code** du behöver. + +Vi kommer att gå igenom allt från att ladda källarboken till att spara destinationsfilen, så att du kan **copy columns between sheets**, bevara objekt och hålla din kod ren. Inga vaga referenser, bara ett komplett, körbart exempel som du kan lägga in i ditt projekt idag. + +## Vad den här handledningen täcker + +- Laddar en befintlig Excel-fil med Aspose.Cells +- Använder **add new worksheet code** för att skapa ett målblad +- Definierar ett **copy cell range** som inkluderar en pivottabell +- Ställer in **CopyOptions** för att behålla diagram, formler och pivottabeller intakta +- Utför **copy columns between sheets** med rad‑vis precision +- Sparar resultatet och verifierar att arbetsbladet kopierades korrekt + +I slutet av den här guiden kommer du kunna svara på frågan “how to copy worksheet” med självförtroende, oavsett om du automatiserar rapporter eller bygger ett kalkylblads‑drivet UI. + +## Så kopierar du arbetsblad – Översikt + +Innan vi dyker ner i koden, låt oss beskriva den övergripande flödet. Tänk på det som ett recept: + +1. **Load** källarboken (`Source.xlsx`). +2. **Add** ett nytt arbetsblad för att hålla kopian (`add new worksheet code`). +3. **Define** området du vill duplicera (`copy cell range`). +4. **Configure** kopieringsalternativen så att pivottabellen överlever (`copy worksheet pivot table`). +5. **Copy** rader och kolumner (`copy columns between sheets`). +6. **Save** den nya arbetsboken (`Destination.xlsx`). + +Det är allt—sex steg, ingen magi. Varje steg förklaras nedan med kodsnuttar och resonemanget bakom. + +## Steg 1 – Ladda källarboken + +Först och främst: du behöver en `Workbook`‑instans som pekar på filen du vill duplicera. Detta steg är avgörande eftersom Aspose.Cells arbetar direkt med filsystemet, inte med Office‑gränssnittet. + +```csharp +using Aspose.Cells; + +// Path to the original file +string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; +string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + +// Load the workbook – this is the starting point for how to copy worksheet +Workbook workbook = new Workbook(sourcePath); +``` + +*Varför detta är viktigt:* Att ladda filen skapar en minnesrepresentation av varje blad, cell och objekt. Utan detta finns det inget att kopiera, och varje försök att `add new worksheet code` senare skulle misslyckas eftersom källdata saknas. + +## Steg 2 – Lägg till ett nytt arbetsblad (add new worksheet code) + +Nu behöver vi en plats att klistra in de kopierade data. Det är här **add new worksheet code** kommer till sin rätt. Du kan namnge bladet hur du vill; här kallar vi det `"Copy"`. + +```csharp +// Grab the first worksheet (the one we want to copy) +Worksheet sourceSheet = workbook.Worksheets[0]; + +// Add a fresh worksheet to receive the copy +Worksheet copySheet = workbook.Worksheets.Add("Copy"); +``` + +*Proffstips:* Om du planerar att kopiera flera blad, anropa `Worksheets.Add` i en loop och ge varje blad ett unikt namn. På så sätt undviker du namnkonflikter och håller din arbetsbok prydlig. + +## Steg 3 – Definiera copy cell range + +Ett **copy cell range** talar om för Aspose.Cells exakt vilka rader och kolumner som ska dupliceras. I många verkliga scenarier inkluderar området en pivottabell, så vi måste vara precisa. + +```csharp +// Define the area that contains the pivot table (A1:G20) +CellArea sourceRange = new CellArea +{ + StartRow = 0, // Row 1 (zero‑based) + StartColumn = 0, // Column A + EndRow = 19, // Row 20 + EndColumn = 6 // Column G +}; + +// Destination range – we start at the same top‑left corner +CellArea destinationRange = new CellArea +{ + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 +}; +``` + +*Varför vi behöver detta:* Genom att uttryckligen ange området undviker du att kopiera hela bladet (vilket kan vara slöseri) och du garanterar att pivottabellen finns inom det kopierade området. Detta är kärnan i **how to copy worksheet** när du bara behöver en del av bladet. + +## Steg 4 – Ställ in CopyOptions (bevara copy worksheet pivot table) + +Aspose.Cells erbjuder ett `CopyOptions`‑objekt som styr vad som klistras in. För att behålla pivottabellen, diagram och formler, sätter vi `PasteType.All` och aktiverar `PasteSpecial`. + +```csharp +CopyOptions copyOptions = new CopyOptions +{ + PasteType = PasteType.All, // Copy everything: values, formats, objects + PasteSpecial = true // Enable special paste to retain pivot tables +}; +``` + +*Förklaring:* `PasteType.All` är det mest omfattande alternativet, medan `PasteSpecial` instruerar motorn att hantera komplexa objekt—som pivottabeller—på rätt sätt. Att hoppa över detta steg är en vanlig fallgrop; det kopierade bladet skulle förlora sina interaktiva funktioner. + +## Steg 5 – Kopiera rader och kolumner (copy columns between sheets) + +Nu kommer det tunga arbetet: att faktiskt flytta data. Vi använder `CopyRows` och `CopyColumns` för att hantera **copy columns between sheets**. Att göra båda säkerställer att sammanslagna celler och kolumnbredder bevaras. + +```csharp +// Copy rows from the source to the destination sheet +sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + +// Copy columns from the source to the destination sheet +sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); +``` + +*Vad som händer:* `CopyRows` flyttar data rad för rad, medan `CopyColumns` gör samma sak kolumn för kolumn. Att köra båda garanterar att hela det rektangulära blocket dupliceras, vilket är avgörande när du behöver **copy columns between sheets** som har olika kolumnbredder eller dolda kolumner. + +## Steg 6 – Spara arbetsboken + +Till sist, skriv tillbaka ändringarna till disk. Detta steg slutför processen **how to copy worksheet**. + +```csharp +// Save the workbook with the newly copied sheet +workbook.Save(destinationPath); +``` + +*Verifieringstips:* Öppna `Destination.xlsx` och kontrollera att bladet `"Copy"` ser identiskt ut som originalet, pivottabellerna fungerar och kolumnbredderna matchar. Om något ser fel ut, gå tillbaka till `CopyOptions`‑inställningarna. + +## Edge Cases & vanliga variationer + +### Kopiera flera arbetsblad + +Om du behöver duplicera flera blad, omslut logiken ovan i en `foreach`‑loop: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + Worksheet newWs = workbook.Worksheets.Add(ws.Name + "_Copy"); + // Re‑use sourceRange/destinationRange or calculate per sheet + // Then call CopyRows/CopyColumns as shown earlier +} +``` + +### Bevara formler mellan olika arbetsböcker + +När käll- och destinationsarbetsböcker har olika namngivna områden, sätt `copyOptions` till `PasteType.Formulas` utöver `All`: + +```csharp +copyOptions.PasteType = PasteType.All | PasteType.Formulas; +``` + +### Stora områden och prestanda + +För enorma dataset (hundratusentals rader), överväg att bara använda `CopyRows` och hoppa över `CopyColumns` om kolumnbredder inte är kritiska. Detta kan spara några sekunder. + +## Fullständigt fungerande exempel + +Nedan är det kompletta, färdiga programmet som innehåller allt vi har diskuterat. Klistra in det i en konsolapp, justera filsökvägarna och tryck på **F5**. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // ---------- Step 1: Load the source workbook ---------- + string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; + string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + Workbook workbook = new Workbook(sourcePath); + + // ---------- Step 2: Add a new worksheet (add new worksheet code) ---------- + Worksheet sourceSheet = workbook.Worksheets[0]; + Worksheet copySheet = workbook.Worksheets.Add("Copy"); + + // ---------- Step 3: Define the copy cell range ---------- + CellArea sourceRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + CellArea destinationRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + + // ---------- Step 4: Set copy options (preserve copy worksheet pivot table) ---------- + CopyOptions copyOptions = new CopyOptions + { + PasteType = PasteType.All, + PasteSpecial = true + }; + + // ---------- Step 5: Copy rows and columns (copy columns between sheets) ---------- + sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + + sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); + + // ---------- Step 6: Save the workbook ---------- + workbook.Save(destinationPath); + } +} +``` + +**Förväntat resultat:** När du öppnar `Destination.xlsx` visas ett blad med namnet **Copy** som speglar det första bladet i `Source.xlsx`—inklusive eventuella pivottabeller, formatering och kolumnbredder. Originalfilen förblir orörd. + +## Vanliga frågor + +**Q: Fungerar detta med .xlsx‑filer skapade av Excel 2019?** +A: Absolut. Aspose.Cells stöder alla moderna Excel‑format, så samma kod fungerar för `.xlsx`, `.xlsm` och även äldre `.xls`‑filer + +{{< /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/swedish/net/excel-custom-number-date-formatting/_index.md b/cells/swedish/net/excel-custom-number-date-formatting/_index.md index dbba5ff40e..a9039a995a 100644 --- a/cells/swedish/net/excel-custom-number-date-formatting/_index.md +++ b/cells/swedish/net/excel-custom-number-date-formatting/_index.md @@ -36,6 +36,10 @@ Den här handledningen ger dig färdigheterna att importera dina dataset samtidi Lär dig hur du kontrollerar Excel-cellvärden mot anpassade talformat med Aspose.Cells för .NET med den här steg-för-steg-handledningen. ### [Ange formelfält vid import av data till Excel-ark](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) Lär dig hur du importerar data till Excel-ark med angivna formelfält med hjälp av Aspose.Cells för .NET i den här detaljerade handledningen. +### [Formatera tal med avgränsare i C# – Komplett Aspose.Cells-guide](./format-number-with-separator-in-c-complete-aspose-cells-guid/) +Lär dig hur du formaterar tal med avgränsare i C# med Aspose.Cells i den här kompletta guiden. +### [Formatera datum ISO från Excel – Komplett C#-guide](./format-date-iso-from-excel-complete-c-guide/) +Lär dig hur du formaterar datum i ISO-format från Excel med Aspose.Cells för .NET i den här kompletta guiden. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/swedish/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md b/cells/swedish/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..743f29edcd --- /dev/null +++ b/cells/swedish/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md @@ -0,0 +1,218 @@ +--- +category: general +date: 2026-03-30 +description: Lär dig hur du formaterar datum i ISO när du läser Excel-datumvärden + och extraherar datum‑ och tidsdata från Excel med Aspose.Cells i C#. +draft: false +keywords: +- format date iso +- read excel datetime +- extract datetime excel +- Aspose.Cells date parsing +- Japanese era dates +language: sv +og_description: formatera datum i ISO från Excel-data med Aspose.Cells. Denna guide + visar hur du läser Excel-datum/tid, extraherar datum/tid‑värden från Excel och skriver + ut ISO‑datum. +og_title: formatera datum ISO från Excel – Steg‑för‑steg C#‑handledning +tags: +- C# +- Excel +- DateTime +- Aspose.Cells +title: Formatera datum i ISO-format från Excel – Komplett C#‑guide +url: /sv/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# formatera datum iso från Excel – Komplett C#‑guide + +Har du någonsin behövt **format date iso** när du hämtar datum från ett Excel‑ark? Kanske jonglerar du med japanska era‑datum, eller så vill du bara ha en ren `yyyy‑MM‑dd`‑sträng för en API‑payload. I den här handledningen kommer du att se exakt hur du **read Excel datetime**‑celler, **extract datetime Excel**‑värden, och omvandlar dem till ISO‑8601‑format—utan gissningar. + +Vi går igenom ett verkligt exempel som använder Aspose.Cells, förklarar varför varje rad är viktig, och visar dig den slutgiltiga utskriften som du kan kopiera‑klistra in i ditt projekt. När du är klar kan du hantera knasiga era‑strängar som “令和3年5月1日” och producera ett standard‑ISO‑datum, redo för databaser, JSON eller var du än behöver det. + +## Förutsättningar + +- .NET 6.0 eller senare (koden fungerar även med .NET Framework) +- Aspose.Cells för .NET (gratis provversion eller licensierad version) +- Grundläggande kunskap om C# och Excel‑koncept +- Visual Studio eller någon annan C#‑redigerare du föredrar + +Inga ytterligare NuGet‑paket krävs utöver Aspose.Cells, så installationen är ganska enkel. + +--- + +## Steg 1: Skapa en arbetsbok och rikta in dig på det första kalkylbladet + +Det första du gör är att skapa ett nytt `Workbook`‑objekt. Detta ger dig en minnes‑representation av en Excel‑fil, som du sedan kan manipulera eller läsa från. + +```csharp +using Aspose.Cells; +using System.Globalization; + +// Step 1: Initialize a new workbook and grab the first worksheet +Workbook workbook = new Workbook(); // creates an empty .xlsx +Worksheet worksheet = workbook.Worksheets[0]; // the default sheet is "Sheet1" +``` + +*Why this matters:* +Creating the workbook programmatically lets you avoid dealing with physical files during testing. It also ensures the worksheet reference is always valid—no null‑reference surprises later when you try to **read Excel datetime** values. + +--- + +## Steg 2: Skriv en japansk era‑datumsträng i en cell + +Vårt mål är att demonstrera parsning av ett icke‑gregorianskt datum. Vi placerar era‑strängen direkt i cell **A1**. + +```csharp +// Step 2: Insert a Japanese era date string into cell A1 +worksheet.Cells["A1"].PutValue("令和3年5月1日"); +``` + +*Pro tip:* If you’re pulling data from an existing workbook, you’d skip the `PutValue` call and just reference the cell that already contains the date. The key is that the cell holds a **string** that represents a date in the Japanese lunisolar calendar. + +--- + +## Steg 3: Konfigurera en kultur som förstår den japanska lunisolära kalendern + +.NET:s `CultureInfo`‑klass låter dig ange hur datum ska tolkas. Genom att byta ut den standard‑gregorianska kalendern mot `JapaneseLunisolarCalendar` ger du parsern den kontext den behöver. + +```csharp +// Step 3: Set up a culture using the Japanese lunisolar calendar +CultureInfo japaneseCulture = new CultureInfo("ja-JP"); +japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); +``` + +*Why we do this:* +If you tried to parse “令和3年5月1日” with the default culture, .NET would throw a `FormatException`. Swapping in the lunisolar calendar tells the runtime exactly how to map “令和3年” (the 3rd year of the Reiwa era) to the Gregorian year 2021. + +--- + +## Steg 4: Parsa cellvärdet som ett `DateTime` med den konfigurerade kulturen + +Nu kommer hjärtat i operationen—att omvandla den era‑strängen till ett riktigt `DateTime`‑objekt. Aspose.Cells erbjuder en bekväm `GetDateTime`‑overload som accepterar en `CultureInfo`. + +```csharp +// Step 4: Retrieve the cell value as a DateTime, respecting the Japanese culture +DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); +``` + +*What’s happening under the hood:* +`GetDateTime` reads the raw string, applies the supplied culture’s calendar rules, and returns a `DateTime` that represents the same moment in the Gregorian calendar. This is the moment where you **extract datetime Excel** data in a form you can work with in .NET. + +--- + +## Steg 5: Skriv ut det parsade datumet i ISO 8601‑format + +Till sist formaterar vi `DateTime` som en ISO‑sträng—`yyyy‑MM‑dd`—som är universellt accepterad av API:er, databaser och front‑end‑ramverk. + +```csharp +// Step 5: Print the date in ISO format (e.g., 2021-05-01) +Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // Output: 2021-05-01 +``` + +*Why ISO?* +ISO 8601 eliminates ambiguity. “05/01/2021” could be May 1st or January 5th depending on locale. `2021-05-01` is crystal clear, which is why we **format date iso** in almost every integration scenario. + +--- + +## Fullt fungerande exempel + +Nedan är det kompletta, körklara programmet. Kopiera det till ett konsol‑app‑projekt, lägg till Aspose.Cells‑referensen, och tryck **F5**. + +```csharp +using Aspose.Cells; +using System; +using System.Globalization; + +class Program +{ + static void Main() + { + // 1️⃣ Create workbook and select the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("令和3年5月1日"); + + // 3️⃣ Set up Japanese lunisolar culture + CultureInfo japaneseCulture = new CultureInfo("ja-JP"); + japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); + + // 4️⃣ Parse the cell value as DateTime using the culture + DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); + + // 5️⃣ Output the date in ISO format + Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // 2021-05-01 + } +} +``` + +**Förväntad utskrift** + +``` +2021-05-01 +``` + +Kör det en gång, så ser du det ISO‑formaterade datumet skrivet till konsolen. Det är hela kedjan från **read Excel datetime** till **format date iso**. + +--- + +## Hantera vanliga edge‑fall + +### 1. Celler som innehåller riktiga Excel‑datumnummer + +Ibland lagrar Excel datum som serienummer (t.ex. `44204`). I så fall behöver du ingen kultur; anropa bara `GetDateTime()` utan parametrar: + +```csharp +DateTime serialDate = worksheet.Cells["B2"].GetDateTime(); // B2 holds a numeric date +Console.WriteLine(serialDate.ToString("yyyy-MM-dd")); +``` + +### 2. Tomma eller ogiltiga celler + +Om en cell är tom eller innehåller en oparsbar sträng, kommer `GetDateTime` att kasta ett undantag. Omge anropet med en `try/catch` eller kontrollera `IsDateTime` först: + +```csharp +if (worksheet.Cells["C3"].Type == CellValueType.IsDateTime) +{ + DateTime safeDate = worksheet.Cells["C3"].GetDateTime(); + Console.WriteLine(safeDate.ToString("yyyy-MM-dd")); +} +else +{ + Console.WriteLine("Cell C3 does not contain a valid date."); +} +``` + +### 3. Olika era‑format + +Andra japanska epoker (Heisei, Showa) följer samma mönster. Samma `JapaneseLunisolarCalendar` hanterar dem automatiskt, så du behöver ingen extra logik—mata bara in strängen. + +--- + +## Pro‑tips & fallgropar + +- **Performance:** When processing large spreadsheets, reuse a single `CultureInfo` instance instead of creating a new one inside a loop. +- **Thread Safety:** `CultureInfo` objects are read‑only after you set the calendar, so they’re safe to share across threads. +- **Aspose.Cells Licensing:** If you’re using the free trial, remember that some features may be limited after the trial period expires. The date parsing shown here works fine in both trial and licensed modes. +- **Time Zones:** The `DateTime` you get is **unspecified** (no time zone). If you need UTC, call `DateTime.SpecifyKind(parsedDate, DateTimeKind.Utc)` or convert using `TimeZoneInfo`. + +--- + +## Slutsats + +Vi har gått igenom allt du behöver för att **format date iso** från en Excel‑arbetsbok med C#. Utifrån en rå japansk era‑sträng **read Excel datetime**, ställer in rätt kultur, **extract datetime excel**‑data, och slutligen skriver ut en ren ISO‑8601‑sträng. Metoden fungerar för alla datumrepresentationer som Excel kan kasta på dig, oavsett om det är ett serienummer, en lokalanpassad sträng eller ett traditionellt era‑format. + +Nästa steg? Prova att loopa över en hel kolumn med datum, skriv tillbaka ISO‑resultaten till ett nytt blad, eller skicka dem direkt i en JSON‑payload till en webbtjänst. Om du är nyfiken på andra kalendersystem (hebreiska, islamiska) gör Aspose.Cells och .NET:s `CultureInfo` dessa experiment lika enkla. + +Har du frågor eller ett knepigt datumformat du inte kan knäcka? Lägg en kommentar nedan, och lycka till med kodandet! + +{{< /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/swedish/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md b/cells/swedish/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md new file mode 100644 index 0000000000..8b7bf73cbc --- /dev/null +++ b/cells/swedish/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md @@ -0,0 +1,235 @@ +--- +category: general +date: 2026-03-30 +description: Lär dig hur du formaterar tal med avgränsare med Aspose.Cells i C#. Inkluderar + att sätta anpassat talformat, lägga till tusentalsavgränsare, formatera decimaler + och hur du formaterar en cell. +draft: false +keywords: +- format number with separator +- set custom number format +- add thousands separator +- format decimal places +- how to format cell +language: sv +og_description: Formatera tal med separator i C#. Denna guide visar hur du ställer + in ett anpassat talformat, lägger till tusentalsseparator, formaterar decimalplatser + och hur du formaterar en cell med Aspose.Cells. +og_title: Formatera tal med avgränsare i C# – Aspose.Cells-handledning +tags: +- C# +- Aspose.Cells +- Number Formatting +title: Formatera tal med avgränsare i C# – Komplett Aspose.Cells-guide +url: /sv/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Formatera tal med avgränsare i C# – Komplett Aspose.Cells-guide + +Har du någonsin behövt **formatera tal med avgränsare** i ett kalkylblad men varit osäker på vilken API‑anrop du ska använda? Du är inte ensam—utvecklare kämpar ständigt med tusentalsavgränsare, decimaler och anpassade mönster när de exporterar data. + +God nyhet: Aspose.Cells gör det enkelt. I den här handledningen går vi igenom ett verkligt exempel som **sätter ett anpassat talformat**, **lägger till en tusentalsavgränsare**, **formaterar decimaler**, och visar **hur man formaterar cell**‑utdata som en sträng. I slutet har du ett färdigt kodexempel som du kan klistra in i vilket .NET‑projekt som helst. + +## Vad den här guiden täcker + +* Den exakta NuGet‑paketet du behöver och hur du installerar det. +* Steg‑för‑steg‑kod som skapar en arbetsbok, skriver ett numeriskt värde och tillämpar ett anpassat format. +* Varför `ExportTableOptions.ExportAsString` är det föredragna sättet att hämta ett formaterat värde. +* Vanliga fallgropar—som att glömma att aktivera `ExportAsString` eller använda fel formatmask. +* Hur du justerar formatmasken om du behöver ett annat antal decimaler eller en annan avgränsningstyp. + +Ingen extern dokumentationslänkar behövs; allt du behöver finns här. Låt oss dyka in. + +--- + +## Förutsättningar + +| Krav | Orsak | +|-------------|--------| +| .NET 6.0 eller senare | Aspose.Cells 23.10+ riktar sig mot .NET Standard 2.0+, så .NET 6 är säkert och aktuellt. | +| Visual Studio 2022 (eller någon C#‑IDE) | Gör felsökning och paketshantering smidig. | +| Aspose.Cells för .NET NuGet‑paket | Tillhandahåller klasserna `Workbook`, `Worksheet` och `ExportTableOptions` som vi kommer att använda. | + +Du kan installera paketet via Package Manager Console: + +```powershell +Install-Package Aspose.Cells +``` + +Det är allt—inga extra DLL‑filer, ingen COM‑interop, bara en enda NuGet‑referens. + +## Steg 1: Initiera en ny arbetsbok (Hur man formaterar cell) + +Det första vi gör är att skapa en ny `Workbook`‑instans. Tänk på den som en tom Excel‑fil som är redo att ta emot data. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Create a new workbook – this is where we’ll format the cell. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Varför detta är viktigt:** `Workbook` är ingångspunkten för varje operation i Aspose.Cells. Genom att hämta det första kalkylbladet (`Worksheets[0]`) får vi en ren canvas utan att behöva namnge ett blad. + +## Steg 2: Skriv ett numeriskt värde i mål‑cellen + +Därefter placerar vi ett rått tal i cell **A1**. Värdet är ännu inte formaterat—det är bara en double. + +```csharp + // Step 2: Insert a raw numeric value. + worksheet.Cells["A1"].PutValue(12345.6789); +``` + +> **Proffstips:** Använd `PutValue` istället för `PutString` när du avser att applicera numerisk formatering senare. Detta bevarar den underliggande datatypen, vilket möjliggör Excel‑kompatibla beräkningar. + +## Steg 3: Sätt anpassat talformat (Lägg till tusentalsavgränsare & formatera decimaler) + +Nu kommer hjärtat i handledningen: definiera en formatmask som talar om för Aspose.Cells hur talet ska visas. Masken `#,##0.00` gör tre saker: + +1. **`#,##0`** – lägger till en tusentalsavgränsare (komma som standard). +2. **`.00`** – tvingar exakt två decimaler. + +Om du behöver ett annat antal decimaler, ändra bara antalet `0` efter decimaltecknet. + +```csharp + // Step 3: Configure the custom number format. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, // Return the value as a formatted string. + NumberFormat = "#,##0.00" // Add thousands separator and fix to 2 decimals. + }; +``` + +> **Varför vi använder `ExportAsString`**: Som standard returnerar `ExportString` det råa värdet. Genom att sätta `ExportAsString = true` tvingas API‑et att tillämpa `NumberFormat`‑masken innan konvertering till text. Detta är avgörande när du behöver den exakta strängrepresentationen för rapporter, JSON‑payloads eller UI‑visning. + +## Steg 4: Exportera den formaterade texten (Hur man formaterar cell) + +Med alternativen klara anropar vi `ExportString` på samma cell. Metoden respekterar masken vi just definierade och returnerar en snyggt formaterad sträng. + +```csharp + // Step 4: Export the formatted value. + string formattedCellText = worksheet.Cells["A1"].ExportString(exportOptions); + + // Step 5: Show the result. + Console.WriteLine(formattedCellText); // Expected output: 12,345.68 + } +} +``` + +När programmet körs skrivs **`12,345.68`** till konsolen—exakt det format vi begärde. + +> **Edge case:** Om källtalet har mer än två decimaler, avrundar masken det. Om du behöver trunkering istället för avrundning måste du förbehandla värdet med `Math.Truncate` innan du anropar `PutValue`. + +## Steg 5: Justera formatet – Vanliga variationer + +### 5.1 Ändra decimalprecision + +Vill du ha tre decimaler? Byt bara ut masken: + +```csharp +NumberFormat = "#,##0.000" // → 12,345.679 +``` + +### 5.2 Använd en annan tusentalsavgränsare + +Vissa regioner föredrar ett mellanslag eller en punkt. Du kan bädda in tecknet direkt: + +```csharp +NumberFormat = "# ##0.00" // Uses a non‑breaking space as separator. +``` + +Eller förlita dig på arbetsbokens kulturinställningar: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("de-DE"); +NumberFormat = "#.##0,00"; // German style: 12.345,68 +``` + +### 5.3 Prefix eller suffix (Valuta, Procent) + +Lägg till ett dollartecken eller ett procenttecken direkt i masken: + +```csharp +NumberFormat = "$#,##0.00"; // → $12,345.68 +NumberFormat = "0.00%"; // → 1,234,568.00% +``` + +> **Obs:** Masken är skiftlägeskänslig. `$` och `%` är bokstavliga symboler; de påverkar inte det underliggande numeriska värdet. + +## Steg 6: Fullt fungerande exempel (Kopiera‑klistra redo) + +Nedan är det kompletta programmet som du kan kopiera in i en ny konsolapp. Det innehåller alla steg, kommentarer och den slutgiltiga utdata‑verifieringen. + +```csharp +using System; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write raw numeric value to A1. + worksheet.Cells["A1"].PutValue(12345.6789); + + // 3️⃣ Define custom format: thousands separator + two decimals. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + NumberFormat = "#,##0.00" + }; + + // 4️⃣ Export the formatted string. + string result = worksheet.Cells["A1"].ExportString(exportOptions); + + // 5️⃣ Display the outcome. + Console.WriteLine(result); // Output: 12,345.68 + + // Optional: keep console open. + Console.WriteLine("Press any key to exit..."); + Console.ReadKey(); + } +} +``` + +Kör programmet (`dotnet run` från terminalen eller tryck F5 i Visual Studio) så ser du det formaterade talet skrivet exakt som visas. + +## Vanliga frågor (FAQ) + +**Q: Fungerar detta med äldre versioner av Excel?** +A: Ja. Formatmasken följer Excels inbyggda talformat‑syntax, så varje version som förstår `#,##0.00` kommer att rendera samma sträng. + +**Q: Vad händer om jag behöver formatera ett område av celler?** +A: Loopa över det önskade området och tillämpa samma `ExportTableOptions` på varje cell, eller sätt `Style.Custom`‑egenskapen på området och anropa sedan `ExportString` på en enda cell. + +**Q: Kan jag exportera direkt till CSV med dessa format tillämpade?** +A: Absolut. Använd `Workbook.Save("output.csv", SaveFormat.CSV);` efter att du har satt formatet på varje cell. Aspose.Cells respekterar cellens `Style` när CSV genereras. + +## Slutsats + +Vi har just visat hur man **formaterar tal med avgränsare** i C# med Aspose.Cells, och täckt allt från **sätta anpassat talformat** till **lägga till tusentalsavgränsare**, **formatera decimaler**, och den väsentliga **hur man formaterar cell** för strängexport. Koden är helt självständig, fungerar med .NET 6+ och kan anpassas för vilken region eller precision som helst. + +Nästa steg du kan utforska: + +* Applicera samma teknik på datum och tider (`NumberFormat = "dd‑MMM‑yyyy"`). +* Automatisera massexport där varje kolumn behöver en annan mask. +* Integrera de formaterade strängarna i PDF‑rapporter med Aspose.Words. + +Prova dem, så blir du snabbt go‑to‑personen för kalkylbladsformatering i ditt team. Lycka till med kodandet! (Image: ![Screenshot showing formatted number with separator in Aspose.Cells](image-placeholder.png){alt="Formaterat tal med avgränsare visas i Aspose.Cells‑utdata"} ) + +{{< /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/swedish/net/excel-data-import-export/_index.md b/cells/swedish/net/excel-data-import-export/_index.md index 8d39a2635c..af21fc74fd 100644 --- a/cells/swedish/net/excel-data-import-export/_index.md +++ b/cells/swedish/net/excel-data-import-export/_index.md @@ -32,6 +32,10 @@ Nästa utmaning är en annan vanlig utmaning: att infoga DataTable-rader i Excel Lär dig hur du importerar data till Excel med anpassad DB Num-formatering med Aspose.Cells för .NET i den här lättförståeliga handledningen. ### [Flytta första raden nedåt när du infogar datatabellrader i Excel](./shift-first-row-down-when-inserting-cells-datatable-rows-in-excel/) Lär dig infoga DataTable-rader i Excel utan att flytta den första raden nedåt med Aspose.Cells för .NET. Steg-för-steg-guide för enkel automatisering. +### [Skapa Excel-arbetsbok i C# – Infoga JSON och spara som XLSX](./create-excel-workbook-c-insert-json-and-save-as-xlsx/) +Lär dig hur du skapar en Excel-arbetsbok i C#, infogar JSON-data och sparar den som en XLSX-fil med Aspose.Cells för .NET. +### [Skapa Excel-arbetsbok i C# – Tillämpa valutformat och importera DataTable](./create-excel-workbook-c-apply-currency-format-and-import-dat/) +Lär dig hur du skapar en Excel-arbetsbok i C#, tillämpar valutformat och importerar en DataTable med Aspose.Cells för .NET. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/swedish/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md b/cells/swedish/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md new file mode 100644 index 0000000000..b78b10c213 --- /dev/null +++ b/cells/swedish/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md @@ -0,0 +1,285 @@ +--- +category: general +date: 2026-03-30 +description: Skapa Excel‑arbetsbok i C# med valutformat. Lär dig hur du importerar + en DataTable, lägger till talformat i Excel och tillämpar valutformat på en kolumn + på några minuter. +draft: false +keywords: +- create excel workbook c# +- format cells currency +- import datatable to excel +- add number format excel +- apply currency format column +language: sv +og_description: Skapa Excel‑arbetsbok i C# och formatera celler som valuta direkt. + Denna steg‑för‑steg‑handledning visar hur du importerar en DataTable till Excel + och lägger till talformat i Excel för en kolumn. +og_title: Skapa Excel‑arbetsbok i C# – Guide för valutformatering +tags: +- Aspose.Cells +- C# +- Excel automation +title: Skapa Excel-arbetsbok i C# – Använd valutaformat och importera DataTable +url: /sv/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Skapa Excel‑arbetsbok C# – Tillämpa valutformat och importera DataTable + +Har du någonsin behövt **create Excel workbook C#** som redan ser ut som en färdig rapport? Kanske hämtar du försäljningssiffror från en databas och vill att pris‑kolumnen ska visas i dollar utan att manuellt justera Excel. Känns igen? Du är inte ensam – de flesta utvecklare stöter på detta när de först automatiserar Excel‑export. + +I den här guiden går vi igenom en komplett, färdig‑att‑köra lösning som **creates an Excel workbook C#**, importerar en `DataTable` och **formats the Price column as currency**. I slutet har du en fil som heter `StyledTable.xlsx` som du kan öppna och se snyggt formaterade tal. Ingen extra efterbehandling behövs. + +> **Vad du kommer att lära dig** +> - Hur du sätter upp Aspose.Cells i ett .NET‑projekt +> - Hur du **import datatable to excel** med en stil‑array +> - Hur du **add number format excel** för en specifik kolumn +> - Tips för att hantera fler kolumner eller olika lokaler + +> **Förutsättningar** +> - .NET 6+ (eller .NET Framework 4.6+) installerat +> - Aspose.Cells for .NET NuGet‑paket (`Install-Package Aspose.Cells`) +> - Grundläggande kunskap om C# och DataTables + +--- + +## Steg 1: Förbered DataTable (import datatable to excel) + +Först behöver vi lite exempeldata. I en riktig applikation skulle du troligen fylla tabellen från en DB‑fråga, men ett hårdkodat exempel håller det enkelt. + +```csharp +using System.Data; + +// Create a DataTable with two columns: Product (string) and Price (double) +DataTable dataTable = new DataTable(); +dataTable.Columns.Add("Product", typeof(string)); +dataTable.Columns.Add("Price", typeof(double)); + +// Add a few rows – you can add as many as you like +dataTable.Rows.Add("Apple", 1.23); +dataTable.Rows.Add("Banana", 0.78); +dataTable.Rows.Add("Cherry", 2.50); +``` + +*Varför detta är viktigt*: `DataTable` är bron mellan dina affärsdata och Excel‑filen. Aspose.Cells kan importera den direkt och bevara kolumnnamn och datatyper. + +--- + +## Steg 2: Skapa en ny arbetsbok (create excel workbook c#) + +Nu skapar vi själva Excel‑filobjektet. Tänk på det som en tom duk du ska måla på. + +```csharp +using Aspose.Cells; + +// Instantiate a fresh workbook – this is the core of create excel workbook c# +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0). You could also add more sheets later. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Pro tip:** Om du behöver flera blad, anropa `workbook.Worksheets.Add()` och ge varje ett meningsfullt namn. + +--- + +## Steg 3: Definiera ett valutastil (format cells currency) + +Aspose.Cells låter dig skapa ett `Style`‑objekt som beskriver hur celler ska se ut. För valuta använder vi det inbyggda talformat‑ID‑et 164 (`"$#,##0.00"`). + +```csharp +// Create a new style object for the price column +Style priceStyle = workbook.CreateStyle(); +priceStyle.Number = 164; // Built‑in currency format "$#,##0.00" +``` + +*Varför inte bara sätta formatsträngen?* Att använda det inbyggda ID‑et säkerställer kompatibilitet över Excel‑versioner och undviker lokalspecifika egenheter. + +--- + +## Steg 4: Bygg stil‑arrayen (apply currency format column) + +När du importerar en `DataTable` kan du skicka en array av `Style`‑objekt – ett per kolumn. `null` betyder “använd standardstilen”. Här applicerar vi `priceStyle` endast på den andra kolumnen. + +```csharp +// Column 0 (Product) gets the default style, Column 1 (Price) gets the currency style +Style[] columnStyles = { null, priceStyle }; +``` + +Om du senare lägger till fler kolumner, utöka bara arrayen därefter. Längden på `columnStyles` måste matcha antalet kolumner du importerar, annars kastar Aspose ett undantag. + +--- + +## Steg 5: Importera DataTable med stilar (import datatable to excel) + +Nu händer magin – vår `DataTable` landar i kalkylbladet, och pris‑kolumnen visas omedelbart som valuta. + +```csharp +// Parameters: +// - dataTable: source data +// - true: include column headers +// - startRow: 0 (top of sheet) +// - startColumn: 0 (first column) +// - columnStyles: style array defined above +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +*Vad händer om du har fler än två kolumner?* Utöka bara `columnStyles` så att varje kolumn får rätt stil (eller `null` för standard). Detta är det renaste sättet att **add number format excel** selektivt. + +--- + +## Steg 6: Spara arbetsboken (create excel workbook c#) + +Till sist skriver vi filen till disk. Välj någon mapp du har skrivbehörighet till. + +```csharp +// Save the workbook as an XLSX file +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +Öppna `StyledTable.xlsx` i Excel så bör du se: + +| Produkt | Pris | +|---------|------| +| Apple | $1.23 | +| Banana | $0.78 | +| Cherry | $2.50 | + +**Price**‑kolumnen är redan formaterad som valuta – inga extra steg behövs. + +--- + +## Edge Cases & Variations + +### Fler kolumner, olika format + +Om du behöver **format cells currency** för flera kolumner (t.ex. Cost, Tax, Total), skapa ett separat `Style` för varje och fyll `columnStyles` därefter: + +```csharp +Style costStyle = workbook.CreateStyle(); +costStyle.Number = 164; // currency + +Style taxStyle = workbook.CreateStyle(); +taxStyle.Number = 164; + +// Assuming columns: Product, Cost, Tax, Total +Style[] styles = { null, costStyle, taxStyle, priceStyle }; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, styles); +``` + +### Lokalspecifik valuta + +För Euro eller brittiskt pund, använd andra inbyggda ID:n (t.ex. 165 för `€#,##0.00`). Alternativt kan du sätta en anpassad formatsträng: + +```csharp +priceStyle.Custom = "€#,##0.00"; +``` + +### Stora datamängder + +Aspose.Cells kan hantera miljoner rader, men minnesanvändningen växer med stil‑objekt. Återanvänd ett enda `Style`‑instans för alla valutakolumner för att hålla fotavtrycket lågt. + +### Saknade stilar + +Om `columnStyles` är kortare än antalet kolumner, kommer Aspose att applicera standardstilen på de återstående kolumnerna. Detta är praktiskt när du bara bryr dig om några få kolumner. + +--- + +## Fullt fungerande exempel (Alla steg kombinerade) + +Nedan är det kompletta programmet som du kan kopiera‑klistra in i en konsolapp. Det innehåller alla delar vi diskuterat, plus några hjälpsamma kommentarer. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // Step 1: Build sample DataTable (import datatable to excel) + // ------------------------------------------------- + DataTable dataTable = new DataTable(); + dataTable.Columns.Add("Product", typeof(string)); + dataTable.Columns.Add("Price", typeof(double)); + dataTable.Rows.Add("Apple", 1.23); + dataTable.Rows.Add("Banana", 0.78); + dataTable.Rows.Add("Cherry", 2.50); + // You can add as many rows as you like here. + + // ------------------------------------------------- + // Step 2: Create a new workbook (create excel workbook c#) + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // Step 3: Define a currency style (format cells currency) + // ------------------------------------------------- + Style priceStyle = workbook.CreateStyle(); + priceStyle.Number = 164; // "$#,##0.00" – built‑in currency format + + // ------------------------------------------------- + // Step 4: Build the style array (apply currency format column) + // ------------------------------------------------- + // First column gets default style (null), second column uses priceStyle. + Style[] columnStyles = { null, priceStyle }; + + // ------------------------------------------------- + // Step 5: Import the DataTable with the style array + // ------------------------------------------------- + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // ------------------------------------------------- + // Step 6: Save the workbook to disk + // ------------------------------------------------- + string outputPath = @"YOUR_DIRECTORY\StyledTable.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } +} +``` + +**Förväntat resultat:** När du öppnar `StyledTable.xlsx` visas `Price`‑kolumnen med dollartecken och två decimaler, exakt som instruktionen **format cells currency** krävde. + +--- + +## Vanliga frågor + +**Q: Fungerar detta med .NET Core?** +A: Absolut. Aspose.Cells är .NET‑standard kompatibel, så du kan rikta mot .NET 5, .NET 6 eller senare utan ändringar. + +**Q: Vad händer om min DataTable har 10 kolumner men jag bara vill formatera kolumn 5?** +A: Skapa en `Style[]` med längd 10, fyll positionerna 0‑4 och 6‑9 med `null`, och placera din anpassade stil på index 4 (nollbaserat). Aspose respekterar varje post. + +**Q: Kan jag dölja rubrikraden?** +A: Efter import, sätt `worksheet.Cells.Rows[0].Hidden = true;` eller skicka `false` för parametern `includeColumnNames` i `ImportDataTable`. + +--- + +## Slutsats + +Vi har just **created an Excel workbook C#**, importerat en `DataTable` och **applied a currency format column** med Aspose.Cells. De primära stegen – förbereda data, definiera en stil, bygga en stil‑array, importera med `ImportDataTable` och spara – täcker kärnan i de flesta Excel‑automatiseringsuppgifter. + +Från här kan du utforska: + +- **add number format excel** för datum eller procenttal +- Exportera flera kalkylblad i en enda fil +- Använda **format cells currency** med lokalspecifika symboler +- Automatisera diagramskapande baserat på samma data + +Prova dessa och du blir snabbt go‑to‑personen för Excel‑rapportering i ditt team. Har du ett eget knep du vill dela? Lägg en kommentar nedan – happy coding! + +![skapa excel arbetsbok c# skärmbild](image.png "skapa excel arbetsbok c#") + +{{< /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/swedish/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md b/cells/swedish/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md new file mode 100644 index 0000000000..d4201f5ef6 --- /dev/null +++ b/cells/swedish/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md @@ -0,0 +1,253 @@ +--- +category: general +date: 2026-03-30 +description: Skapa Excel-arbetsbok i C# snabbt genom att infoga JSON-data och spara + arbetsboken som XLSX. Lär dig hur du genererar Excel från JSON, skriver JSON till + Excel och infogar JSON i Excel. +draft: false +keywords: +- create excel workbook c# +- save workbook as xlsx +- generate excel from json +- write json to excel +- insert json into excel +language: sv +og_description: Skapa Excel-arbetsbok i C# snabbt genom att infoga JSON-data och spara + arbetsboken som XLSX. Följ den här steg‑för‑steg‑guiden för att generera Excel från + JSON. +og_title: Skapa Excel-arbetsbok C# – Infoga JSON och spara som XLSX +tags: +- Aspose.Cells +- C# +- Excel automation +title: Skapa Excel-arbetsbok C# – Infoga JSON och spara som XLSX +url: /sv/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Skapa Excel-arbetsbok C# – Infoga JSON och spara som XLSX + +Har du någonsin behövt **create Excel workbook C#** och dumpa någon JSON direkt i en cell? Du är inte ensam—utvecklare stöter ofta på samma problem när de har API‑payloads eller konfigurationsfiler som måste hamna i ett kalkylblad för rapportering eller delning. + +Den goda nyheten är att med Aspose.Cells kan du göra det på några få rader, **save workbook as XLSX**, och hålla hela processen typ‑säker. I den här handledningen kommer vi att **generate Excel from JSON**, **write JSON to Excel**, och visa dig de exakta stegen för att **insert JSON into Excel** utan krångliga strängkonkateneringar. + +## Vad den här guiden täcker + +Vi kommer att gå igenom: + +1. Ställa in en ny arbetsbok. +2. Lägga till en Smart Marker som förväntar sig JSON. +3. Mata en JSON‑array till markören. +4. Justera `SmartMarkerOptions` så att JSON‑en förblir i en cell. +5. Spara filen som en XLSX‑arbetsbok. + +I slutet kommer du att ha en färdig att använda `JsonSingleCell.xlsx`‑fil och ett robust mönster som du kan återanvända för alla JSON‑till‑Excel‑scenarier. Inga externa tjänster, bara ren C# och Aspose.Cells‑biblioteket. + +**Förutsättningar** + +- .NET 6+ (eller .NET Framework 4.6+). +- Visual Studio 2022 eller någon C#‑kompatibel IDE. +- NuGet‑paketet `Aspose.Cells` (gratis provversion eller licensierad version). + +Om du har dem, låt oss dyka in—ingen extra konfiguration krävs. + +--- + +## Steg 1: Skapa en ny arbetsbok i C# + +Det första du behöver är ett tomt arbetsboksobjekt. Tänk på det som en ny Excel‑fil som väntar på data. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is your empty Excel file +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; +``` + +**Varför detta är viktigt:** +`Workbook` är ingångspunkten för alla Excel‑operationer. Genom att skapa den först säkerställer du att det efterföljande **save workbook as xlsx**‑anropet har ett konkret objekt att serialisera. + +> **Proffstips:** Om du planerar att arbeta med flera blad kan du lägga till dem nu med `workbook.Worksheets.Add()`. + +--- + +## Steg 2: Placera en Smart Marker som förväntar sig JSON + +Smart Markers är platshållare som Aspose.Cells ersätter vid körning. Här talar vi om för den att leta efter en JSON‑sträng med namnet `data`. + +```csharp +// Put a Smart Marker in cell A1 – {{data:json}} tells Aspose to expect JSON +worksheet.Cells["A1"].PutValue("{{data:json}}"); +``` + +**Varför detta är viktigt:** +Suffixet `:json` talar om för motorn att det inkommande värdet är JSON, inte vanlig text. Detta är nyckeln till **write json to excel** utan manuell parsning. + +--- + +## Steg 3: Definiera JSON‑arrayen + +Nu skapar vi den JSON vi vill infoga. För demonstration använder vi en enkel lista med personer. + +```csharp +// Sample JSON array – could come from an API, file, or DB +string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; +``` + +**Edge case:** +Om din JSON innehåller dubbla citationstecken, se till att de är escapade (som visat) eller använd en verbatim‑sträng (`@"..."`) för att undvika kompileringsfel. + +--- + +## Steg 4: Konfigurera Smart Marker‑alternativ – Behåll hela arrayen + +Som standard skulle Aspose försöka expandera arrayen över rader. Vi vill att hela JSON‑strängen ska ligga i en enda cell, vilket är perfekt för **insert json into excel**‑scenarier där mottagaren senare kommer att parsra JSON‑en. + +```csharp +SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions +{ + // Treat the whole array as a single cell value + ArrayAsSingle = true +}; +``` + +**Varför detta är viktigt:** +`ArrayAsSingle = true` förhindrar radexpansion, vilket ger dig en ren JSON‑blob i en enda cell. Detta är avgörande när kalkylbladet är ett transportformat snarare än en rapport. + +--- + +## Steg 5: Bearbeta Smart Marker med JSON‑data + +Vi binder nu JSON‑en till markören och låter Aspose göra det tunga arbetet. + +```csharp +// Process the marker – the anonymous object maps "data" to our JSON string +worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); +``` + +**Vad som händer under huven:** +Aspose utvärderar platshållaren `{{data:json}}`, serialiserar `jsonData`‑strängen och skriver den i cell A1 med respekt för de alternativ vi angav. + +--- + +## Steg 6: Spara arbetsboken som en XLSX‑fil + +Till sist skriver vi arbetsboken till disk. Här kommer **save workbook as xlsx** in i bilden. + +```csharp +// Save the workbook – the extension determines the format (XLSX here) +workbook.Save("JsonSingleCell.xlsx"); +``` + +**Resultat:** +Öppna `JsonSingleCell.xlsx` i Excel, så ser du JSON‑arrayen exakt som vi definierade den, prydligt placerad i cell A1. + +--- + +## Fullt, körbart exempel + +Nedan är det kompletta programmet som du kan kopiera‑klistra in i en konsolapp. Det inkluderar alla stegen ovan och körs direkt (förutsatt att Aspose.Cells‑NuGet‑paketet är installerat). + +```csharp +using System; +using Aspose.Cells; + +namespace JsonToExcelDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add a Smart Marker that expects JSON + worksheet.Cells["A1"].PutValue("{{data:json}}"); + + // 3️⃣ Define the JSON array + string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; + + // 4️⃣ Configure options – keep array as a single cell value + SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions + { + ArrayAsSingle = true + }; + + // 5️⃣ Process the marker with the JSON payload + worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); + + // 6️⃣ Save the workbook as XLSX + workbook.Save("JsonSingleCell.xlsx"); + + Console.WriteLine("Excel file created successfully! Check JsonSingleCell.xlsx."); + } + } +} +``` + +**Förväntad utskrift i Excel** + +| A | +|---| +| `[{"Name":"John","Age":30},{"Name":"Jane","Age":28}]` | + +Den enda cellen innehåller nu en perfekt giltig JSON‑array redo för vidare bearbetning. + +--- + +## Vanliga frågor & edge‑cases + +### Vad händer om jag behöver JSON spridd över rader? + +Ställ in `ArrayAsSingle = false` (standard). Aspose kommer att skapa en rad för varje array‑element och mappa objektets egenskaper till kolumner. Detta är praktiskt när du vill ha en tabellvy istället för en rå JSON‑sträng. + +### Kan jag använda en JSON‑fil istället för en hårdkodad sträng? + +Absolut. Läs in filen till en sträng: + +```csharp +string jsonData = File.ReadAllText("people.json"); +``` + +Skicka sedan `jsonData` till samma `Process`‑anrop. Resten av pipeline förblir oförändrad. + +### Fungerar detta med stora JSON‑payloads? + +Ja, men håll koll på minnesanvändningen. För enorma arrayer, överväg att strömma data eller skriva direkt till rader (`ArrayAsSingle = false`) för att undvika en enda gigantisk cell som Excel kan ha problem med. + +### Är den genererade XLSX‑filen kompatibel med äldre Excel‑versioner? + +`.xlsx`‑formatet är baserat på Office Open XML och fungerar med Excel 2007 och framåt. Om du behöver det äldre `.xls`‑formatet, ändra spara‑anropet: + +```csharp +workbook.Save("JsonSingleCell.xls", SaveFormat.Excel97To2003); +``` + +--- + +## Proffstips för att arbeta med JSON och Excel + +- **Validate JSON first** – använd `System.Text.Json.JsonDocument.Parse(jsonData)` för att fånga felaktig inmatning tidigt. +- **Escape special characters** – om din JSON innehåller radbrytningar kommer de att visas som den bokstavliga `\n` i cellen; du kan ersätta dem med `Environment.NewLine` innan bearbetning. +- **Reuse Smart Markers** – du kan placera flera markörer i samma blad, var och en pekande på en annan JSON‑egenskap. +- **Combine with formulas** – när JSON‑en är i en cell kan du använda Excels `FILTERXML` (i nyare versioner) för att parsra den i farten. + +--- + +## Slutsats + +Du vet nu hur du **create excel workbook c#**, bäddar in en JSON‑payload och **save workbook as xlsx** med Aspose.Cells. Detta mönster låter dig **generate excel from json**, **write json to excel**, och **insert json into excel** med bara några få kodrader, vilket gör datautbyte mellan tjänster och analytiker smärtfritt. + +Redo för nästa steg? Prova att konvertera JSON‑arrayen till en riktig tabell (ställ in `ArrayAsSingle = false`) eller utforska formatering av bladet efter infogning. Samma tillvägagångssätt fungerar för CSV, XML eller till och med anpassade objekt—justera bara Smart Marker‑typen. + +Lycka till med kodandet, och känn dig fri att experimentera! Om du stöter på problem, lämna en kommentar nedan eller kolla in Asposes officiella dokumentation för djupare insikter i Smart Markers. + +{{< /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/swedish/net/excel-workbook/_index.md b/cells/swedish/net/excel-workbook/_index.md index 1e4aa5269d..f72b1af2d8 100644 --- a/cells/swedish/net/excel-workbook/_index.md +++ b/cells/swedish/net/excel-workbook/_index.md @@ -86,6 +86,7 @@ Så varför inte ta chansen att förbättra dina Excel-kunskaper? Varje handledn | [Förhandsgranskning av arbetsbok](./workbook-print-preview/) | Lär dig hur du skapar förhandsgranskningar för Excel-filer med Aspose.Cells för .NET. Lär dig kodningssteg i en detaljerad och lättförståelig handledning. | | [Arbeta med egenskaper för innehållstyp](./working-with-content-type-properties/) | Lär dig hur du använder Aspose.Cells för .NET för att arbeta med innehållstypsegenskaper för förbättrad hantering av Excel-metadata. Följ den här enkla steg-för-steg-guiden. | | [Stöd för Xades Signature](./xades-signature-support/) | Lär dig hur du lägger till Xades-signaturer i Excel-filer med Aspose.Cells för .NET med den här steg-för-steg-guiden. Säkra dina dokument. | +| [Skapa huvudblad i C# – Komplett Aspose.Cells-guide](./create-master-sheet-in-c-complete-aspose-cells-guide/) | Lär dig hur du skapar ett master‑blad i Excel med Aspose.Cells för .NET i C# med en steg‑för‑steg‑guide. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/swedish/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md b/cells/swedish/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md new file mode 100644 index 0000000000..f498eab168 --- /dev/null +++ b/cells/swedish/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md @@ -0,0 +1,251 @@ +--- +category: general +date: 2026-03-30 +description: Skapa ett huvudblad med Aspose.Cells i C#. Lär dig hur du skapar en Excel‑arbetsbok + i C#, tillåter dubblettbladnamn och sparar arbetsboken som XLSX i några enkla steg. +draft: false +keywords: +- create master sheet +- create excel workbook c# +- save workbook as xlsx +- allow duplicate sheet names +language: sv +og_description: Skapa huvudblad med Aspose.Cells i C#. Denna guide visar hur man skapar + en Excel-arbetsbok i C#, tillåter duplicerade bladnamn och sparar arbetsboken som + XLSX. +og_title: Skapa huvudblad i C# – Komplett Aspose.Cells-guide +tags: +- Aspose.Cells +- C# +- Excel automation +title: Skapa huvudblad i C# – Komplett Aspose.Cells-guide +url: /sv/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Skapa huvudblad i C# – Komplett Aspose.Cells‑guide + +Har du någonsin behövt **skapa huvudblad** i en Excel‑fil men varit osäker på hur du ska hantera en massa detaljblad som delar samma basnamn? Du är inte ensam. I många rapporteringsscenario slutar du med dussintals detaljflikar, och standardbeteendet i de flesta bibliotek är att kasta ett undantag när två blad skulle få samma namn. + +Lyckligtvis gör Aspose.Cells det enkelt att **skapa huvudblad**, konfigurera motorn för att **tillåta duplicerade bladnamn**, och sedan **spara arbetsboken som XLSX** – allt från ren C#‑kod. I den här handledningen går vi igenom ett fullt körbart exempel, förklarar varför varje rad är viktig, och ger dig några tips som du kan kopiera rakt in i dina egna projekt. + +> **Vad du får med dig** +> * Hur du **skapar Excel‑arbetsbok C#‑stil** med Aspose.Cells. +> * Hur du bäddar in en smart‑marker som skapar ett detaljblad för varje datarad. +> * Hur du sätter `DetailSheetNewName = DuplicateAllowed` så biblioteket automatiskt lägger till ett numeriskt suffix. +> * Hur du **sparar arbetsboken som XLSX** på disk utan extra steg. + +Ingen extern dokumentation behövs – allt du behöver finns här. + +--- + +## Förutsättningar + +Innan vi dyker ner, se till att du har: + +| Krav | Varför det är viktigt | +|------|-----------------------| +| .NET 6.0 eller senare (eller .NET Framework 4.7+) | Aspose.Cells 23.x+ riktar sig mot dessa runtime‑miljöer. | +| Visual Studio 2022 (eller någon C#‑IDE) | För enkel projektskapning och felsökning. | +| Aspose.Cells för .NET NuGet‑paket (`Install-Package Aspose.Cells`) | Biblioteket som driver all smart‑marker‑magik. | +| Grundläggande kunskaper i C# | Du förstår syntaxen utan en crash‑course. | + +Om du saknar något av detta, lägg till det nu – det är ingen idé att fortsätta med en halvgod miljö. + +--- + +## Steg 1: Skapa huvudblad med Aspose.Cells + +Det första vi gör är att **skapa Excel‑arbetsbok C#‑stil** genom att instansiera ett `Workbook`‑objekt. Detta objekt innehåller redan ett standardblad, som vi byter namn till “Master” och använder som mall för alla detaljsidor. + +```csharp +using Aspose.Cells; + +// Step 1: Initialise a new workbook – this automatically gives us one sheet +Workbook workbook = new Workbook(); + +// Grab the first (and only) worksheet that comes with a fresh workbook +Worksheet masterSheet = workbook.Worksheets[0]; + +// Give it a meaningful name – this will be our master sheet +masterSheet.Name = "Master"; +``` + +*Varför byta namn på bladet?* +Ett standardnamn som “Sheet1” förmedlar ingen avsikt, och senare när du skannar filen vill du att huvudfliken ska vara omedelbart igenkännbar. Namngivning förhindrar också oavsiktliga kollisioner när du senare lägger till fler blad. + +--- + +## Steg 2: Förbered smart‑markern som ska skapa detaljblad + +Smart‑markers är platshållare som Aspose.Cells ersätter med data vid körning. Genom att placera `{{#detail:DataSheetName}}` i cell **A1**, säger vi till motorn: “För varje post i datakällan, skapa ett nytt blad vars namn hämtas från fältet `DataSheetName`.” + +```csharp +// Step 2: Insert a smart‑marker into cell A1. +// The marker #detail tells Aspose.Cells to generate a new sheet per data row. +masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); +``` + +Tänk på markören som ett litet instruktionskort som sitter på arbetsbladet. När processorn körs läser den kortet, hämtar rätt värde från datakällan och klonar sedan huvudbladet till en ny flik. + +--- + +## Steg 3: Bygg datakällan – duplicerade bladnamn med avsikt + +I verkligheten kanske du hämtar detta från en databas, men för demonstrationen använder vi en in‑memory‑array av anonyma objekt. Observera att båda objekten använder samma basnamn `"Detail"`; detta är scenariot där **tillåta duplicerade bladnamn** blir avgörande. + +```csharp +// Step 3: Create a data source with two items that share the same base sheet name. +var dataSource = new[] +{ + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } +}; +``` + +Om du provade detta utan några speciella alternativ skulle Aspose.Cells kasta ett undantag på den andra iterationen eftersom ett blad med namnet “Detail” redan finns. Därför är nästa steg viktigt. + +--- + +## Steg 4: Aktivera duplicerade bladnamn + +Aspose.Cells exponerar `SmartMarkerOptions.DetailSheetNewName`. Genom att sätta den till `DetailSheetNewName.DuplicateAllowed` talar du om för motorn att automatiskt lägga till ett numeriskt suffix (t.ex. “Detail_1”) när en namnkonflikt uppstår. + +```csharp +// Step 4: Configure SmartMarker options to permit duplicate sheet names. +var smartMarkerOptions = new SmartMarkerOptions +{ + // This makes the library rename clashes to "Detail_1", "Detail_2", etc. + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed +}; +``` + +*Varför inte bara ge varje rad ett unikt namn manuellt?* +För att källdata ofta inte garanterar unikhet, särskilt när användare matar in fri text. Att låta biblioteket hantera suffixet eliminerar en hel klass av buggar. + +--- + +## Steg 5: Processa smart‑markers och generera detaljbladen + +Nu anropar vi `SmartMarkers.Process`, och skickar både datakällan och de alternativ vi just konfigurerat. Metoden går igenom varje post, klonar huvudbladet och byter namn på klonen enligt fältet `DataSheetName` (plus ett suffix om det behövs). + +```csharp +// Step 5: Run the smart‑marker processor – this creates the detail sheets. +masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); +``` + +När den här raden har körts har du tre flikar i arbetsboken: + +1. **Master** – den ursprungliga mallen. +2. **Detail** – första genererade bladet (inget suffix behövs). +3. **Detail_1** – andra genererade bladet (suffix har lagts till automatiskt). + +Du kan verifiera detta genom att öppna filen i Excel; du kommer att se de två detaljbladen sida‑vid‑sida. + +--- + +## Steg 6: Spara arbetsboken som XLSX‑fil + +Till sist sparar vi filen på disk. `Save`‑metoden väljer automatiskt XLSX‑formatet när du ger den en `.xlsx`‑filändelse. + +```csharp +// Step 6: Persist the workbook – this is the moment we finally “save workbook as XLSX”. +string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; +workbook.Save(outputPath); +``` + +**Proffstips:** Om du behöver streama filen direkt till ett webbsvar (t.ex. ASP.NET Core), använd `workbook.Save(stream, SaveFormat.Xlsx)` istället för en filsökväg. + +--- + +## Fullt fungerande exempel + +Nedan är det kompletta, körklara programmet. Kopiera‑klistra in det i en konsolapp, tryck F5 och öppna den genererade filen för att se resultatet. + +```csharp +using System; +using Aspose.Cells; + +namespace MasterSheetDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook and rename the default sheet to "Master" + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert a smart‑marker that will generate a detail sheet per data row + masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); + + // 3️⃣ Prepare a data source where two rows share the same sheet name + var dataSource = new[] + { + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } + }; + + // 4️⃣ Allow duplicate sheet names – the library will add "_1", "_2", … + var smartMarkerOptions = new SmartMarkerOptions + { + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed + }; + + // 5️⃣ Process the smart‑markers; this creates the detail sheets + masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); + + // 6️⃣ Save the workbook as an XLSX file + string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Förväntat resultat:** Öppna `DuplicateDetailSheets.xlsx` och du kommer att se tre arbetsblad – `Master`, `Detail` och `Detail_1`. Varje detaljblad är en exakt kopia av mallen, redo att fyllas med rad‑specifik data senare. + +--- + +## Vanliga frågor & kantfall + +### Vad händer om jag behöver fler än två duplicerade blad? + +Inga problem. Samma `DuplicateAllowed`‑inställning fortsätter att lägga till inkrementella siffror (`Detail_2`, `Detail_3`, …) tills varje rad har sin egen flik. + +### Kan jag anpassa suffixformatet? + +Som standard använder Aspose.Cells ett understreck följt av ett numeriskt index. Om du behöver ett annat mönster (t.ex. “Detail‑A”, “Detail‑B”) måste du efterbehandla arbetsboken efter att `Process` har körts, iterera över `workbook.Worksheets` och byta namn enligt dina önskemål. + +### Fungerar detta för stora datamängder (hundratals rader)? + +Ja, men håll koll på minnesanvändningen. Varje genererat blad är en fullständig kopia av mallen, så ett stort antal rader kan snabbt öka filstorleken. Om du bara behöver några rader per blad, överväg att sätta `SmartMarkerOptions.RemoveEmptyRows = true` för att trimma onödiga celler. + +### Är den genererade filen verkligen en XLSX‑fil? + +Absolut. `Save`‑metoden skriver Open XML‑paketet som Excel förväntar sig. Du kan även öppna filen i LibreOffice eller Google Sheets utan någon konvertering. + +--- + +## Tips för produktionsklar kod + +| Tips | Varför det är viktigt | +|------|-----------------------| +| **Dispose `Workbook`** | För att frigöra resurser och undvika minnesläckor. | +| Använd `using`‑block eller `workbook.Dispose()` när du är klar. | | +| Sätt `SmartMarkerOptions.RemoveEmptyRows = true` om du vill minska filstorleken. | | +| Logga eventuella `SmartMarkerException` för felsökning. | | +| Testa med olika datamängder innan du kör i produktionsmiljö. | | + +--- + +{{< /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/swedish/net/formulas-functions/_index.md b/cells/swedish/net/formulas-functions/_index.md index 90a3ddaca9..33ccd77722 100644 --- a/cells/swedish/net/formulas-functions/_index.md +++ b/cells/swedish/net/formulas-functions/_index.md @@ -45,7 +45,7 @@ Lär dig hur du programmatiskt extraherar formeltext från Excel-filer med Aspos ### [Automatisera Excel-uppgifter med Aspose.Cells .NET: Ställ in formler i intervall](./aspose-cells-net-set-formulas-ranges) Lär dig hur du automatiserar inställningen av formler i intervall med Aspose.Cells för .NET. Effektivisera dina Excel-arbetsflöden effektivt med C# genom att tillämpa samma formel på flera celler samtidigt. -### [Effektiv CSV-import med formler med hjälp av Aspose.Cells .NET Guide](./csv-imports-formulas-aspose-cells-net-guide) +### [Effektiv CSV-import med förmler med hjälp av Aspose.Cells .NET Guide](./csv-imports-formulas-aspose-cells-net-guide) Lär dig hur du importerar CSV-filer som innehåller komplexa formler till Excel med Aspose.Cells för .NET utan att förlora funktionalitet. Bemästra hur du bevarar formellogik under dataimport. ### [Anpassa cellformler i Aspose.Cells .NET: Guide till globaliseringsinställningar](./custom-aspose-cells-net-globalization-settings) @@ -102,64 +102,8 @@ Lär dig hur du anger språket för dina Excel-filer med Aspose.Cells .NET. För ### [Uppdatera Excel Power Query-formler med Aspose.Cells .NET](./update-power-query-formulas-aspose-cells-net) Lär dig hur du programmatiskt uppdaterar Power Query-formler i Excel-arbetsböcker med Aspose.Cells för .NET. Hantering av huvuddatakällor för dynamisk rapportering. -## Förstå Excel-formeltyper - -Excel-formler finns i olika former, var och en med unika egenskaper som Aspose.Cells kan hantera: - -### Standardcellformler - -Dessa är de vanligaste formlerna som fungerar på enskilda celler: - -- **Aritmetiska formler**Grundläggande beräkningar som `=A1+B1` -- **Funktionsbaserade formler**Använda inbyggda funktioner som `=SUM(A1:A10)` -- **Logiska formler**Villkorlig logik med funktioner som `=IF(A1>10,"High","Low")` -- **Textformler**Textmanipulation med funktioner som `=CONCATENATE(A1," ",B1)` - -### Intervallbaserade formler - -Dessa formler fungerar med cellområden: - -- **Aggregeringsformler**Funktioner som `=AVERAGE(A1:A100)` som bearbetar flera celler -- **Sökformler**Referensfunktioner som `=VLOOKUP(E1,A1:B20,2,FALSE)` för datainsamling -- **Databasformler**Specialiserade funktioner som `=DSUM(A1:F100,"Amount",G1:H2)` för filtrering och beräkning - -### Matrisformler - -Matrisformler utför beräkningar på flera värden samtidigt: - -- **Formel för encellig array**Returnerar ett resultat men bearbetar arrayer internt -- **Formel för flercellsmatriser**Fyller flera celler med relaterade resultat -- **Dynamiska arrayer**Moderna Excel-formler som automatiskt överför resultat till angränsande celler - -### Namngivna formler - -Dessa formler använder namngivna områden eller definierade namn: - -- **Referenser till namngivna områden**Använda definierade namn som `=SUM(SalesData)` -- **Strukturerade referenser**Tabellreferenser som `=SUM(Table1[Amount])` -- **Dynamiska namngivna områden**Formler som justeras automatiskt med datastorlek - -## Bästa praxis för formelhantering - -### Prestandaoptimering - -För att säkerställa effektiv hantering av formeln: - -1. **Inställning av batchformel**Tillämpa formler på områden istället för cell för cell -2. **Beräkna selektivt**Använd riktad beräkning när det är möjligt istället för fullständig omberäkning -3. **Minimera flyktiga funktioner**Begränsa användningen av funktioner som NOW() eller RAND() som utlöser omberäkning -4. **Använd delade formler**Utnyttja delade formelfunktioner för minneseffektivitet - -### Formelns tillförlitlighet - -För robust formelimplementering: - -1. **Felhantering**Implementera hantering av formelfel med OMFEL eller liknande funktioner -2. **Cellberoendeanalys**Förstå formelberoenden för att undvika cirkulära referenser -3. **Formelgranskning**Verifiera formellogik före distribution -4. **Dokumentation**Upprätthåll tydlig dokumentation av komplexa formelstrukturer - -Genom att bemästra dessa formelfunktioner med Aspose.Cells för .NET kan du skapa sofistikerade beräkningsmotorer i dina kalkylblad som ger exakta, dynamiska resultat utan att behöva installera Excel. +### [Skapa Excel-arbetsbok i C# – Lambda, SEQUENCE & EXPAND-guide](./create-excel-workbook-c-lambda-sequence-expand-guide/) +Lär dig hur du skapar en Excel-arbetsbok i C# och använder de nya Lambda-, SEQUENCE- och EXPAND-funktionerna med Aspose.Cells. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/swedish/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md b/cells/swedish/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md new file mode 100644 index 0000000000..afcfc5fda2 --- /dev/null +++ b/cells/swedish/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-30 +description: Skapa en Excel-arbetsbok i C# med Aspose.Cells. Lär dig att använda lambda‑funktionen + i Excel, sekvensfunktionen i Excel, expandera array i Excel och spara arbetsboken + som xlsx. +draft: false +keywords: +- create excel workbook c# +- lambda function excel +- save workbook as xlsx +- sequence function excel +- expand array excel +language: sv +og_description: Skapa en Excel‑arbetsbok i C# snabbt. Den här guiden visar hur du + använder lambda‑funktionen i Excel, sekvens‑funktionen i Excel, expanderar en array + i Excel och sparar arbetsboken som xlsx. +og_title: Skapa Excel-arbetsbok C# – Lambda, SEQUENCE & EXPAND-guide +tags: +- Aspose.Cells +- C# +- Excel automation +title: Skapa Excel-arbetsbok C# – Lambda, SEQUENCE & EXPAND-guide +url: /sv/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Skapa Excel-arbetsbok C# – Lambda, SEQUENCE & EXPAND‑guide + +Har du någonsin behövt **skapa Excel-arbetsbok C#** för en automatiserad rapport, men varit osäker på vilka API‑anrop du ska använda? Du är inte ensam—många utvecklare stöter på samma hinder när de först dyker in i programmatisk Excel‑generering. I den här guiden får du ett komplett, körbart exempel som täcker allt från den nya **SEQUENCE‑funktionen i Excel** till den kraftfulla **LAMBDA‑funktionen i Excel**, och även hur du **expanderar array‑resultat i Excel**. + +Vi visar också exakt hur du **sparar arbetsboken som xlsx** så att du kan överlämna filen till vem som helst som använder Excel. I slutet av tutorialen har du ett stabilt, produktionsklart kodsnutt som du kan klistra in i vilket .NET‑projekt som helst. Inga vaga “se dokumentationen”-länkar—bara kod som fungerar idag. + +## Vad du behöver + +- **.NET 6.0 eller senare** – exemplet riktar sig mot .NET 6, men vilken recent version som helst fungerar. +- **Aspose.Cells för .NET** – installera via NuGet (`Install-Package Aspose.Cells`). +- Grundläggande förståelse för C#‑syntax (variabler, objekt och lambda‑uttryck). +- En IDE du är bekväm med (Visual Studio, Rider eller VS Code). + +Det är allt. Ingen extra COM‑interop, ingen Office‑installation på servern—Aspose.Cells hanterar allt i minnet. + +## Skapa Excel-arbetsbok C# – Steg‑för‑steg‑implementation + +Nedan delar vi upp processen i lagom stora steg. Varje steg har en tydlig rubrik, ett kort kodexempel och en förklaring av **varför** vi gör det. Kopiera gärna hela blocket i slutet och kör det som en konsolapp. + +### Steg 1 – Initiera en ny arbetsbok + +Först och främst: vi behöver ett tomt arbetsboksobjekt som representerar Excel‑filen i minnet. + +```csharp +using Aspose.Cells; + +// Step 1: Create a new workbook and get the first worksheet +Workbook workbook = new Workbook(); // empty workbook +Worksheet sheet = workbook.Worksheets[0]; // default first sheet +``` + +*Varför detta är viktigt:* `Workbook` är startpunkten för alla Aspose.Cells‑operationer. Genom att hämta den första `Worksheet` får vi en canvas där vi kan skriva formler, värden eller formatering. + +> **Proffstips:** Om du behöver flera blad, anropa bara `workbook.Worksheets.Add()` och behåll en referens till varje. + +### Steg 2 – Använd SEQUENCE‑funktionen i Excel för att generera data + +Den **sequence function excel** skapar en dynamisk array av tal utan någon VBA. Vi placerar den i cell `A1` och låter Excel expandera den automatiskt. + +```csharp +// Step 2: Generate a 5‑row, 1‑column array from a SEQUENCE +sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; // 1..3 padded with blanks +``` + +*Varför detta är viktigt:* `SEQUENCE(3)` ger `[1,2,3]`. Genom att omsluta den med `EXPAND` tvingas resultatet in i ett 5‑radigt område, där de extra raderna fylls med tomma celler. Detta demonstrerar både **sequence function excel** och **expand array excel** i ett svep. + +### Steg 3 – Aggregera tal med LAMBDA‑funktionen i Excel + +Nu visar vi **lambda function excel**‑kapaciteten. Vi summerar talen 1‑5 med den nya `REDUCE`‑funktionen, som internt använder en lambda. + +```csharp +// Step 3: Aggregate a sequence (sum 1..5) using REDUCE/LAMBDA +sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; // result = 15 +``` + +*Varför detta är viktigt:* `REDUCE` itererar över arrayen som produceras av `SEQUENCE(5)`, och matar varje element (`b`) in i lambda‑uttrycket tillsammans med ackumulatorn (`a`). Lambdan `a+b` adderar dem, vilket lämnar `15` i `B1`. Detta är ett rent, formel‑endast sätt att utföra reduceringar utan loopar i C#. + +### Steg 4 – Applicera trigonometriska funktioner direkt i celler + +Excels inbyggda matematiska funktioner är praktiska för snabba beräkningar. Vi placerar en kotangens och en hyperbolisk kotangens i intilliggande celler. + +```csharp +// Step 4: Trigonometric functions directly in Excel cells +sheet["C1"].Formula = "COT(PI()/4)"; // evaluates to 1 +sheet["D1"].Formula = "COTH(1)"; // hyperbolic cotangent of 1 +``` + +*Varför detta är viktigt:* Visar att du kan blanda klassiska matematiska funktioner med de nyare dynamiska array‑formlerna. Ingen anledning att beräkna dessa värden i C# om du inte har ett specifikt prestandaskäl. + +### Steg 5 – Beräkna alla formler + +Aspose.Cells utvärderar inte automatiskt formler när du sätter dem. Du måste be den att beräkna. + +```csharp +// Step 5: Force calculation so that cells store the results +workbook.CalculateFormula(); +``` + +*Varför detta är viktigt:* Efter detta anrop innehåller varje cells `Value`‑egenskap det utvärderade resultatet, redo att sparas eller läsas tillbaka. + +### Steg 6 – Spara arbetsboken som Xlsx + +Till sist persisterar vi arbetsboken till disk med **save workbook as xlsx**‑mönstret. + +```csharp +// Step 6: Save the workbook to an Excel file (XLSX format) +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + +workbook.Save(outputPath); +Console.WriteLine($"Workbook saved to: {outputPath}"); +``` + +*Varför detta är viktigt:* `Save`‑metoden upptäcker automatiskt filändelsen. Genom att använda “.xlsx” säkerställer vi att filen är kompatibel med moderna Excel‑versioner. Sökvägen pekar på skrivbordet för enkel åtkomst under testning. + +### Fullt fungerande exempel + +Nedan är hela programmet som du kan klistra in i ett nytt konsolprojekt. Det innehåller alla stegen ovan, plus ett litet verifieringsblock som skriver ut de beräknade värdena till konsolen. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialize workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + + // SEQUENCE + EXPAND + sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; + + // REDUCE with LAMBDA + sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; + + // Trig functions + sheet["C1"].Formula = "COT(PI()/4)"; + sheet["D1"].Formula = "COTH(1)"; + + // Calculate formulas + workbook.CalculateFormula(); + + // Verify results (optional) + Console.WriteLine("A1‑A5 (expanded SEQUENCE):"); + for (int i = 0; i < 5; i++) + { + Console.WriteLine($" Row {i + 1}: {sheet.Cells[i, 0].Value ?? "blank"}"); + } + Console.WriteLine($"B1 (sum 1‑5): {sheet["B1"].Value}"); + Console.WriteLine($"C1 (cot(π/4)): {sheet["C1"].Value}"); + Console.WriteLine($"D1 (coth(1)): {sheet["D1"].Value}"); + + // Save workbook + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + workbook.Save(outputPath); + Console.WriteLine($"Workbook saved to: {outputPath}"); + } +} +``` + +**Förväntad utskrift i konsolen** + +``` +A1‑A5 (expanded SEQUENCE): + Row 1: 1 + Row 2: 2 + Row 3: 3 + Row 4: blank + Row 5: blank +B1 (sum 1‑5): 15 +C1 (cot(π/4)): 1 +D1 (coth(1)): 1.31303528549933 +Workbook saved to: C:\Users\YourName\Desktop\NewFunctions.xlsx +``` + +Och när du öppnar *NewFunctions.xlsx* ser du samma siffror placerade i de fyra första kolumnerna. + +![skärmdump av den resulterande kalkylbladet](/images/create-excel-workbook-csharp.png) + +## Edge Cases, Tips och Vanliga Frågor + +- **Vad händer om jag behöver mer än ett blad?** + Anropa bara `workbook.Worksheets.Add()` och upprepa formel‑tilldelningarna på varje nytt `Worksheet`‑objekt. + +- **Kan jag använda äldre Excel‑versioner?** + De dynamiska array‑funktionerna (`SEQUENCE`, `EXPAND`, `REDUCE`) kräver Excel 365 eller Excel 2021+. Om du riktar dig mot äldre versioner, håll dig till klassiska formler eller beräkna värdena i C# innan du skriver dem. + +- **Prestanda‑bekymmer?** + För tusentals rader är det vanligtvis snabbare att sätta formler på ett område och sedan anropa `CalculateFormula` än att loopa och tilldela värden en‑och‑en. + +- **Spara till en ström istället för en fil?** + `work + +{{< /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/swedish/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md b/cells/swedish/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md new file mode 100644 index 0000000000..4c498e4515 --- /dev/null +++ b/cells/swedish/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md @@ -0,0 +1,210 @@ +--- +category: general +date: 2026-03-30 +description: Lär dig hur du använder WRAPCOLS i C# för att skapa en Excel-arbetsbok, + lägga till data i Excel och tvinga formelberäkning samtidigt som du använder WRAPROWS. +draft: false +keywords: +- how to use wrapcols +- create excel workbook c# +- add data to excel +- force formula calculation +- how to use wraprows +language: sv +og_description: Upptäck hur du använder WRAPCOLS i C# för att bygga en Excel-arbetsbok, + lägga till data, tvinga formelberäkning och utnyttja WRAPROWS för arrayformler. +og_title: Hur man använder WRAPCOLS i C# – Komplett guide +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Hur man använder WRAPCOLS i C# – Skapa Excel-arbetsbok med wrap-funktioner +url: /sv/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hur man använder WRAPCOLS i C# – Skapa Excel-arbetsbok med Wrap-funktioner + +Har du någonsin undrat **how to use WRAPCOLS** när du automatiserar Excel med C#? Du är inte ensam—många utvecklare stöter på problem när de behöver omvandla ett horisontellt område till en vertikal array utan att skriva massor av kod. Den goda nyheten är att Aspose.Cells gör det till en barnlek. + +I den här handledningen går vi igenom ett komplett, körbart exempel som visar **how to use WRAPCOLS**, hur man **create Excel workbook C#**‑style, hur man **add data to Excel**, och till och med hur man **force formula calculation** så att resultaten visas omedelbart. Vi kommer också att strö lite **how to use WRAPROWS** för den motsatta transformationen. I slutet har du ett färdigt program och en klar förståelse för varför varje steg är viktigt. + +--- + +![Exempel på hur man använder WRAPCOLS i C#](alt="Skärmbild som visar Excel-arbetsbok efter att ha använt WRAPCOLS i C#") + +## Vad den här guiden täcker + +* Att skapa en ny arbetsbok med Aspose.Cells. +* Att fylla celler programatiskt (**add data to Excel**). +* Att tillämpa `WRAPCOLS`‑funktionen för att omvandla en rad till en kolumn. +* Att använda `WRAPROWS` för att vända en kolumn tillbaka till en rad (**how to use wraprows**). +* Att tvinga motorn att utvärdera formler omedelbart (**force formula calculation**). +* Att spara filen och kontrollera resultatet. + +Ingen extern dokumentation behövs—allt du behöver finns här. + +--- + +## Hur man använder WRAPCOLS i C# – Steg‑för‑steg-implementation + +Nedan är den fullständiga källfilen. Kopiera‑klistra in den i ett nytt konsolprojekt, lägg till Aspose.Cells NuGet‑paketet och tryck **F5**. + +```csharp +// ------------------------------------------------------------ +// How to Use WRAPCOLS in C# – Complete Example +// ------------------------------------------------------------ +using System; +using Aspose.Cells; + +namespace WrapFunctionsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a fresh workbook (this is how we **create excel workbook c#** style) + Workbook workbook = new Workbook(); + + // 2️⃣ Grab the first worksheet – it's created by default + Worksheet sheet = workbook.Worksheets[0]; + + // 3️⃣ **Add data to Excel**: place two numbers side‑by‑side + sheet.Cells["A1"].PutValue(1); // first value + sheet.Cells["B1"].PutValue(2); // second value + + // 4️⃣ **How to use WRAPCOLS** – turn the horizontal range A1:B1 into a vertical array + // The second argument (1) tells WRAPCOLS to create 1 column per element. + sheet["C1"].Formula = "WRAPCOLS(A1:B1, 1)"; + + // 5️⃣ **How to use WRAPROWS** – the opposite; turn the same range into a horizontal array + // Here we ask for 2 rows per element, which produces a single row with both values. + sheet["C2"].Formula = "WRAPROWS(A1:B1, 2)"; + + // 6️⃣ **Force formula calculation** so the workbook reflects the results immediately + workbook.CalculateFormula(); + + // 7️⃣ Save the workbook to disk – change the path to a folder you own + string outputPath = @"WrapFunctions.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + Console.WriteLine("Check cells C1 and C2 for the WRAPCOLS / WRAPROWS results."); + } + } +} +``` + +### Varför varje rad är viktig + +| Steg | Förklaring | +|------|------------| +| **1️⃣ Skapa en ny arbetsbok** | Detta är grunden. Aspose.Cells behandlar ett `Workbook`‑objekt som hela Excel‑filen, så du effektivt **creating an Excel workbook C#**‑style. | +| **2️⃣ Hämta det första kalkylbladet** | En ny arbetsbok innehåller alltid minst ett kalkylblad (`Worksheets[0]`). Att komma åt det tidigt undviker null‑reference‑överraskningar. | +| **3️⃣ Lägg till data i Excel** | Genom att använda `PutValue` **add data to Excel** utan att oroa dig för cellformatering. Siffrorna `1` och `2` är våra testdata för wrap‑funktionerna. | +| **4️⃣ Hur man använder WRAPCOLS** | `WRAPCOLS(A1:B1, 1)` instruerar Excel att ta området `A1:B1` och sprida dess värden vertikalt, ett per rad. Resultatet hamnar i `C1` och sprids nedåt (`C1`, `C2`, …). | +| **5️⃣ Hur man använder WRAPROWS** | `WRAPROWS(A1:B1, 2)` gör motsatsen: den skapar en horisontell spill, placerar de två värdena i en enda rad som börjar på `C2`. | +| **6️⃣ Tvinga formelberäkning** | Som standard kan Aspose.Cells skjuta upp beräkning tills filen öppnas i Excel. Genom att anropa `CalculateFormula()` **forces formula calculation** så kan du läsa resultaten omedelbart efter sparning. | +| **7️⃣ Spara arbetsboken** | Det sista steget skriver allt till disk. Öppna den resulterande `WrapFunctions.xlsx` för att se resultatet. | + +--- + +## Skapa Excel-arbetsbok C# – Ställa in miljön + +Innan du kör koden, se till att du har rätt verktyg: + +1. **.NET 6.0+** – Den senaste LTS‑versionen fungerar bäst. +2. **Visual Studio 2022** (eller VS Code med C#‑tillägget). +3. **Aspose.Cells for .NET** – Installera via NuGet: + ```bash + dotnet add package Aspose.Cells + ``` +4. En skrivbar mapp för utdatafilen. + +Dessa förutsättningar är minimala; ingen COM‑interop eller Office‑installation krävs, vilket är anledningen till att Aspose.Cells är ett populärt val för server‑sidig Excel‑generering. + +--- + +## Lägg till data i Excel – Bästa praxis + +När du **add data to Excel** programatiskt, överväg dessa tips: + +* **Use `PutValue`** för råa tal eller strängar; den upptäcker automatiskt datatypen. +* **Avoid hard‑coding cell addresses** i stora projekt—använd loopar eller namngivna områden för skalbarhet. +* **Set cell styles sparingly**; varje stiländring medför overhead. Om du behöver formatering, skapa ett enda stilobjekt och applicera det på flera celler. + +I vårt lilla exempel infogar vi bara två siffror, men samma mönster kan skalas till tusentals rader. + +--- + +## Hur man använder WRAPROWS – Horisontellt array‑exempel + +Om du behöver motsatsen till `WRAPCOLS`, är `WRAPROWS` ditt val. Syntaxen är: + +``` +WRAPROWS(source_range, [rows_per_item]) +``` + +* `source_range` – området du vill transformera. +* `rows_per_item` – valfri; talar om för Excel hur många rader varje element upptar. I vår demo använde vi `2` för att tvinga båda värdena till en enda rad. + +Du kan experimentera genom att ändra det andra argumentet: + +```csharp +// Example: split each value into its own column, three rows per item +sheet["D1"].Formula = "WRAPROWS(A1:B1, 3)"; +``` + +Öppna arbetsboken så ser du att värdena sprids över tre kolumner, där varje kolumn innehåller de ursprungliga siffrorna upprepade efter behov. + +--- + +## Tvinga formelberäkning – När och varför + +Du kanske undrar, “Behöver jag verkligen anropa `CalculateFormula()`?” Svaret är **ja**, om: + +* Du planerar att läsa beräknade värden **programmatically** efter sparning. +* Du vill säkerställa att filen öppnas i Excel med de korrekta resultaten redan visade. +* Du kör i en **headless environment** (t.ex. ett web‑API) där ingen användare manuellt triggar en omberäkning. + +Att hoppa över detta steg förstör inte arbetsboken, men cellerna kommer att visa formeltexten (`=WRAPCOLS(...)`) istället för de beräknade värdena tills Excel omberäknar. + +--- + +## Förväntat resultat – Vad du ska leta efter + +Efter att ha kört programmet och öppnat `WrapFunctions.xlsx`: + +| Cell | Formel | Visat värde | +|------|--------|-------------| +| **C1** | `=WRAPCOLS(A1:B1, 1)` | `1` (i C1) och `2` (i C2) – en vertikal lista | +| **C2** | `=WRAPROWS(A1:B1, 2)` | `1` i C2 och `2` i D2 – en horisontell lista | + +Så du kommer att se en kolumn med värden som börjar på **C1** och en rad med värden som börjar på **C2**. Detta bekräftar att båda wrap‑funktionerna fungerade som förväntat. + +--- + +## Edge Cases & Variationer + +| Scenario | Vad förändras? | Föreslagen justering | +|----------|----------------|----------------------| +| **Stort område (A1:Z1)** | Fler värden att spilla vertikalt | Öka det andra argumentet för `WRAPCOLS` om du vill ha flera kolumner per grupp. | +| **Icke‑numerisk data** | Strängar hanteras på samma sätt | Ingen kodändring; `PutValue` accepterar vilket objekt som helst. | +| **Dynamiskt område** | Du vet inte storleken vid kompileringstid | Använd `sheet.Cells.MaxDataColumn` och `MaxDataRow` för att bygga adresssträngen. | +| **Flera kalkylblad** | Behöver tillämpa wrap‑funktioner på olika blad | Referera till rätt kalkylblad (`workbook.Worksheets["Sheet2"]`). | + +--- + +## Pro‑tips från frontlinjen + +* **Pro tip:** Wrappa skapandet av arbetsboken i ett `using`‑block om du riktar dig mot .NET Core 3.1+ för att säkerställa att alla resurser frigörs snabbt. +* **Watch out for:** Att sätta samma formel i ett stort område utan att anropa `CalculateFormula()` kan orsaka prestandaproblem. Batch‑processa formler när det är möjligt. +* **Tip:** If you need to read back the calculated values in code, call ` + +{{< /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/swedish/net/tables-and-lists/_index.md b/cells/swedish/net/tables-and-lists/_index.md index 2d2b2f916b..05ea111fc9 100644 --- a/cells/swedish/net/tables-and-lists/_index.md +++ b/cells/swedish/net/tables-and-lists/_index.md @@ -51,6 +51,8 @@ Konvertera enkelt tabeller till områden i Excel med Aspose.Cells för .NET med Lås upp kraften i Aspose.Cells för .NET. Lär dig läsa och skriva tabeller med frågedatakällor i den här detaljerade steg-för-steg-guiden. ### [Ange kommentar för tabell eller lista i Excel](./setting-comment-of-table-or-list/) Lär dig hur du anger kommentarer för tabeller i Excel med Aspose.Cells för .NET med vår enkla steg-för-steg-guide. +### [Skapa tabell från område i C# – Komplett Aspose.Cells-handledning](./create-table-from-range-in-c-complete-aspose-cells-tutorial/) +Lär dig skapa en Excel-tabell från ett område i C# med Aspose.Cells i denna kompletta steg‑för‑steg‑guide. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/swedish/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md b/cells/swedish/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md new file mode 100644 index 0000000000..8309a70a0f --- /dev/null +++ b/cells/swedish/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md @@ -0,0 +1,231 @@ +--- +category: general +date: 2026-03-30 +description: Skapa tabell från ett område i C# med Aspose.Cells – lägg till data i + celler, konvertera området till ett ListObject och spara Excel utan filter. +draft: false +keywords: +- create table from range +- create excel workbook c# +- add data to cells +- convert range to listobject +- save excel without filter +language: sv +og_description: Skapa tabell från område i C# med Aspose.Cells. Lär dig hur du lägger + till data i celler, konverterar ett område till ett ListObject och sparar Excel + utan filter. +og_title: Skapa tabell från område i C# – Komplett Aspose.Cells-handledning +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Skapa tabell från område i C# – Komplett Aspose.Cells-handledning +url: /sv/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Skapa tabell från område i C# – Komplett Aspose.Cells-handledning + +Har du någonsin behövt **create table from range** i C# men varit osäker på hur du omvandlar ett enkelt datablok till en fullt utrustad Excel‑tabell? Du är inte ensam. Oavsett om du automatiserar rapporter, genererar poängkort eller bara rensar data för vidare analys, kan behärskning av detta lilla trick spara dig mycket manuellt arbete. + +I den här guiden går vi igenom hela processen: **create excel workbook c#**, **add data to cells**, **convert range to ListObject** och slutligen **save excel without filter**. När du är klar har du ett färdigt kodexempel som du kan klistra in i vilket .NET‑projekt som helst som refererar till Aspose.Cells. + +--- + +## Förutsättningar + +- .NET 6+ (eller .NET Framework 4.7.2+) installerat +- Aspose.Cells för .NET (NuGet‑paket `Aspose.Cells`) – den senaste versionen vid skrivtillfället (23.10) fungerar perfekt. +- Grundläggande förståelse för C#‑syntax – ingen djup kunskap om Excel‑interop krävs. + +Om du har detta, låt oss börja. + +--- + +## Steg 1: Skapa en Excel‑arbetsbok i C# + +Först behöver vi ett nytt arbetsboksobjekt. Tänk på det som den tomma Excel‑filen som så småningom kommer att innehålla vår tabell. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is equivalent to opening a blank .xlsx file. +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (default) worksheet. +``` + +> **Pro tip:** `Workbook()` utan argument skapar en arbetsbok med ett standardarbetsblad, vilket är perfekt för snabba demonstrationer. Om du behöver flera blad kan du lägga till dem senare med `workbook.Worksheets.Add()`. + +--- + +## Steg 2: Lägg till data i celler + +Nu fyller vi bladet med en liten datamängd – två kolumner (Name, Score) och tre rader med värden. Detta demonstrerar **add data to cells** på ett rent och läsbart sätt. + +```csharp +// Header row +worksheet.Cells["A1"].PutValue("Name"); +worksheet.Cells["B1"].PutValue("Score"); + +// Data rows +worksheet.Cells["A2"].PutValue("Alice"); +worksheet.Cells["B2"].PutValue(85); +worksheet.Cells["A3"].PutValue("Bob"); +worksheet.Cells["B3"].PutValue(92); +``` + +Varför använda `PutValue`? Det upptäcker automatiskt datatypen (string vs. numerisk) och formaterar cellen därefter, vilket sparar dig från att pilla med `Style`‑objekt för enkla scenarier. + +> **Förväntat resultat:** Efter detta steg, om du öppnar arbetsboken i Excel kommer du att se ett två‑kolumns rutnät med rubrikerna “Name” och “Score”, följt av två rader med data. + +--- + +## Steg 3: Konvertera området till ett ListObject (Tabell) + +Här sker magin: att omvandla det enkla området till en Excel‑tabell (kallas ett **ListObject** i Aspose.Cells‑API). Detta lägger inte bara till visuell stil utan möjliggör även inbyggda funktioner som sortering, filtrering och strukturerade referenser. + +```csharp +// Define the range boundaries. +// startRow and startColumn are zero‑based indexes. +// rowCount includes the header row. +int startRow = 0; // Row 1 in Excel +int startColumn = 0; // Column A +int rowCount = 3; // Header + 2 data rows +int columnCount = 2; // Two columns: Name & Score + +// Add a ListObject to the worksheet and retrieve the object. +int listIndex = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); +ListObject table = worksheet.ListObjects[listIndex]; + +// Turn on the UI filter dropdowns so users can interact with the table. +table.ShowAutoFilter = true; +``` + +> **Varför använda ett ListObject?** +> - **Strukturerade referenser**: Formler kan referera till kolumner med namn. +> - **Auto‑filter‑UI**: Användare får rullgardinspilar för snabb filtrering. +> - **Stil**: Du kan tillämpa inbyggda tabellstilar med en enda rad senare. + +--- + +## Steg 4: Ta bort AutoFilter‑UI (Spara Excel utan filter) + +Ibland behöver du ett rent blad utan filterpilar – till exempel när arbetsboken är en slutrapport. Aspose.Cells 23.10 introducerade ett enkelt sätt att helt ta bort filter‑UI. + +```csharp +// Remove the filter UI completely. +table.AutoFilter = null; // Clears the underlying filter object. +table.ShowAutoFilter = false; // Hides the dropdown arrows. +``` + +Observera att vi inte raderar data; vi stänger bara av de visuella filterkontrollerna. Detta uppfyller kravet **save excel without filter**. + +--- + +## Steg 5: Spara arbetsboken + +Till sist skriver vi arbetsboken till disk. Filen kommer att innehålla tabellen men utan någon filter‑UI. + +```csharp +// Choose a folder you have write access to. +string outputPath = @"C:\Temp\NoAutoFilter.xlsx"; +workbook.Save(outputPath); +``` + +Öppna `NoAutoFilter.xlsx` i Excel – du kommer att se tabellen med standardformatering, men utan filterpilar. Data är intakt och filen är klar för distribution. + +--- + +![Skärmbild som visar skapa tabell från område i Excel med Aspose.Cells](image.png "Skärmbild av skapa tabell från område") + +*Bildtext:* **Skärmbild som visar skapa tabell från område i Excel med Aspose.Cells** – visuell bevisning på att tabellen finns utan filterrullgardiner. + +--- + +## Fullt, körbart exempel + +Nedan är det kompletta programmet som du kan kopiera‑och‑klistra in i en konsolapp. Det inkluderar alla stegen ovan, samt ett par extra kommentarer för tydlighet. + +```csharp +using System; +using Aspose.Cells; + +namespace AsposeTableDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add data to cells – this is the “add data to cells” part. + worksheet.Cells["A1"].PutValue("Name"); + worksheet.Cells["B1"].PutValue("Score"); + worksheet.Cells["A2"].PutValue("Alice"); + worksheet.Cells["B2"].PutValue(85); + worksheet.Cells["A3"].PutValue("Bob"); + worksheet.Cells["B3"].PutValue(92); + + // 3️⃣ Convert the range into a ListObject (i.e., create table from range). + int startRow = 0, startColumn = 0, rowCount = 3, columnCount = 2; + int listIdx = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); + ListObject table = worksheet.ListObjects[listIdx]; + table.ShowAutoFilter = true; // optional UI filter + + // 4️⃣ Remove the AutoFilter UI – “save excel without filter”. + table.AutoFilter = null; + table.ShowAutoFilter = false; + + // 5️⃣ Save the workbook. + string filePath = @"C:\Temp\NoAutoFilter.xlsx"; + workbook.Save(filePath); + + Console.WriteLine($"Workbook saved to {filePath}"); + } + } +} +``` + +Kör programmet, öppna sedan `C:\Temp\NoAutoFilter.xlsx`. Du kommer att se en snyggt formaterad tabell, inga filterpilar och den data vi skrev in. Det är hela **create excel workbook c#**‑arbetsflödet på under 60 kodrader. + +--- + +## Vanliga frågor & specialfall + +**Q: Vad händer om mitt dataområde inte är sammanhängande?** +A: Aspose.Cells kräver ett rektangulärt område för `ListObjects.Add`. Om du har icke‑sammanhängande data, bygg först ett temporärt område (t.ex. kopiera delarna till ett nytt arbetsblad) och konvertera sedan det området. + +**Q: Kan jag använda en anpassad tabellstil?** +A: Absolut. Efter att ha skapat `ListObject`, sätt `table.TableStyleType = TableStyleType.TableStyleMedium9;` (eller någon av de 65 inbyggda stilarna). Detta är ett bra sätt att få tabellen att matcha ditt företags varumärke. + +**Q: Hur behåller jag filtret men döljer pilarna?** +A: Filterlogiken finns i `table.AutoFilter`. Att sätta `ShowAutoFilter = false` döljer bara UI‑elementet; det underliggande filtret kvarstår. Så du kan fortfarande programatiskt filtrera rader senare. + +**Q: Vad händer med stora dataset (10 000+ rader)?** +A: Samma API fungerar, men överväg att stänga av automatiska beräkningar (`workbook.CalcEngine = false`) innan massinmatning för prestanda, och aktivera dem igen efteråt. + +--- + +## Sammanfattning + +Vi har just gått igenom hur man **create table from range** i C# med Aspose.Cells, steg för steg—från **create excel workbook c#**, via **add data to cells**, till **convert range to ListObject**, och slutligen **save excel without filter**. Koden är komplett, körbar och klar för produktion. + +Nästa steg kan vara att utforska: + +- Lägga till villkorsstyrd formatering för att markera högsta poäng. +- Exportera arbetsboken till PDF med `workbook.Save("Report.pdf", SaveFormat.Pdf);`. +- Använda `table.Columns["Score"].DataBodyRange.Sort` för att programatiskt sortera tabellen. + +Känn dig fri att experimentera med olika dataset, tabellstilar eller till och med flera arbetsblad. API:et är tillräckligt flexibelt för att hantera allt från en liten poängtavla till en massiv finansiell huvudbok. + +Har du frågor eller stöter på problem? Lämna en kommentar nedan eller kontakta mig på GitHub. Lycka till med kodningen, och njut av att förvandla råa områden till polerade Excel‑tabeller! + +{{< /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/thai/net/conversion-to-pdf/_index.md b/cells/thai/net/conversion-to-pdf/_index.md index b997883667..5002aaca6b 100644 --- a/cells/thai/net/conversion-to-pdf/_index.md +++ b/cells/thai/net/conversion-to-pdf/_index.md @@ -21,7 +21,7 @@ Aspose.Cells สำหรับ .NET เป็นโปรแกรมที่ ## การแปลง Excel เป็น PDF ทีละขั้นตอน -มาเจาะลึกรายละเอียดกันเลย ต้องการแปลงไฟล์ Excel เป็น PDF ใช่ไหม คุณโชคดีแล้ว! Aspose.Cells มีบทช่วยสอนที่ตรงไปตรงมาเพื่อแนะนำคุณในทุกขั้นตอน สิ่งแรกที่คุณต้องทำคือโหลดไฟล์ Excel ลงในแอปพลิเคชันของคุณ ด้วยโค้ดเพียงไม่กี่บรรทัด ไลบรารีนี้จะช่วยให้คุณเข้าถึงสเปรดชีตได้โดยตรง +มาเจาะลึกรายละเอียดกันเลย ต้องการแปลงไฟล์ Excel เป็น PDF ใช่ไหม คุณโชคดีแล้ว! Aspose.Cells มีบทช่วยสอนที่ตรงไปตรงมาเพื่อแนะนำคุณในทุกขั้นตอน สิ่งแรกที่คุณต้องทำคือโหลดไฟล์ Excelลงในแอปพลิเคชันของคุณ ด้วยโค้ดเพียงไม่กี่บรรทัด ไลบรารีนี้จะช่วยให้คุณเข้าถึงสเปรดชีตได้โดยตรง ขั้นต่อไป คุณจะต้องตั้งค่าตัวเลือก PDF นี่คือจุดที่ความมหัศจรรย์เกิดขึ้น คุณสามารถปรับแต่งด้านต่างๆ เช่น ขนาดไฟล์และทิศทาง และสุดท้าย ด้วยคำสั่งสุดท้าย คุณจะแปลงไฟล์ Excel เป็น PDF ได้อย่างง่ายดาย! ดูคำแนะนำโดยละเอียดของเราได้ที่ [การแปลง Excel เป็น PDF ใน .NET](./excel-to-pdf-conversion/) สำหรับข้อมูลเพิ่มเติม @@ -34,6 +34,8 @@ Aspose.Cells สำหรับ .NET เป็นโปรแกรมที่ แปลงสเปรดชีต Excel เป็น PDF ได้อย่างง่ายดายด้วย Aspose.Cells สำหรับ .NET! ปฏิบัติตามคำแนะนำทีละขั้นตอนของเราเพื่อประสบการณ์ที่ราบรื่น ### [แปลงแผนภูมิเป็น PDF ใน .NET](./convert-chart-to-pdf/) เรียนรู้วิธีการแปลงแผนภูมิ Excel เป็น PDF ใน .NET โดยใช้ Aspose.Cells ด้วยคู่มือทีละขั้นตอนนี้ เหมาะสำหรับโปรแกรมเมอร์ทุกระดับ +### [บันทึกเวิร์กบุ๊กเป็น PDF ด้วย Aspose.Cells – คู่มือขั้นตอนเต็ม](./save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/) +เรียนรู้วิธีบันทึกไฟล์เวิร์กบุ๊ก Excel เป็น PDF อย่างละเอียดด้วย Aspose.Cells สำหรับ .NET ในขั้นตอนที่ชัดเจน {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/thai/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md b/cells/thai/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md new file mode 100644 index 0000000000..89218ae51b --- /dev/null +++ b/cells/thai/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md @@ -0,0 +1,244 @@ +--- +category: general +date: 2026-03-30 +description: เรียนรู้วิธีบันทึกเวิร์กบุ๊กเป็น PDF ด้วย Aspose.Cells บทเรียนนี้ยังครอบคลุมการส่งออกแผ่นงานเป็น + PDF วิธีการส่งออก Excel เป็น PDF และการสร้าง PDF จากแผ่นงาน. +draft: false +keywords: +- save workbook as pdf +- export worksheet to pdf +- how to export excel to pdf +- save excel as pdf +- create pdf from worksheet +language: th +og_description: บันทึกเวิร์กบุ๊กเป็น PDF อย่างง่าย คู่มือนี้แสดงวิธีส่งออกแผ่นงานเป็น + PDF วิธีส่งออก Excel เป็น PDF และสร้าง PDF จากแผ่นงานโดยใช้ C# +og_title: บันทึกเวิร์กบุ๊กเป็น PDF ด้วย Aspose.Cells – คู่มือฉบับสมบูรณ์ +tags: +- Aspose.Cells +- C# +- PDF generation +title: บันทึกเวิร์กบุ๊กเป็น PDF ด้วย Aspose.Cells – คู่มือแบบละเอียดขั้นตอนต่อขั้นตอน +url: /th/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# บันทึก workbook เป็น pdf – คู่มือขั้นตอนเต็ม + +เคยต้องการ **save workbook as pdf** แต่ไม่แน่ใจว่าห้องสมุดใดจะรักษาตัวเลขของคุณให้คงเดิม? คุณไม่ได้อยู่คนเดียว ในหลายโครงการเราต้องแปลงข้อมูล Excel ให้เป็น PDF ที่ดูดี และการทำอย่างถูกต้องจะช่วยประหยัดเวลาการดีบักหลายชั่วโมง. + +ในบทแนะนำนี้ เราจะพาคุณผ่านโค้ดที่จำเป็นเพื่อ **save workbook as pdf** ด้วย Aspose.Cells และในระหว่างทางเราจะสาธิตวิธี **export worksheet to pdf**, ตอบคำถาม *how to export excel to pdf*, และแสดงวิธีที่สะอาดในการ **create pdf from worksheet** ด้วยการตั้งค่าความแม่นยำที่กำหนดเอง. + +เมื่อจบคู่มือ คุณจะมีแอปคอนโซล C# ที่พร้อมรันซึ่งสร้าง PDF ที่มีเพียงหลักสำคัญที่คุณต้องการเท่านั้น ไม่มีส่วนเกินเพิ่มเติม เพียงโซลูชันที่มั่นคงและพร้อมใช้งานในผลิตภัณฑ์. + +--- + +## สิ่งที่คุณจะได้เรียนรู้ + +- วิธีตั้งค่า `Workbook` ใหม่และเลือกเวิร์กชีตแรกของมัน. +- วิธีที่แน่นอนเพื่อ **save workbook as pdf** พร้อมการรักษาความแม่นยำของตัวเลข. +- เหตุผลที่คุณสมบัติ `SignificantDigits` มีความสำคัญเมื่อคุณ **export worksheet to pdf**. +- ข้อผิดพลาดทั่วไปเมื่อคุณพยายาม **how to export excel to pdf** และวิธีหลีกเลี่ยง. +- วิธีเร็ว ๆ เพื่อ **save excel as pdf** ด้วยตัวเลือกหน้าแตกต่างกัน และวิธี **create pdf from worksheet** ด้วยโปรแกรม. + +### ข้อกำหนดเบื้องต้น + +- .NET 6.0 หรือใหม่กว่า (โค้ดนี้ยังทำงานกับ .NET Framework 4.5+ ด้วย). +- ใบอนุญาต Aspose.Cells ที่ถูกต้อง (หรือใบอนุญาตชั่วคราวฟรีสำหรับการทดสอบ). +- Visual Studio 2022 หรือ IDE ที่รองรับ C# ใด ๆ. + +หากคุณมีพื้นฐานเหล่านี้ครบแล้ว ไปต่อกันเลย. + +--- + +## ขั้นตอนที่ 1 – ติดตั้ง Aspose.Cells และเริ่มต้น Workbook + +สิ่งแรกที่ต้องทำ: คุณต้องการแพคเกจ NuGet ของ Aspose.Cells เปิดเทอร์มินัลในโฟลเดอร์โปรเจกต์ของคุณและรัน: + +```bash +dotnet add package Aspose.Cells +``` + +เมื่อแพคเกจถูกติดตั้งแล้ว สร้างอ็อบเจ็กต์ `Workbook` ใหม่ นี่คืออ็อบเจ็กต์ที่คุณจะ **save workbook as pdf** ในที่สุด. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialise a fresh workbook – think of it as a blank Excel file. + Workbook workbook = new Workbook(); + + // Grab the first worksheet (index 0). This is where we’ll put our data. + Worksheet worksheet = workbook.Worksheets[0]; +``` + +*ทำไมต้องทำขั้นตอนนี้?* +การสร้าง workbook ให้คุณมีผืนผ้าเปล่าที่สะอาด และการเลือกเวิร์กชีตแรกทำให้คุณทำงานกับตำแหน่งที่รู้จัก การข้ามขั้นตอนนี้อาจทำให้เกิดข้อผิดพลาด *null reference* เมื่อคุณพยายาม **export worksheet to pdf** ในภายหลัง. + +--- + +## ขั้นตอนที่ 2 – แทรกข้อมูลความแม่นยำสูง + +ตอนนี้เราจะใส่ตัวเลขที่มีตำแหน่งทศนิยมมากกว่าที่เราต้องการแสดงใน PDF นี่จะแสดงให้เห็นว่า設定 `SignificantDigits` ตัดทอนผลลัพธ์อย่างไร. + +```csharp + // Place a high‑precision number in cell A1. + worksheet.Cells["A1"].PutValue(1234.56789); +``` + +หากคุณรันโปรแกรมตอนนี้และเรียก `workbook.Save("output.pdf")` เพียงอย่างเดียว PDF จะแสดง `1234.56789` ทั้งหมด นั่นอาจพอได้ในบางกรณี แต่บ่อยครั้งคุณต้องปัดเศษเป็นจำนวนหลักสำคัญที่กำหนด—โดยเฉพาะสำหรับรายงานการเงิน. + +--- + +## ขั้นตอนที่ 3 – กำหนดค่า PDF Save Options + +Aspose.Cells ให้การควบคุมละเอียดผ่าน `PdfSaveOptions` คุณสมบัติที่เราสนใจคือ `SignificantDigits` การตั้งค่าเป็น `4` จะบอกเอนจินให้เก็บเพียงสี่หลักสำคัญเมื่อมัน **save workbook as pdf**. + +```csharp + // Configure PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 // This trims the number to 1235 in the PDF. + }; +``` + +*ทำไมต้องใช้ `SignificantDigits`?* +เมื่อคุณ **create pdf from worksheet** คุณมักต้องปฏิบัติตามกฎการปัดเศษตามระเบียบ ตัวเลือกนี้ทำการปัดเศษให้คุณ ไม่ต้องจัดรูปแบบแต่ละเซลล์ด้วยตนเอง. + +--- + +## ขั้นตอนที่ 4 – ส่งออก Worksheet เป็น PDF ด้วยตัวเลือกที่กำหนด + +นี่คือช่วงเวลาที่สำคัญ: เราจริง ๆ แล้ว **save workbook as pdf** ด้วยตัวเลือกที่เรากำหนดไว้. + +```csharp + // Save the workbook as a PDF using the configured options. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + } +} +``` + +การรันโปรแกรมจะสร้างไฟล์ชื่อ `SignificantDigits.pdf` ในโฟลเดอร์ output ของโปรเจกต์ของคุณ เปิดไฟล์แล้วคุณจะเห็น `1235` ในเซลล์ A1 – ตัวเลขถูกปัดเศษเป็นสี่หลักสำคัญ. + +*จุดสำคัญ:* เมธอด `Save` รับทั้งเส้นทางไฟล์และ `PdfSaveOptions` หากคุณละเว้นตัวเลือก จะกลับไปใช้พฤติกรรมเริ่มต้น ซึ่งอาจไม่ตรงกับความต้องการความแม่นยำของคุณ. + +--- + +## ขั้นตอนที่ 5 – ตรวจสอบผลลัพธ์และแก้ไขปัญหาทั่วไป + +### ผลลัพธ์ที่คาดหวัง + +- PDF หนึ่งหน้า ชื่อ `SignificantDigits.pdf`. +- เซลล์ A1 แสดง `1235` (สี่หลักสำคัญ). +- ไม่มีเวิร์กชีตเพิ่มเติมหรือเนื้อหาที่ซ่อนอยู่. + +### คำถามที่พบบ่อย + +| Question | Answer | +|----------|--------| +| **ถ้าฉันต้องการมากกว่าหนึ่ง worksheet?** | วนลูปผ่าน `workbook.Worksheets` และใช้ `PdfSaveOptions` เดียวกันเมื่อบันทึกแต่ละชีตแยกกัน หรือกำหนด `OnePagePerSheet = true` ในตัวเลือก. | +| **ฉันสามารถรักษารูปแบบตัวเลขเดิมได้หรือไม่?** | ได้ – ตั้งค่า `PdfSaveOptions.AllColumnsInOnePage = true` แล้วให้กฎการจัดรูปแบบของ Excel จัดการ แต่จำไว้ว่า `SignificantDigits` จะยังคงเขียนทับความแม่นยำของตัวเลข. | +| **วิธีนี้ทำงานกับไฟล์ .xlsx ที่มีอยู่แล้วหรือไม่?** | แน่นอน. แทนที่ `new Workbook()` ด้วย `new Workbook("input.xlsx")` ส่วนที่เหลือของโค้ดยังคงเหมือนเดิม. | +| **ถ้า PDF เป็นค่าว่างจะทำอย่างไร?** | ตรวจสอบว่า workbook มีข้อมูลจริงและคุณกำลังบันทึกไปยังไดเรกทอรีที่เขียนได้ นอกจากนี้ ตรวจสอบว่าใบอนุญาต Aspose.Cells ถูกนำไปใช้อย่างถูกต้อง; การทดลองที่ไม่มีใบอนุญาตอาจจำกัดการส่งออก. | + +### เคล็ดลับพิเศษ + +หากคุณต้องการ **save excel as pdf** ด้วยการวางแนวหน้ากระดาษที่เฉพาะเจาะจง ให้ตั้งค่า `pdfSaveOptions.PageSetup.Orientation = PageOrientation.Landscape;` ก่อนเรียก `Save` การปรับเล็ก ๆ นี้มักช่วยคุณหลีกเลี่ยงการปรับ PDF ด้วยตนเองในภายหลัง. + +--- + +## ความหลากหลาย: การส่งออกหลายชีตหรือการตั้งค่าหน้ากระดาษแบบกำหนดเอง + +### ส่งออกทุกชีตในหนึ่งครั้ง + +```csharp +PdfSaveOptions allSheetsOptions = new PdfSaveOptions +{ + SignificantDigits = 4, + OnePagePerSheet = true // Each worksheet gets its own page. +}; + +workbook.Save("AllSheets.pdf", allSheetsOptions); +``` + +### ส่งออกชีตเดียวเป็น PDF + +หากคุณต้องการเพียง **export worksheet to pdf** สำหรับชีตเฉพาะ ให้ใช้เมธอด `ToPdf` ของอ็อบเจ็กต์ `Worksheet`: + +```csharp +Worksheet sheet = workbook.Worksheets["Sheet2"]; +sheet.ToPdf("Sheet2.pdf", pdfSaveOptions); +``` + +### ปรับขอบหน้ากระดาษ + +```csharp +pdfSaveOptions.PageSetup.TopMargin = 20; +pdfSaveOptions.PageSetup.BottomMargin = 20; +``` + +การปรับเหล่านี้ทำให้คุณปรับแต่งเอกสารสุดท้ายได้อย่างละเอียดโดยไม่ต้องทำการประมวลผลต่อ. + +--- + +## ตัวอย่างทำงานเต็ม + +ด้านล่างเป็นโปรแกรมที่พร้อมคัดลอก‑วางครบถ้วนซึ่งรวมทุกอย่างที่เราได้พูดถึงไว้ บันทึกเป็น `Program.cs` แล้วรัน `dotnet run`. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and select the first worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Insert a high‑precision number. + worksheet.Cells["A1"].PutValue(1234.56789); + + // 3️⃣ Set PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 + }; + + // 4️⃣ Save the workbook as PDF. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + + // Optional: Export another sheet with custom settings. + // Worksheet sheet2 = workbook.Worksheets.Add("Report"); + // sheet2.Cells["B2"].PutValue(9876.54321); + // sheet2.ToPdf("Report.pdf", pdfSaveOptions); + } +} +``` + +**ผลลัพธ์:** เปิด `SignificantDigits.pdf` – คุณจะเห็นค่าที่ปัดเศษเป็น `1235` ขนาดไฟล์พอเหมาะและการจัดวางตรงกับชีต Excel ดั้งเดิม. + +--- + +## สรุป + +เราได้แสดงวิธี **save workbook as pdf** ด้วย Aspose.Cells ครอบคลุมตั้งแต่การตั้งค่าเบื้องต้นจนถึงตัวเลือกขั้นสูงเช่น **export worksheet to pdf**, **how to export excel to pdf**, และ **create pdf from worksheet** ด้วยการควบคุมตัวเลขที่แม่นยำ. + +วิธีนี้ตรงไปตรงมา ต้องการเพียงไม่กี่บรรทัดของ C# และทำงานได้บนหลายเวอร์ชันของ .NET ถัดไป คุณอาจลองเพิ่มหัว/ท้ายกระดาษ ฝังรูปภาพ หรือสร้าง PDF จากเทมเพลต—ทั้งหมดนี้ต่อจากพื้นฐานที่คุณมีแล้ว. + +มีไอเดียใหม่ที่อยากลองไหม? บางทีคุณอาจต้องการป้องกัน PDF ด้วยรหัสผ่านหรือรวม PDF หลายไฟล์เข้าด้วยกัน สิ่งเหล่านั้นเป็นการต่อยอดที่ธรรมชาติ และ Aspose.Cells API มีให้คุณใช้เต็มที่ ลงมือทดลองและให้ไลบรารีทำงานหนักแทนคุณ. + +*ขอให้สนุกกับการเขียนโค้ด! หากคุณเจอปัญหาใด ๆ ฝากคอมเมนต์ด้านล่างและเราจะช่วยแก้ไขร่วมกัน.* + +![ภาพหน้าจอการบันทึก workbook เป็น pdf](/images/save-workbook-as-pdf.png){alt="ตัวอย่างการบันทึก workbook เป็น pdf แสดงไฟล์ 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/thai/net/converting-excel-files-to-other-formats/_index.md b/cells/thai/net/converting-excel-files-to-other-formats/_index.md index fdad3c44c3..f1ab54fc95 100644 --- a/cells/thai/net/converting-excel-files-to-other-formats/_index.md +++ b/cells/thai/net/converting-excel-files-to-other-formats/_index.md @@ -66,6 +66,8 @@ Aspose.Cells สำหรับ .NET ทำให้การแปลงเอ คำอธิบาย: เรียนรู้วิธีติดตามความคืบหน้าการแปลงเอกสารด้วยโปรแกรมโดยใช้ Aspose.Cells สำหรับ .NET ในบทช่วยสอนโดยละเอียดนี้ ### [ติดตามความคืบหน้าการแปลงเอกสารสำหรับโปรแกรม TIFF ใน .NET](./tracking-document-conversion-progress-for-tiff/) เรียนรู้การติดตามความคืบหน้าการแปลง TIFF ด้วยโปรแกรมโดยใช้ Aspose.Cells สำหรับ .NET พร้อมคำแนะนำทีละขั้นตอนของเรา พัฒนาทักษะการจัดการเอกสารของคุณ +### [สร้าง PowerPoint จาก Excel – คู่มือขั้นตอนโดยใช้ C#](./create-powerpoint-from-excel-step-by-step-c-guide/) +เรียนรู้วิธีแปลงไฟล์ Excel เป็นสไลด์ PowerPoint ด้วย C# อย่างละเอียดและง่ายดาย {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/thai/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md b/cells/thai/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md new file mode 100644 index 0000000000..2112346439 --- /dev/null +++ b/cells/thai/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-03-30 +description: สร้าง PowerPoint จาก Excel อย่างรวดเร็วโดยใช้ Aspose.Cells และ Aspose.Slides + เรียนรู้วิธีส่งออกแผ่นงานเป็นภาพและบันทึกงานนำเสนอเป็น PPTX ด้วย C# +draft: false +keywords: +- create powerpoint from excel +- convert excel to powerpoint +- export worksheet as image +- save presentation as pptx +- export excel chart as picture +language: th +og_description: สร้าง PowerPoint จาก Excel ด้วย C# และ Aspose ส่งออกแผ่นงานเป็นภาพ + รักษารูปร่างให้แก้ไขได้ และบันทึกผลลัพธ์เป็นไฟล์ PPTX +og_title: สร้าง PowerPoint จาก Excel – คอร์สสอน C# อย่างครบถ้วน +tags: +- Aspose +- C# +- Office Automation +title: สร้าง PowerPoint จาก Excel – คู่มือ C# ขั้นตอนต่อขั้นตอน +url: /th/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# สร้าง PowerPoint จาก Excel – คำแนะนำ C# ฉบับสมบูรณ์ + +เคยต้อง **สร้าง PowerPoint จาก Excel** แต่ไม่แน่ใจว่าควรใช้ไลบรารีใดที่ทำให้แผนภูมิของคุณยังแก้ไขได้หรือไม่? คุณไม่ได้อยู่คนเดียว ในหลายกรณีของการรายงานคุณอาจต้องการแปลงสเปรดชีตเป็นสไลด์โดยไม่สูญเสียความสามารถในการปรับแก้กล่องข้อความในภายหลัง คู่มือฉบับนี้จะแสดงให้คุณเห็นอย่างละเอียดว่า **แปลง Excel เป็น PowerPoint** อย่างไรโดยใช้ Aspose.Cells และ Aspose.Slides พร้อมทั้งอธิบายวิธี **ส่งออก worksheet เป็นภาพ** และสุดท้าย **บันทึกงานนำเสนอเป็น PPTX** + +เราจะเดินผ่านทุกบรรทัดของโค้ด อธิบาย *ทำไม* การตั้งค่าแต่ละอย่างจึงสำคัญ และแม้แต่การจัดการเมื่อเวิร์กบุ๊กของคุณมีแผนภูมิที่ซับซ้อนที่คุณอยากส่งออกเป็นรูปภาพ เมื่อเสร็จสิ้นคุณจะได้แอปคอนโซล C# ที่พร้อมรัน ซึ่งรับไฟล์ `ShapesDemo.xlsx` แล้วสร้างไฟล์ `Result.pptx` – ทั้งกล่องข้อความที่แก้ไขได้และภาพที่คมชัด + +## สิ่งที่คุณต้องเตรียม + +- .NET 6.0 หรือใหม่กว่า (API นี้ทำงานกับ .NET Framework ได้เช่นกัน แต่ .NET 6 เป็นจุดที่เหมาะที่สุด) +- แพคเกจ NuGet **Aspose.Cells** และ **Aspose.Slides** (ไลเซนส์ทดลองฟรีใช้สำหรับการทดสอบ) +- ความคุ้นเคยพื้นฐานกับไวยากรณ์ C# – หากคุณสามารถเขียน `Console.WriteLine` ได้ คุณก็พร้อมแล้ว + +ไม่มีการใช้ COM interop เพิ่มเติม ไม่ต้องติดตั้ง Office บนเซิร์ฟเวอร์ และไม่มีการคัดลอก‑วางรูปภาพด้วยมือ ทุกอย่างทำโดยโปรแกรม + +--- + +## Create PowerPoint from Excel – Load Workbook and Set Export Options + +สิ่งแรกที่เราทำคือเปิดไฟล์ Excel และบอก Aspose.Cells ว่าเราต้องการให้แผ่นทำงานอย่างไร `ImageOrPrintOptions` คือที่ที่เวทมนตร์เกิดขึ้น: เราเปิดใช้งาน `ExportShapes` และ `ExportEditableTextBoxes` เพื่อให้รูปทรงใด ๆ (รวมถึงแผนภูมิ) กลายเป็นส่วนหนึ่งของสไลด์ **และ** ยังคงแก้ไขได้หลังการแปลง + +```csharp +using Aspose.Cells; +using Aspose.Slides; + +// 1️⃣ Load the Excel workbook +string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; +Workbook workbook = new Workbook(excelPath); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first sheet + +// 2️⃣ Configure image export – keep shapes editable +ImageOrPrintOptions imageOptions = new ImageOrPrintOptions +{ + OnePagePerSheet = true, // Export the whole sheet as one slide + ExportShapes = true, // Include shapes (charts, drawings) + ExportEditableTextBoxes = true // Make text boxes editable in PPTX +}; +``` + +**ทำไมต้องตั้งค่าสถานะเหล่านี้?** +- `OnePagePerSheet` ป้องกันไม่ให้แผ่นถูกแบ่งเป็นหลายสไลด์ – คุณจะได้ภาพขนาดเต็มหน้าเดียว +- `ExportShapes` บอก Aspose.Cells ให้เรนเดอร์แผนภูมิ *และ* รูปทรงเวกเตอร์เป็นภาพ rasterized, รักษารูปลักษณ์เดิมไว้ +- `ExportEditableTextBoxes` คือสูตรลับที่ทำให้คุณคลิกสองครั้งที่กล่องข้อความใน PowerPoint แล้วแก้ไขข้อความได้โดยไม่ต้องเปิด Excel อีกครั้ง + +> **เคล็ดลับ:** หากคุณต้องการเพียงภาพคงที่ของแผนภูมิเท่านั้น ให้ตั้งค่า `ExportShapes = false` แล้วใช้เมธอด `ExportExcelChartAsPicture` ในภายหลัง (ดูส่วนสุดท้าย) + +--- + +## Convert Excel to PowerPoint – Generate Image from Worksheet + +เมื่อกำหนดตัวเลือกเรียบร้อยแล้ว เราจะเปลี่ยน worksheet ให้เป็น `System.Drawing.Image` ตัวแปลง `WorksheetToImageConverter` จะทำงานหนักโดยใช้การตั้งค่าที่เรากำหนดไว้ + +```csharp +// 3️⃣ Convert the worksheet to an image using the options above +WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); +System.Drawing.Image sheetImage = converter.ConvertToImage(0, imageOptions); +``` + +อาร์กิวเมนต์ `0` หมายถึงหน้าที่หนึ่ง (เรามีเพียงหน้าเดียวเนื่องจาก `OnePagePerSheet`) `sheetImage` ที่ได้จะคง DPI ดั้งเดิมไว้ ทำให้สไลด์ของคุณไม่เบลอแม้บนจอแสดงผลความละเอียดสูง + +--- + +## Save Presentation as PPTX – Insert Image into a Slide + +ต่อไปเราจะสร้างไฟล์ PowerPoint ใหม่ เพิ่มสไลด์หนึ่งสไลด์ แล้ววางบิตแมพลงไป Aspose.Slides จะถือรูปภาพนี้เป็นรูปทรง *picture frame* ซึ่งคุณสามารถปรับขนาดหรือย้ายได้เช่นเดียวกับวัตถุ PowerPoint ดั้งเดิม + +```csharp +// 4️⃣ Create a new PowerPoint presentation +Presentation presentation = new Presentation(); +ISlide slide = presentation.Slides[0]; // The default blank slide + +// Add the Excel‑derived image as a picture frame +slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, // Simple rectangle container + 0, 0, // Top‑left corner (0,0) + sheetImage.Width, // Width of the picture + sheetImage.Height, // Height of the picture + sheetImage); // The bitmap we generated +``` + +> **ถ้าภาพใหญ่กว่าขนาดสไลด์จะเกิดอะไรขึ้น?** +> PowerPoint จะตัดส่วนที่เกินขนาดสไลด์โดยอัตโนมัติ วิธีแก้อย่างรวดเร็วคือปรับสเกลภาพก่อนแทรก: + +```csharp +float scale = Math.Min(presentation.SlideSize.Size.Width / (float)sheetImage.Width, + presentation.SlideSize.Size.Height / (float)sheetImage.Height); +int newWidth = (int)(sheetImage.Width * scale); +int newHeight = (int)(sheetImage.Height * scale); +``` + +จากนั้นคุณสามารถส่งค่า `newWidth` และ `newHeight` ไปยัง `AddPictureFrame` ได้ + +--- + +## Export Worksheet as Image – Save the PPTX File + +สุดท้ายเราจะบันทึกงานนำเสนอลงดิสก์ ตัวเลือก `SaveFormat.Pptx` รับประกันรูปแบบ OpenXML สมัยใหม่ ซึ่งทำงานได้กับ PowerPoint เวอร์ชันล่าสุดทั้งหมด + +```csharp +// 5️⃣ Save the presentation as a PPTX file +string pptxPath = "YOUR_DIRECTORY/Result.pptx"; +presentation.Save(pptxPath, SaveFormat.Pptx); +``` + +เมื่อคุณเปิด `Result.pptx` จะเห็นสไลด์เดียวที่ดูเหมือนกับแผ่น Excel ของคุณอย่างแม่นยำ แต่คุณยังคงสามารถคลิกที่กล่องข้อความใดก็ได้และแก้ไขเนื้อหาโดยตรงใน PowerPoint + +--- + +## Export Excel Chart as Picture – When Raster Images Are Preferred + +บางครั้งคุณอาจไม่ต้องการรูปทรงที่แก้ไขได้; PNG คุณภาพสูงของแผนภูมิก็เพียงพอ Aspose.Cells สามารถส่งออกแผนภูมิเฉพาะเป็นภาพได้โดยไม่ต้องแปลงทั้งแผ่น: + +```csharp +// Example: Export the first chart on the sheet as a PNG +int chartIndex = 0; // Adjust if you have multiple charts +Chart chart = worksheet.Charts[chartIndex]; +ImageOrPrintOptions chartOptions = new ImageOrPrintOptions +{ + ImageFormat = ImageFormat.Png, + OnePagePerSheet = false +}; +chart.ToImage("chart.png", chartOptions); +``` + +จากนั้นคุณสามารถฝัง `chart.png` ลงในสไลด์ได้เช่นเดียวกับที่เราเพิ่ม `sheetImage` วิธีนี้ช่วยลดขนาดไฟล์ PPTX และเหมาะเมื่อข้อมูลรอบข้างไม่จำเป็นต้องแสดงบนสไลด์ + +--- + +## Common Pitfalls & How to Avoid Them + +| ปัญหา | สาเหตุ | วิธีแก้ | +|-------|--------|----------| +| **ข้อความดูเบลอ** | ส่งออกที่ DPI ต่ำ (ค่าเริ่มต้น 96) | ตั้งค่า `imageOptions.Dpi = 300;` ก่อนทำการแปลง | +| **รูปทรงหาย** | `ExportShapes` ตั้งเป็น `false` | ตรวจสอบให้ `ExportShapes = true` เมื่อจำเป็นต้องการกราฟิกที่แก้ไขได้ | +| **ขนาดสไลด์ไม่ตรงกัน** | ภาพใหญ่กว่าขนาดสไลด์ | ปรับสเกลภาพ (ดูโค้ดตัวอย่าง) หรือเปลี่ยนขนาดสไลด์ผ่าน `presentation.SlideSize` | +| **License exception** | ใช้เวอร์ชันทดลองโดยไม่ได้เปิดใช้งานอย่างถูกต้อง | เรียก `License license = new License(); license.SetLicense("Aspose.Total.lic");` ตั้งแต่ต้นเมธอด `Main` | + +--- + +## Full Working Example (Copy‑Paste Ready) + +ด้านล่างเป็นโปรแกรมทั้งหมด พร้อมคัดลอก‑วางลงในโปรเจกต์คอนโซลใหม่ แทนที่ `YOUR_DIRECTORY` ด้วยโฟลเดอร์ที่เก็บไฟล์ Excel ของคุณ + +```csharp +using System; +using Aspose.Cells; +using Aspose.Slides; +using System.Drawing; + +namespace ExcelToPowerPointDemo +{ + class Program + { + static void Main(string[] args) + { + // ----------------------------------------------------------------- + // 1️⃣ Load the Excel workbook + // ----------------------------------------------------------------- + string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; + Workbook workbook = new Workbook(excelPath); + Worksheet worksheet = workbook.Worksheets[0]; + + // ----------------------------------------------------------------- + // 2️⃣ Set up export options – keep shapes editable + // ----------------------------------------------------------------- + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + OnePagePerSheet = true, + ExportShapes = true, + ExportEditableTextBoxes = true, + Dpi = 300 // High‑resolution output + }; + + // ----------------------------------------------------------------- + // 3️⃣ Convert worksheet to an image + // ----------------------------------------------------------------- + WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); + Image sheetImage = converter.ConvertToImage(0, imageOptions); + + // ----------------------------------------------------------------- + // 4️⃣ Create PowerPoint and add the image as a slide + // ----------------------------------------------------------------- + Presentation presentation = new Presentation(); + ISlide slide = presentation.Slides[0]; + slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, + 0, 0, + sheetImage.Width, + sheetImage.Height, + sheetImage); + + // ----------------------------------------------------------------- + // 5️⃣ Save the PPTX file + // ----------------------------------------------------------------- + string pptxPath = "YOUR_DIRECTORY/Result.pptx"; + presentation.Save(pptxPath, SaveFormat.Pptx); + + Console.WriteLine("✅ PowerPoint created successfully at: " + pptxPath); + } + } +} +``` + +**ผลลัพธ์ที่คาดหวัง:** +เมื่อรันโปรแกรมจะพิมพ์ `✅ PowerPoint created successfully at: YOUR_DIRECTORY/Result.pptx` การเปิดไฟล์ PPTX จะเห็นสไลด์เดียวที่สะท้อนแผ่น Excel ดั้งเดิม พร้อมกล่องข้อความที่แก้ไขได้ + +--- + +## Recap & Next Steps + +ตอนนี้คุณรู้วิธี **สร้าง PowerPoint จาก Excel** ด้วย API ที่ทรงพลังของ Aspose, วิธี **ส่งออก worksheet เป็นภาพ**, และวิธี **บันทึกงานนำเสนอเป็น PPTX** พร้อมคงความสามารถในการแก้ไข รูปแบบเดียวกันนี้ทำงานได้กับเวิร์กบุ๊กหลายแผ่น – เพียงลูปผ่าน `workbook.Worksheets` แล้วเพิ่มสไลด์ใหม่สำหรับแต่ละแผ่น + +**สิ่งที่ควรสำรวจต่อไป?** + +- **Batch conversion:** ลูปผ่านโฟลเดอร์ของไฟล์ Excel แล้วสร้างสไลด์เด็คต่อไฟล์หนึ่งไฟล์ +- **Dynamic layouts:** ใช้ `slide.LayoutSlide` เพื่อใช้เทมเพลต PowerPoint ที่ออกแบบไว้ล่วงหน้า +- **Chart‑only export:** ผสานส่วน “Export Excel chart as picture” กับ placeholder สไลด์เพื่อสร้างเด็คที่เบากว่า +- **Advanced styling:** เพิ่มพื้นหลังสไลด์ที่กำหนดเอง, การเปลี่ยนฉาก, หรือแอนิเมชันผ่าน Aspose.Slides + +ลองทดลองเปลี่ยน DPI, สลับ `ShapeType.Ellipse` เป็นกรอบรูปวงกลม, หรือแม้แต่ฝังหลายภาพต่อสไลด์ได้เลย ความเป็นไปได้ไม่มีขีดจำกัดเมื่อคุณมีการควบคุมแบบโปรแกรมเมติก + +{{< /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/thai/net/document-properties/_index.md b/cells/thai/net/document-properties/_index.md index 503bbc8b25..feda8fa71c 100644 --- a/cells/thai/net/document-properties/_index.md +++ b/cells/thai/net/document-properties/_index.md @@ -35,6 +35,8 @@ เรียนรู้วิธีการเข้าถึงคุณสมบัติเอกสารใน Excel โดยใช้ Aspose.Cells สำหรับ .NET พร้อมคำแนะนำทีละขั้นตอนของเรา จัดการสเปรดชีตของคุณอย่างมีประสิทธิภาพ ### [การเพิ่มคุณสมบัติเอกสารใน .NET](./adding-document-properties/) เรียนรู้วิธีการเพิ่มคุณสมบัติเอกสารใน Excel โดยใช้ Aspose.Cells สำหรับ .NET ด้วยคู่มือทีละขั้นตอนโดยละเอียดนี้ +### [วิธีบันทึกไฟล์ XLSB พร้อมคุณสมบัติกำหนดเองใน C# – คู่มือขั้นตอนโดยขั้นตอน](./how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/) +เรียนรู้วิธีบันทึกไฟล์ XLSB พร้อมคุณสมบัติกำหนดเองใน C# ด้วยคู่มือขั้นตอนโดยขั้นตอนของเรา {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/thai/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md b/cells/thai/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md new file mode 100644 index 0000000000..d219d86652 --- /dev/null +++ b/cells/thai/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md @@ -0,0 +1,231 @@ +--- +category: general +date: 2026-03-30 +description: เรียนรู้วิธีบันทึกไฟล์ XLSB ใน C# พร้อมเพิ่มคุณสมบัติกำหนดเอง อ่านค่ากลับมา + และเชี่ยวชาญการบันทึกเวิร์กบุ๊กเป็น XLSB ด้วย Aspose.Cells พร้อมโค้ดเต็ม +draft: false +keywords: +- how to save xlsb +- add custom property +- how to add property +- how to read property +- save workbook as xlsb +language: th +og_description: วิธีบันทึก XLSB ใน C#? บทเรียนนี้จะแสดงวิธีเพิ่มคุณสมบัติกำหนดเอง, + อ่านค่ากลับ, และบันทึกเวิร์กบุ๊กเป็น XLSB ด้วย Aspose.Cells. +og_title: วิธีบันทึกไฟล์ XLSB พร้อมคุณสมบัติกำหนดเองใน C# – คู่มือฉบับสมบูรณ์ +tags: +- Aspose.Cells +- C# +- Excel Automation +title: วิธีบันทึกไฟล์ XLSB พร้อมคุณสมบัติกำหนดเองใน C# – คู่มือแบบทีละขั้นตอน +url: /th/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# วิธีบันทึก XLSB พร้อมคุณสมบัติที่กำหนดเองใน C# – คู่มือขั้นตอนโดยละเอียด + +เคยสงสัย **วิธีบันทึก XLSB** พร้อมกับเก็บเมตาดาต้าเพิ่มเติมที่แนบกับแผ่นงานหรือไม่? คุณไม่ได้เป็นคนเดียว ในหลายสถานการณ์ระดับองค์กรคุณต้องการไฟล์ Excel แบบไบนารีที่ยังคงบรรจุคู่คีย์/ค่าของคุณเอง—เช่นหมายเลขสัญญา, ธงการประมวลผล, หรือแท็กเวอร์ชัน + +ข่าวดีคือ Aspose.Cells ทำให้เรื่องนี้ง่ายดายมาก ในคู่มือนี้คุณจะได้เห็นขั้นตอนการเพิ่มคุณสมบัติที่กำหนดเอง, บันทึกไว้, แล้วอ่านค่ากลับมา ทั้งหมดนี้ **บันทึกเวิร์กบุ๊กเป็น XLSB** ไม่มีการอ้างอิงที่คลุมเครือ เพียงตัวอย่างที่ทำงานได้เต็มรูปแบบที่คุณสามารถนำไปใช้ในโปรเจกต์ของคุณได้ทันที + +## สิ่งที่คุณจะได้เรียนรู้ + +- ไฟล์ `.xlsb` ใหม่ที่สร้างจากศูนย์ +- ความสามารถในการ **เพิ่มคุณสมบัติที่กำหนดเอง** ให้กับแผ่นงาน +- โค้ดที่แสดง **วิธีอ่านคุณสมบัติ** หลังจากไฟล์ถูกโหลดใหม่ +- เคล็ดลับเกี่ยวกับข้อผิดพลาดที่อาจเจอเมื่อ **บันทึกเวิร์กบุ๊กเป็น XLSB** + +> **Prerequisites:** .NET 6+ (หรือ .NET Framework 4.6+), Visual Studio (หรือ IDE สำหรับ C# ใดก็ได้), และไลบรารี Aspose.Cells for .NET ที่ติดตั้งผ่าน NuGet. ไม่มีสิ่งอื่นจำเป็น + +--- + +## ขั้นตอนที่ 1: ตั้งค่าโปรเจกต์และสร้าง Workbook ใหม่ + +เริ่มต้นด้วยการสร้างอ็อบเจ็กต์ Workbook ที่สะอาดพร้อมใช้งาน + +```csharp +using Aspose.Cells; +using System; + +// Initialize a new workbook; this will be an in‑memory Excel file. +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0) – it’s created automatically. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +*ทำไมเรื่องนี้สำคัญ:* `Workbook` เป็นจุดเริ่มต้นของทุกการดำเนินการใน Aspose.Cells การเริ่มด้วยอินสแตนซ์ใหม่ช่วยหลีกเลี่ยงสถานะที่ซ่อนอยู่ซึ่งอาจทำให้เมตาดาต้าที่กำหนดเองเสียหายในภายหลัง + +--- + +## ขั้นตอนที่ 2: **เพิ่มคุณสมบัติที่กำหนดเอง** ให้กับ Worksheet + +ต่อไปเราจะผูกคู่คีย์/ค่าที่อยู่เฉพาะในแผ่นงานนี้ + +```csharp +// Add a user‑defined property called "MyProperty" with the value "CustomValue". +worksheet.CustomProperties.Add("MyProperty", "CustomValue"); +``` + +> **Pro tip:** ชื่อคุณสมบัติมีความแตกต่างตามตัวพิมพ์ใหญ่‑เล็ก หากคุณพยายามดึง `"myproperty"` หลังจากนั้นจะเจอ `KeyNotFoundException` ควรใช้แนวทางการตั้งชื่อที่สม่ำเสมอ—camelCase หรือ PascalCase—ตั้งแต่แรก + +--- + +## ขั้นตอนที่ 3: **บันทึก Workbook เป็น XLSB** – การทำให้คุณสมบัติคงอยู่ + +ความมหัศจรรย์เกิดขึ้นเมื่อคุณเขียนเวิร์กบุ๊กเป็นรูปแบบไบนารี XLSB + +```csharp +// Define the output path. Adjust the folder to something writable on your machine. +string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + +// Save the workbook; the custom property travels with the file. +workbook.Save(outputPath, SaveFormat.Xlsb); +``` + +*สิ่งที่คุณทำจริง ๆ:* ค่าตัวแปร `SaveFormat.Xlsb` บอก Aspose.Cells ให้สร้างไฟล์ Excel แบบไบนารี (เปิดเร็วกว่า, ขนาดไฟล์เล็กกว่า) คุณสมบัติระดับแผ่นงานทั้งหมดจะถูกซีเรียลไลซ์โดยอัตโนมัติ—ไม่ต้องทำขั้นตอนเพิ่มเติม + +--- + +## ขั้นตอนที่ 4: โหลดไฟล์ใหม่และ **วิธีอ่านคุณสมบัติ** + +มาทดสอบว่าคุณสมบัติยังคงอยู่หลังการเดินทางรอบ + +```csharp +// Load the just‑saved XLSB file back into memory. +Workbook reloadedWorkbook = new Workbook(outputPath); + +// Access the same worksheet (index 0) and fetch the property value. +string customValue = reloadedWorkbook.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); +``` + +หากทุกอย่างทำงานเรียบร้อย `customValue` จะมีค่า `"CustomValue"` อยู่ + +--- + +## ขั้นตอนที่ 5: ตรวจสอบผลลัพธ์ – แสดงผลบน Console อย่างรวดเร็ว + +การตรวจสอบเล็ก ๆ น้อย ๆ ช่วยในช่วงพัฒนา + +```csharp +Console.WriteLine($"Custom property value: {customValue}"); +``` + +เมื่อรันโปรแกรมควรพิมพ์: + +``` +Custom property value: CustomValue +``` + +การเห็นบรรทัดนี้หมายความว่าคุณได้ **บันทึก XLSB** สำเร็จ, **เพิ่มคุณสมบัติที่กำหนดเอง**, และ **อ่านคุณสมบัติ** ทั้งหมดในกระบวนการเดียวที่เรียบร้อย + +--- + +## ตัวอย่างทำงานเต็มรูปแบบ (พร้อมคัดลอก‑วาง) + +ด้านล่างเป็นโปรแกรมทั้งหมด คัดลอกไปวางใน Console App ใหม่, กด **F5**, แล้วดูผลลัพธ์บนคอนโซลที่ยืนยันค่าของคุณสมบัติ + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // 1️⃣ Create a new workbook and get its first sheet + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // 2️⃣ Add a custom property (key/value) to the sheet + // ------------------------------------------------- + worksheet.CustomProperties.Add("MyProperty", "CustomValue"); + + // ------------------------------------------------- + // 3️⃣ Save the workbook as XLSB – the property is kept + // ------------------------------------------------- + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(outputPath, SaveFormat.Xlsb); + + // ------------------------------------------------- + // 4️⃣ Reload the saved file to demonstrate persistence + // ------------------------------------------------- + Workbook reloaded = new Workbook(outputPath); + + // ------------------------------------------------- + // 5️⃣ Retrieve the custom property's value + // ------------------------------------------------- + string customValue = reloaded.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); + + // ------------------------------------------------- + // 6️⃣ Display the retrieved value (optional) + // ------------------------------------------------- + Console.WriteLine($"Custom property value: {customValue}"); + } +} +``` + +> **Remember:** เปลี่ยน `outputPath` ให้เป็นโฟลเดอร์ที่คุณมีสิทธิ์เขียน หากคุณใช้ Linux/macOS ให้ใช้พาธเช่น `"/tmp/WithCustomProp.xlsb"`. + +--- + +## คำถามที่พบบ่อย & กรณีขอบเขต + +### ถ้าคุณสมบัติมีอยู่แล้วจะทำอย่างไร? +การเรียก `Add` ด้วยคีย์ที่มีอยู่แล้วจะทำให้เกิด `ArgumentException` ใช้ `ContainsKey` หรือห่อการเรียกใน `try/catch` หากคุณไม่แน่ใจ + +```csharp +if (!worksheet.CustomProperties.ContainsKey("MyProperty")) +{ + worksheet.CustomProperties.Add("MyProperty", "AnotherValue"); +} +``` + +### สามารถเก็บค่าที่ไม่ใช่สตริงได้หรือไม่? +ได้เลย `Value` รองรับ `object` ใด ๆ สำหรับตัวเลข, วันที่, หรือบูลีน เพียงส่งประเภทที่เหมาะสม—Aspose.Cells จะจัดการการแปลงเมื่ออ่านกลับ + +### คุณสมบัติเสมออยู่เมื่อตแปลงเป็น XLSX หรือไม่? +ใช่ คุณสมบัติที่กำหนดเองเป็นส่วนหนึ่งของการแสดงผล XML ของแผ่นงาน ดังนั้นจึงคงอยู่ในรูปแบบ XLSX, XLS, และ XLSB + +### **วิธีเพิ่มคุณสมบัติ** ให้หลายแผ่นงาน? +วนลูปผ่านคอลเลกชัน `Worksheets` แล้วเรียก `CustomProperties.Add` สำหรับแต่ละแผ่นงานที่ต้องการ + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + ws.CustomProperties.Add("ExportedBy", "MyApp"); +} +``` + +### เคล็ดลับประสิทธิภาพเมื่อ **บันทึก workbook เป็น XLSB** จำนวนมาก +หากคุณสร้างไฟล์หลายร้อยไฟล์ ให้ใช้อินสแตนซ์ `Workbook` เดียวและเรียก `Clear` หลังการบันทึกแต่ละครั้งเพื่อคืนหน่วยความจำ นอกจากนี้ตั้งค่า `Workbook.Settings.CalculateFormulaOnOpen = false` หากไม่ต้องการให้สูตรคำนวณเมื่อเปิด + +--- + +## สรุป + +คุณได้เรียนรู้ **วิธีบันทึก XLSB** ใน C# พร้อมฝังและดึงคุณสมบัติที่กำหนดเองด้วย Aspose.Cells แล้ว โซลูชันครบถ้วน—สร้างเวิร์กบุ๊ก, เพิ่มคุณสมบัติ, บันทึกด้วย **save workbook as XLSB**, โหลดใหม่, และอ่านค่า—ทั้งหมดภายในไม่ถึง 50 บรรทัดของโค้ด + +ต่อจากนี้คุณอาจสำรวจต่อ: + +- การเพิ่มหลายคุณสมบัติที่กำหนดเองต่อแผ่นงาน +- การเก็บอ็อบเจ็กต์ซับซ้อนผ่านสตริง JSON +- การเข้ารหัสไฟล์ XLSB เพื่อความปลอดภัยเพิ่มขึ้น + +ลองนำไอเดียเหล่านี้ไปใช้ แล้วคุณจะกลายเป็นผู้เชี่ยวชาญด้านการทำงานอัตโนมัติของ Excel ในทีมของคุณ หากมีคำถามหรือกรณีที่ซับซ้อน แสดงความคิดเห็นด้านล่าง แล้วขอให้โค้ดดิ้งสนุก! + +![วิธีบันทึก XLSB พร้อมคุณสมบัติที่กำหนดเอง](/images/how-to-save-xlsb.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/thai/net/excel-copy-worksheet/_index.md b/cells/thai/net/excel-copy-worksheet/_index.md index 6fb6d1eed4..0010cc05ae 100644 --- a/cells/thai/net/excel-copy-worksheet/_index.md +++ b/cells/thai/net/excel-copy-worksheet/_index.md @@ -42,6 +42,7 @@ 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 | +- [วิธีคัดลอกแผ่นงานใน C# ด้วย Aspose.Cells – คู่มือฉบับสมบูรณ์](./how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/) | เรียนรู้ขั้นตอนการคัดลอกแผ่นงานใน C# ด้วย Aspose.Cells อย่างละเอียด พร้อมตัวอย่างโค้ดที่ทำตามได้ง่าย {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/thai/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md b/cells/thai/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md new file mode 100644 index 0000000000..a5f982a476 --- /dev/null +++ b/cells/thai/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md @@ -0,0 +1,266 @@ +--- +category: general +date: 2026-03-30 +description: วิธีคัดลอกแผ่นงานใน C# ด้วย Aspose.Cells – คู่มือขั้นตอนโดยละเอียดที่ครอบคลุมการคัดลอกช่วงเซลล์, + การคัดลอกคอลัมน์ระหว่างแผ่นงาน, การคัดลอกตาราง Pivot ของแผ่นงาน และการเพิ่มโค้ดแผ่นงานใหม่ +draft: false +keywords: +- how to copy worksheet +- copy cell range +- copy columns between sheets +- copy worksheet pivot table +- add new worksheet code +language: th +og_description: เรียนรู้วิธีคัดลอกแผ่นงานใน C# ด้วย Aspose.Cells คู่มือนี้แสดงการคัดลอกช่วงเซลล์, + รักษาตาราง Pivot, คัดลอกคอลัมน์ระหว่างแผ่นงาน, และเพิ่มโค้ดสร้างแผ่นงานใหม่ +og_title: วิธีคัดลอกแผ่นงานใน C# – บทเรียน Aspose.Cells อย่างเต็มรูปแบบ +tags: +- Aspose.Cells +- C# +- Excel Automation +title: วิธีคัดลอกแผ่นงานใน C# ด้วย Aspose.Cells – คู่มือฉบับสมบูรณ์ +url: /th/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# วิธีคัดลอก Worksheet ใน C# ด้วย Aspose.Cells – คู่มือฉบับสมบูรณ์ + +เคยสงสัย **how to copy worksheet** ใน C# โดยไม่สูญเสีย Pivot Table หรือสูตรใดเลยหรือไม่? คุณไม่ได้เป็นคนเดียว—นักพัฒนาหลายคนเจออุปสรรคเมื่อจำเป็นต้องทำสำเนาแผ่นงานโดยยังคงรักษาข้อมูลทั้งหมดไว้ครบถ้วน ในบทแนะนำนี้เราจะพาคุณผ่านโซลูชันเชิงปฏิบัติแบบครบวงจร ที่ไม่เพียงคัดลอกข้อมูล แต่ยังคง **copy worksheet pivot table**, จัดการ **copy cell range**, และแสดง **add new worksheet code** ที่คุณต้องการ + +เราจะครอบคลุมทุกอย่างตั้งแต่การโหลดเวิร์กบุ๊กต้นฉบับจนถึงการบันทึกไฟล์ปลายทาง เพื่อให้คุณสามารถ **copy columns between sheets**, รักษาวัตถุต่าง ๆ, และทำให้โค้ดของคุณสะอาดตา ไม่มีการอ้างอิงที่คลุมเครือ เพียงตัวอย่างที่ทำงานได้เต็มรูปแบบที่คุณสามารถนำไปใช้ในโปรเจกต์ของคุณได้ทันที + +## สิ่งที่บทแนะนำนี้ครอบคลุม + +- การโหลดไฟล์ Excel ที่มีอยู่แล้วด้วย Aspose.Cells +- การใช้ **add new worksheet code** เพื่อสร้างแผ่นงานเป้าหมาย +- การกำหนด **copy cell range** ที่รวม Pivot Table +- การตั้งค่า **CopyOptions** เพื่อรักษาชาร์ต, สูตร, และ Pivot Table ไว้ครบถ้วน +- การดำเนินการ **copy columns between sheets** ด้วยความแม่นยำระดับแถว +- การบันทึกผลลัพธ์และตรวจสอบว่า Worksheet ถูกคัดลอกอย่างถูกต้อง + +เมื่อจบการอ่านคุณจะสามารถตอบคำถาม “how to copy worksheet” ได้อย่างมั่นใจ ไม่ว่าจะเป็นการอัตโนมัติรายงานหรือการสร้าง UI ที่ขับเคลื่อนด้วยสเปรดชีต + +## วิธีคัดลอก Worksheet – ภาพรวม + +ก่อนที่เราจะลงลึกในโค้ด ให้มาดูขั้นตอนระดับสูงกันเป็นสูตรอาหาร: + +1. **Load** เวิร์กบุ๊กต้นฉบับ (`Source.xlsx`). +2. **Add** แผ่นงานใหม่เพื่อเก็บสำเนา (`add new worksheet code`). +3. **Define** พื้นที่ที่ต้องการทำสำเนา (`copy cell range`). +4. **Configure** ตัวเลือกการคัดลอกเพื่อให้ Pivot Table อยู่รอด (`copy worksheet pivot table`). +5. **Copy** แถวและคอลัมน์ (`copy columns between sheets`). +6. **Save** เวิร์กบุ๊กใหม่ (`Destination.xlsx`). + +เท่านี้—หกขั้นตอน ไม่มีเวทมนตร์ ทุกขั้นตอนจะอธิบายพร้อมโค้ดสแนปและเหตุผลเบื้องหลัง + +## ขั้นตอนที่ 1 – โหลดเวิร์กบุ๊กต้นฉบับ + +สิ่งแรกที่ต้องทำคือสร้างอินสแตนซ์ `Workbook` ที่ชี้ไปยังไฟล์ที่ต้องการทำสำเนา ขั้นตอนนี้สำคัญเพราะ Aspose.Cells ทำงานโดยตรงกับระบบไฟล์ ไม่ใช่กับ UI ของ Office + +```csharp +using Aspose.Cells; + +// Path to the original file +string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; +string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + +// Load the workbook – this is the starting point for how to copy worksheet +Workbook workbook = new Workbook(sourcePath); +``` + +*ทำไมขั้นตอนนี้ถึงสำคัญ:* การโหลดไฟล์จะสร้างการแสดงผลในหน่วยความจำของทุกแผ่นงาน, เซลล์, และวัตถุต่าง ๆ หากไม่มีขั้นตอนนี้ จะไม่มีอะไรให้คัดลอกและการเรียก `add new worksheet code` ต่อไปจะล้มเหลวเพราะข้อมูลต้นฉบับไม่มีอยู่ + +## ขั้นตอนที่ 2 – เพิ่มแผ่นงานใหม่ (add new worksheet code) + +ต่อไปเราต้องมีที่สำหรับวางข้อมูลที่คัดลอก นี่คือจุดที่ **add new worksheet code** มีประโยชน์ คุณสามารถตั้งชื่อแผ่นงานได้ตามต้องการ ที่นี่เราใช้ชื่อ `"Copy"` + +```csharp +// Grab the first worksheet (the one we want to copy) +Worksheet sourceSheet = workbook.Worksheets[0]; + +// Add a fresh worksheet to receive the copy +Worksheet copySheet = workbook.Worksheets.Add("Copy"); +``` + +*เคล็ดลับ:* หากต้องการคัดลอกหลายแผ่นงาน ให้เรียก `Worksheets.Add` ภายในลูปและตั้งชื่อแต่ละแผ่นให้เป็นเอกลักษณ์ วิธีนี้จะช่วยหลีกเลี่ยงการชนชื่อและทำให้เวิร์กบุ๊กของคุณเป็นระเบียบ + +## ขั้นตอนที่ 3 – กำหนด Copy Cell Range + +**copy cell range** บอก Aspose.Cells ว่าแถวและคอลัมน์ใดบ้างที่ต้องการทำสำเนา ในหลายกรณีจริง ๆ ช่วงนี้จะรวม Pivot Table ดังนั้นต้องระบุอย่างแม่นยำ + +```csharp +// Define the area that contains the pivot table (A1:G20) +CellArea sourceRange = new CellArea +{ + StartRow = 0, // Row 1 (zero‑based) + StartColumn = 0, // Column A + EndRow = 19, // Row 20 + EndColumn = 6 // Column G +}; + +// Destination range – we start at the same top‑left corner +CellArea destinationRange = new CellArea +{ + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 +}; +``` + +*ทำไมต้องกำหนดช่วงนี้:* การระบุช่วงอย่างชัดเจนช่วยหลีกเลี่ยงการคัดลอกทั้งแผ่นงาน (ซึ่งอาจเสียเวลา) และทำให้แน่ใจว่า Pivot Table อยู่ภายในพื้นที่ที่คัดลอก นี่คือหัวใจของ **how to copy worksheet** เมื่อคุณต้องการเพียงบางส่วนของแผ่นงาน + +## ขั้นตอนที่ 4 – ตั้งค่า Copy Options (preserve copy worksheet pivot table) + +Aspose.Cells มีอ็อบเจ็กต์ `CopyOptions` ที่ควบคุมสิ่งที่ถูกวางลงไป เพื่อรักษา Pivot Table, ชาร์ต, และสูตร เราตั้งค่า `PasteType.All` และเปิดใช้งาน `PasteSpecial` + +```csharp +CopyOptions copyOptions = new CopyOptions +{ + PasteType = PasteType.All, // Copy everything: values, formats, objects + PasteSpecial = true // Enable special paste to retain pivot tables +}; +``` + +*คำอธิบาย:* `PasteType.All` เป็นตัวเลือกที่ครอบคลุมที่สุด ส่วน `PasteSpecial` บอกเอนจินให้จัดการกับวัตถุซับซ้อนเช่น Pivot Table อย่างถูกต้อง การข้ามขั้นตอนนี้เป็นข้อผิดพลาดทั่วไปที่ทำให้แผ่นงานที่คัดลอกสูญเสียฟีเจอร์เชิงโต้ตอบ + +## ขั้นตอนที่ 5 – คัดลอกแถวและคอลัมน์ (copy columns between sheets) + +ต่อไปเป็นขั้นตอนที่หนักที่สุด: ย้ายข้อมูลจริง เราจะใช้ `CopyRows` และ `CopyColumns` เพื่อจัดการ **copy columns between sheets** การทำทั้งสองอย่างช่วยให้การรวมเซลล์และความกว้างของคอลัมน์ถูกคงไว้ + +```csharp +// Copy rows from the source to the destination sheet +sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + +// Copy columns from the source to the destination sheet +sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); +``` + +*สิ่งที่เกิดขึ้น:* `CopyRows` ย้ายข้อมูลแถวต่อแถว ส่วน `CopyColumns` ทำเช่นเดียวกันในระดับคอลัมน์ การทำทั้งสองอย่างร่วมกันรับประกันว่าบล็อกสี่เหลี่ยมผืนผ้าทั้งหมดถูกทำสำเนาอย่างครบถ้วน ซึ่งจำเป็นเมื่อคุณต้อง **copy columns between sheets** ที่มีความกว้างของคอลัมน์หรือคอลัมน์ที่ซ่อนต่างกัน + +## ขั้นตอนที่ 6 – บันทึกเวิร์กบุ๊ก + +สุดท้าย เขียนการเปลี่ยนแปลงกลับไปยังดิสก์ ขั้นตอนนี้ทำให้กระบวนการ **how to copy worksheet** เสร็จสมบูรณ์ + +```csharp +// Save the workbook with the newly copied sheet +workbook.Save(destinationPath); +``` + +*เคล็ดลับการตรวจสอบ:* เปิด `Destination.xlsx` แล้วตรวจสอบว่าแผ่นงาน `"Copy"` มีลักษณะเหมือนต้นฉบับ, Pivot Table ทำงานได้, และความกว้างของคอลัมน์ตรงกัน หากมีสิ่งใดผิดพลาด ให้กลับไปตรวจสอบการตั้งค่า `CopyOptions` + +## กรณีขอบและรูปแบบที่พบบ่อย + +### การคัดลอกหลาย Worksheet + +หากต้องการทำสำเนาหลายแผ่นงาน ให้ใส่ตรรกะข้างต้นไว้ในลูป `foreach`: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + Worksheet newWs = workbook.Worksheets.Add(ws.Name + "_Copy"); + // Re‑use sourceRange/destinationRange or calculate per sheet + // Then call CopyRows/CopyColumns as shown earlier +} +``` + +### การรักษาสูตรระหว่างเวิร์กบุ๊กที่ต่างกัน + +เมื่อเวิร์กบุ๊กต้นฉบับและปลายทางมี Named Range ที่แตกต่างกัน ให้ตั้งค่า `copyOptions` เป็น `PasteType.Formulas` เพิ่มเติมจาก `All`: + +```csharp +copyOptions.PasteType = PasteType.All | PasteType.Formulas; +``` + +### ช่วงข้อมูลขนาดใหญ่และประสิทธิภาพ + +สำหรับชุดข้อมูลขนาดมหาศาล (หลายแสนแถว) พิจารณาใช้เฉพาะ `CopyRows` และละเว้น `CopyColumns` หากความกว้างของคอลัมน์ไม่สำคัญ วิธีนี้สามารถลดเวลาได้หลายวินาที + +## ตัวอย่างทำงานเต็มรูปแบบ + +ด้านล่างเป็นโปรแกรมเต็มรูปแบบที่พร้อมรัน คุณเพียงแค่วางลงในแอปคอนโซล ปรับเส้นทางไฟล์ แล้วกด **F5** + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // ---------- Step 1: Load the source workbook ---------- + string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; + string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + Workbook workbook = new Workbook(sourcePath); + + // ---------- Step 2: Add a new worksheet (add new worksheet code) ---------- + Worksheet sourceSheet = workbook.Worksheets[0]; + Worksheet copySheet = workbook.Worksheets.Add("Copy"); + + // ---------- Step 3: Define the copy cell range ---------- + CellArea sourceRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + CellArea destinationRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + + // ---------- Step 4: Set copy options (preserve copy worksheet pivot table) ---------- + CopyOptions copyOptions = new CopyOptions + { + PasteType = PasteType.All, + PasteSpecial = true + }; + + // ---------- Step 5: Copy rows and columns (copy columns between sheets) ---------- + sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + + sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); + + // ---------- Step 6: Save the workbook ---------- + workbook.Save(destinationPath); + } +} +``` + +**ผลลัพธ์ที่คาดหวัง:** เปิด `Destination.xlsx` จะเห็นแผ่นงานชื่อ **Copy** ที่สะท้อนแผ่นงานแรกของ `Source.xlsx` อย่างครบถ้วน รวมถึง Pivot Table, การจัดรูปแบบ, และความกว้างของคอลัมน์ ไฟล์ต้นฉบับจะไม่ถูกแก้ไข + +## คำถามที่พบบ่อย + +**Q: โค้ดนี้ทำงานกับไฟล์ .xlsx ที่สร้างโดย Excel 2019 หรือไม่?** +A: ทำได้แน่นอน Aspose.Cells รองรับรูปแบบ Excel สมัยใหม่ทั้งหมด ดังนั้นโค้ดเดียวกันจึงทำงานได้กับไฟล์ `.xlsx`, `.xlsm` และแม้แต่ไฟล์ `.xls` เก่า + +{{< /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/thai/net/excel-custom-number-date-formatting/_index.md b/cells/thai/net/excel-custom-number-date-formatting/_index.md index ad800fdf17..9df1e956a2 100644 --- a/cells/thai/net/excel-custom-number-date-formatting/_index.md +++ b/cells/thai/net/excel-custom-number-date-formatting/_index.md @@ -36,6 +36,10 @@ เรียนรู้วิธีการตรวจสอบค่าเซลล์ Excel เทียบกับรูปแบบตัวเลขที่กำหนดเองโดยใช้ Aspose.Cells สำหรับ .NET ด้วยบทช่วยสอนทีละขั้นตอนนี้ ### [ระบุฟิลด์สูตรเมื่อนำเข้าข้อมูลไปยังแผ่นงาน Excel](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) เรียนรู้วิธีการนำเข้าข้อมูลลงในแผ่นงาน Excel ด้วยฟิลด์สูตรที่ระบุโดยใช้ Aspose.Cells สำหรับ .NET ในบทช่วยสอนโดยละเอียดนี้ +### [จัดรูปแบบตัวเลขด้วยตัวคั่นใน C# – คู่มือ Aspose.Cells ฉบับสมบูรณ์](./format-number-with-separator-in-c-complete-aspose-cells-guid/) +เรียนรู้วิธีจัดรูปแบบตัวเลขโดยใช้ตัวคั่นใน C# ด้วย Aspose.Cells อย่างละเอียดและครบถ้วน +### [จัดรูปแบบวันที่ ISO จาก Excel – คู่มือ C# ฉบับสมบูรณ์](./format-date-iso-from-excel-complete-c-guide/) +เรียนรู้วิธีจัดรูปแบบวันที่เป็น ISO จากไฟล์ Excel ด้วย Aspose.Cells สำหรับ .NET ผ่านคู่มือ C# ฉบับสมบูรณ์นี้ {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/thai/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md b/cells/thai/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..6e204ea231 --- /dev/null +++ b/cells/thai/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md @@ -0,0 +1,217 @@ +--- +category: general +date: 2026-03-30 +description: เรียนรู้วิธีจัดรูปแบบวันที่เป็น ISO ขณะอ่านค่าตารางเวลาใน Excel และสกัดข้อมูลวันที่และเวลาใน + Excel โดยใช้ Aspose.Cells ใน C# +draft: false +keywords: +- format date iso +- read excel datetime +- extract datetime excel +- Aspose.Cells date parsing +- Japanese era dates +language: th +og_description: จัดรูปแบบวันที่เป็น ISO จากข้อมูล Excel ด้วย Aspose.Cells คู่มือนี้แสดงวิธีอ่านวันที่และเวลาใน + Excel, ดึงค่าตัวแปรวันที่และเวลา, และแปลงเป็นรูปแบบ ISO. +og_title: การจัดรูปแบบวันที่เป็น ISO จาก Excel – คู่มือ C# ทีละขั้นตอน +tags: +- C# +- Excel +- DateTime +- Aspose.Cells +title: การจัดรูปแบบวันที่ ISO จาก Excel – คู่มือ C# ฉบับสมบูรณ์ +url: /th/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# format date iso from Excel – Complete C# Guide + +เคยต้อง **format date iso** เมื่อนำวันที่ออกจากไฟล์ Excel หรือไม่? บางครั้งคุณอาจต้องจัดการกับวันที่ตามยุคญี่ปุ่น, หรือแค่ต้องการสตริง `yyyy‑MM‑dd` ที่สะอาดสำหรับ payload ของ API ในบทแนะนำนี้คุณจะได้เห็นวิธี **read Excel datetime** เซลล์, **extract datetime Excel** ค่า, และแปลงเป็นรูปแบบ ISO‑8601 — ไม่ต้องคาดเดาใด ๆ + +เราจะเดินผ่านตัวอย่างจริงที่ใช้ Aspose.Cells, อธิบายว่าทำไมแต่ละบรรทัดถึงสำคัญ, และแสดงผลลัพธ์สุดท้ายที่คุณสามารถคัดลอก‑วางลงในโปรเจคของคุณได้ เมื่อเสร็จแล้วคุณจะสามารถจัดการกับสตริงยุคแปลก ๆ เช่น “令和3年5月1日” และสร้างวันที่ ISO มาตรฐาน พร้อมใช้กับฐานข้อมูล, JSON, หรือที่ใดก็ได้ที่คุณต้องการ + +## Prerequisites + +- .NET 6.0 หรือใหม่กว่า (โค้ดนี้ทำงานกับ .NET Framework ด้วย) +- Aspose.Cells for .NET (รุ่นทดลองหรือเวอร์ชันที่มีลิขสิทธิ์) +- ความคุ้นเคยพื้นฐานกับ C# และแนวคิดของ Excel +- Visual Studio หรือเครื่องมือแก้ไข C# ใด ๆ ที่คุณชอบ + +ไม่ต้องใช้แพ็กเกจ NuGet เพิ่มเติมนอกจาก Aspose.Cells, การตั้งค่าจึงค่อนข้างตรงไปตรงมา + +--- + +## Step 1: Create a Workbook and Target the First Worksheet + +สิ่งแรกที่คุณทำคือสร้างอ็อบเจกต์ `Workbook` ใหม่ ซึ่งจะให้การแสดงผลของไฟล์ Excel ในหน่วยความจำที่คุณสามารถจัดการหรืออ่านได้ + +```csharp +using Aspose.Cells; +using System.Globalization; + +// Step 1: Initialize a new workbook and grab the first worksheet +Workbook workbook = new Workbook(); // creates an empty .xlsx +Worksheet worksheet = workbook.Worksheets[0]; // the default sheet is "Sheet1" +``` + +*Why this matters:* +การสร้าง workbook ผ่านโปรแกรมช่วยให้คุณหลีกเลี่ยงการต้องจัดการไฟล์จริงระหว่างการทดสอบ อีกทั้งยังทำให้การอ้างอิง worksheet มีความถูกต้องเสมอ — ไม่เจอข้อผิดพลาด null‑reference เมื่อคุณพยายาม **read Excel datetime** ค่า + +--- + +## Step 2: Write a Japanese Era Date String into a Cell + +เป้าหมายของเราคือการสาธิตการแยกวิเคราะห์วันที่ที่ไม่ใช่ Gregorian เราจะใส่สตริงยุคลงในเซลล์ **A1** โดยตรง + +```csharp +// Step 2: Insert a Japanese era date string into cell A1 +worksheet.Cells["A1"].PutValue("令和3年5月1日"); +``` + +*Pro tip:* หากคุณดึงข้อมูลจาก workbook ที่มีอยู่แล้ว คุณจะข้ามการเรียก `PutValue` และอ้างอิงเซลล์ที่มีวันที่อยู่แล้ว สิ่งสำคัญคือเซลล์ต้องถือ **string** ที่แสดงวันที่ตามปฏิทินจันทรคติของญี่ปุ่น + +--- + +## Step 3: Configure a Culture That Understands the Japanese Lunisolar Calendar + +คลาส `CultureInfo` ของ .NET ให้คุณกำหนดวิธีการตีความวันที่ โดยการสลับปฏิทิน Gregorian เริ่มต้นเป็น `JapaneseLunisolarCalendar` คุณจะให้ตัวแยกวิเคราะห์มีบริบทที่ต้องการ + +```csharp +// Step 3: Set up a culture using the Japanese lunisolar calendar +CultureInfo japaneseCulture = new CultureInfo("ja-JP"); +japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); +``` + +*Why we do this:* +หากคุณพยายามแยกวิเคราะห์ “令和3年5月1日” ด้วยวัฒนธรรมเริ่มต้น .NET จะโยน `FormatException` การสลับเป็นปฏิทินจันทรคติทำให้ runtime รู้ว่าจะแมป “令和3年” (ปีที่ 3 ของยุค Reiwa) ไปเป็นปี Gregorian 2021 อย่างไร + +--- + +## Step 4: Parse the Cell Value as a `DateTime` Using the Configured Culture + +ตอนนี้มาถึงหัวใจของการทำงาน — แปลงสตริงยุคให้เป็นอ็อบเจกต์ `DateTime` ที่ถูกต้อง Aspose.Cells มี overload `GetDateTime` ที่รับ `CultureInfo` ให้ใช้ + +```csharp +// Step 4: Retrieve the cell value as a DateTime, respecting the Japanese culture +DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); +``` + +*What’s happening under the hood:* +`GetDateTime` อ่านสตริงดิบ, ใช้กฎปฏิทินของวัฒนธรรมที่ให้มา, และคืนค่า `DateTime` ที่แสดงช่วงเวลาเดียวกันในปฏิทิน Gregorian นี่คือจุดที่คุณ **extract datetime Excel** ข้อมูลในรูปแบบที่ .NET สามารถทำงานได้ + +--- + +## Step 5: Output the Parsed Date in ISO 8601 Format + +สุดท้าย เราจัดรูปแบบ `DateTime` เป็นสตริง ISO — `yyyy‑MM‑dd` — ซึ่งเป็นที่ยอมรับโดย API, ฐานข้อมูล, และเฟรมเวิร์กฝั่งหน้า + +```csharp +// Step 5: Print the date in ISO format (e.g., 2021-05-01) +Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // Output: 2021-05-01 +``` + +*Why ISO?* +ISO 8601 กำจัดความคลุมเครือ “05/01/2021” อาจหมายถึง 1 พฤษภาคมหรือ 5 มกราคม ขึ้นกับท้องถิ่น `2021-05-01` ชัดเจนอย่างแน่นอน นี่คือเหตุผลที่เรามัก **format date iso** ในทุกสถานการณ์การบูรณาการ + +--- + +## Full Working Example + +ด้านล่างเป็นโปรแกรมเต็มที่พร้อมรัน คัดลอกไปยังโปรเจค console app, เพิ่มการอ้างอิง Aspose.Cells, แล้วกด **F5** + +```csharp +using Aspose.Cells; +using System; +using System.Globalization; + +class Program +{ + static void Main() + { + // 1️⃣ Create workbook and select the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("令和3年5月1日"); + + // 3️⃣ Set up Japanese lunisolar culture + CultureInfo japaneseCulture = new CultureInfo("ja-JP"); + japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); + + // 4️⃣ Parse the cell value as DateTime using the culture + DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); + + // 5️⃣ Output the date in ISO format + Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // 2021-05-01 + } +} +``` + +**Expected output** + +``` +2021-05-01 +``` + +รันครั้งเดียวแล้วคุณจะเห็นวันที่ที่จัดรูปแบบเป็น ISO ปรากฏบนคอนโซล นั่นคือกระบวนการทั้งหมดจาก **read Excel datetime** ไปสู่ **format date iso** + +--- + +## Handling Common Edge Cases + +### 1. Cells Containing Real Excel Date Numbers + +บางครั้ง Excel เก็บวันที่เป็นตัวเลขซีเรียล (เช่น `44204`) ในกรณีนั้นคุณไม่ต้องใช้วัฒนธรรม; เพียงเรียก `GetDateTime()` โดยไม่มีพารามิเตอร์: + +```csharp +DateTime serialDate = worksheet.Cells["B2"].GetDateTime(); // B2 holds a numeric date +Console.WriteLine(serialDate.ToString("yyyy-MM-dd")); +``` + +### 2. Blank or Invalid Cells + +หากเซลล์ว่างหรือมีสตริงที่ไม่สามารถแยกวิเคราะห์ได้ `GetDateTime` จะโยนข้อผิดพลาด ห่อการเรียกใน `try/catch` หรือเช็ค `IsDateTime` ก่อน: + +```csharp +if (worksheet.Cells["C3"].Type == CellValueType.IsDateTime) +{ + DateTime safeDate = worksheet.Cells["C3"].GetDateTime(); + Console.WriteLine(safeDate.ToString("yyyy-MM-dd")); +} +else +{ + Console.WriteLine("Cell C3 does not contain a valid date."); +} +``` + +### 3. Different Era Formats + +ยุคญี่ปุ่นอื่น ๆ (Heisei, Showa) ใช้รูปแบบเดียวกัน `JapaneseLunisolarCalendar` จะจัดการให้โดยอัตโนมัติ ไม่ต้องเขียนตรรกะเพิ่มเติม — เพียงส่งสตริงเข้าไป + +--- + +## Pro Tips & Gotchas + +- **Performance:** เมื่อประมวลผลสเปรดชีตขนาดใหญ่ ควรใช้อินสแตนซ์ `CultureInfo` เดียวซ้ำแทนการสร้างใหม่ในลูป +- **Thread Safety:** อ็อบเจกต์ `CultureInfo` จะเป็นแบบอ่าน‑อย่างเดียวหลังตั้งค่าปฏิทินแล้ว จึงปลอดภัยต่อการแชร์ระหว่างเธรด +- **Aspose.Cells Licensing:** หากใช้รุ่นทดลอง จำไว้ว่าบางฟีเจอร์อาจจำกัดหลังหมดระยะทดลอง การแยกวิเคราะห์วันที่ที่แสดงนี้ทำงานได้ทั้งในโหมดทดลองและลิขสิทธิ์ +- **Time Zones:** `DateTime` ที่ได้เป็น **unspecified** (ไม่มีโซนเวลา) หากต้องการ UTC ให้เรียก `DateTime.SpecifyKind(parsedDate, DateTimeKind.Utc)` หรือแปลงด้วย `TimeZoneInfo` + +--- + +## Conclusion + +เราได้ครอบคลุมทุกอย่างที่คุณต้องการเพื่อ **format date iso** จาก workbook Excel ด้วย C# ตั้งแต่สตริงยุคญี่ปุ่นดิบ, **read Excel datetime**, ตั้งค่าวัฒนธรรมที่เหมาะสม, **extract datetime excel**, และสุดท้ายส่งออกสตริง ISO‑8601 ที่สะอาด วิธีนี้ใช้ได้กับการแสดงวันที่ใด ๆ ที่ Excel อาจส่งมา ไม่ว่าจะเป็นตัวเลขซีเรียล, สตริงตามท้องถิ่น, หรือรูปแบบยุคดั้งเดิม + +ขั้นตอนต่อไป? ลองวนลูปคอลัมน์วันที่ทั้งหมด, เขียนผลลัพธ์ ISO กลับไปยังชีตใหม่, หรือส่งตรงไปยัง payload JSON ของเว็บเซอร์วิส หากคุณสนใจระบบปฏิทินอื่น (Hebrew, Islamic) Aspose.Cells และ `CultureInfo` ของ .NET ทำให้การทดลองเหล่านั้นง่ายไม่ยาก + +มีคำถามหรือรูปแบบวันที่ที่จัดการยาก? แสดงความคิดเห็นด้านล่าง แล้วขอให้โค้ดของคุณสนุก! + +{{< /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/thai/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md b/cells/thai/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md new file mode 100644 index 0000000000..fc7f9766f7 --- /dev/null +++ b/cells/thai/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md @@ -0,0 +1,251 @@ +--- +category: general +date: 2026-03-30 +description: เรียนรู้วิธีจัดรูปแบบตัวเลขด้วยตัวคั่นโดยใช้ Aspose.Cells ใน C# รวมถึงการตั้งค่ารูปแบบตัวเลขแบบกำหนดเอง + การเพิ่มตัวคั่นหลักพัน การจัดรูปแบบตำแหน่งทศนิยม และวิธีจัดรูปแบบเซลล์ +draft: false +keywords: +- format number with separator +- set custom number format +- add thousands separator +- format decimal places +- how to format cell +language: th +og_description: จัดรูปแบบตัวเลขด้วยตัวคั่นใน C#. คู่มือนี้แสดงวิธีตั้งค่ารูปแบบตัวเลขแบบกำหนดเอง, + เพิ่มตัวคั่นหลักพัน, กำหนดรูปแบบตำแหน่งทศนิยม, และวิธีจัดรูปแบบเซลล์โดยใช้ Aspose.Cells. +og_title: จัดรูปแบบตัวเลขด้วยตัวคั่นใน C# – บทเรียน Aspose.Cells +tags: +- C# +- Aspose.Cells +- Number Formatting +title: จัดรูปแบบตัวเลขด้วยตัวคั่นใน C# – คู่มือ Aspose.Cells ฉบับสมบูรณ์ +url: /th/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# การจัดรูปแบบตัวเลขด้วยตัวคั่นใน C# – คู่มือ Aspose.Cells ฉบับสมบูรณ์ + +เคยต้อง **จัดรูปแบบตัวเลขด้วยตัวคั่น** ในสเปรดชีตแต่ไม่แน่ใจว่าจะใช้ API ใด? คุณไม่ได้เป็นคนเดียว—นักพัฒนาต้องต่อสู้กับตัวคั่นหลักพัน, จำนวนตำแหน่งทศนิยม, และรูปแบบกำหนดเองเมื่อต้องส่งออกข้อมูลบ่อยครั้ง + +ข่าวดี: Aspose.Cells ทำให้เรื่องนี้ง่ายดายมาก ในบทเรียนนี้เราจะเดินผ่านตัวอย่างจริงที่ **ตั้งค่ารูปแบบตัวเลขแบบกำหนดเอง**, **เพิ่มตัวคั่นหลักพัน**, **กำหนดตำแหน่งทศนิยม**, และแสดง **วิธีจัดรูปแบบเซลล์** ให้เป็นสตริง สุดท้ายคุณจะได้โค้ดสั้น ๆ ที่พร้อมรันและสามารถนำไปใส่ในโปรเจกต์ .NET ใดก็ได้ + +## สิ่งที่คู่มือนี้ครอบคลุม + +* แพคเกจ NuGet ที่ต้องใช้และวิธีติดตั้ง +* โค้ดขั้นตอนต่อขั้นตอนที่สร้าง workbook, เขียนค่าตัวเลข, และใช้รูปแบบกำหนดเอง +* ทำไม `ExportTableOptions.ExportAsString` ถึงเป็นวิธีที่แนะนำในการดึงค่าที่จัดรูปแบบแล้ว +* จุดบกพร่องทั่วไป—เช่น ลืมเปิด `ExportAsString` หรือใช้รูปแบบมาสก์ผิด +* วิธีปรับมาสก์รูปแบบหากต้องการจำนวนตำแหน่งทศนิยมหรือสไตล์ตัวคั่นที่ต่างกัน + +ไม่มีลิงก์เอกสารภายนอกที่จำเป็น; ทุกอย่างที่คุณต้องการอยู่ที่นี่แล้ว ไปดูกันเลย + +--- + +## ข้อกำหนดเบื้องต้น + +| Requirement | Reason | +|-------------|--------| +| .NET 6.0 หรือใหม่กว่า | Aspose.Cells 23.10+ รองรับ .NET Standard 2.0+, ดังนั้น .NET 6 จึงปลอดภัยและเป็นเวอร์ชันล่าสุด | +| Visual Studio 2022 (หรือ IDE C# ใดก็ได้) | ทำให้การดีบักและการจัดการแพคเกจเป็นเรื่องง่าย | +| Aspose.Cells for .NET NuGet package | มีคลาส `Workbook`, `Worksheet`, และ `ExportTableOptions` ที่เราจะใช้ | + +คุณสามารถติดตั้งแพคเกจได้ผ่าน Package Manager Console: + +```powershell +Install-Package Aspose.Cells +``` + +เท่านี้—ไม่มี DLL เพิ่มเติม, ไม่มี COM interop, เพียงอ้างอิง NuGet เพียงหนึ่งเดียว + +--- + +## ขั้นตอนที่ 1: เริ่มต้น Workbook ใหม่ (วิธีจัดรูปแบบเซลล์) + +สิ่งแรกที่เราทำคือสร้างอินสแตนซ์ `Workbook` ใหม่ ถือเป็นไฟล์ Excel ว่างเปล่าที่พร้อมรับข้อมูล + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Create a new workbook – this is where we’ll format the cell. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **ทำไมเรื่องนี้สำคัญ:** `Workbook` เป็นจุดเริ่มต้นของทุกการทำงานใน Aspose.Cells การดึง worksheet แรก (`Worksheets[0]`) จะให้แคนวาสที่สะอาดโดยไม่ต้องตั้งชื่อแผ่น + +--- + +## ขั้นตอนที่ 2: เขียนค่าตัวเลขลงในเซลล์เป้าหมาย + +ต่อไปเราจะใส่ตัวเลขดิบลงในเซลล์ **A1** ค่าที่ใส่ยังไม่ได้จัดรูปแบบ—เป็นแค่ double เท่านั้น + +```csharp + // Step 2: Insert a raw numeric value. + worksheet.Cells["A1"].PutValue(12345.6789); +``` + +> **เคล็ดลับ:** ใช้ `PutValue` แทน `PutString` เมื่อคุณต้องการใช้การจัดรูปแบบตัวเลขต่อไป นี้จะรักษาชนิดข้อมูลเดิมไว้ ทำให้ Excel สามารถคำนวณได้อย่างถูกต้อง + +--- + +## ขั้นตอนที่ 3: ตั้งค่ารูปแบบตัวเลขแบบกำหนดเอง (เพิ่มตัวคั่นหลักพัน & กำหนดตำแหน่งทศนิยม) + +ตอนนี้มาถึงหัวใจของบทเรียน: กำหนดมาสก์รูปแบบที่บอก Aspose.Cells ว่าจะแสดงตัวเลขอย่างไร มาสก์ `#,##0.00` ทำสามอย่าง: + +1. **`#,##0`** – เพิ่มตัวคั่นหลักพัน (คอมม่าเป็นค่าเริ่มต้น) +2. **`.00`** – บังคับให้มีสองตำแหน่งทศนิยมเท่านั้น + +ถ้าต้องการตำแหน่งทศนิยมจำนวนอื่น เพียงเปลี่ยนจำนวน `0` หลังจุดทศนิยม + +```csharp + // Step 3: Configure the custom number format. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, // Return the value as a formatted string. + NumberFormat = "#,##0.00" // Add thousands separator and fix to 2 decimals. + }; +``` + +> **ทำไมต้องใช้ `ExportAsString`**: โดยค่าเริ่มต้น `ExportString` จะคืนค่าดิบ การตั้งค่า `ExportAsString = true` จะบังคับให้ API ใช้มาสก์ `NumberFormat` ก่อนแปลงเป็นข้อความ ซึ่งจำเป็นเมื่อคุณต้องการสตริงที่ตรงกับรูปแบบสำหรับรายงาน, JSON, หรือการแสดงผล UI + +--- + +## ขั้นตอนที่ 4: ส่งออกข้อความที่จัดรูปแบบแล้ว (วิธีจัดรูปแบบเซลล์) + +เมื่อกำหนดตัวเลือกเรียบร้อย เราเรียก `ExportString` บนเซลล์เดียวกัน วิธีนี้จะเคารพมาสก์ที่ตั้งไว้และคืนสตริงที่จัดรูปแบบอย่างสวยงาม + +```csharp + // Step 4: Export the formatted value. + string formattedCellText = worksheet.Cells["A1"].ExportString(exportOptions); + + // Step 5: Show the result. + Console.WriteLine(formattedCellText); // Expected output: 12,345.68 + } +} +``` + +เมื่อรันโปรแกรมจะพิมพ์ **`12,345.68`** ไปยังคอนโซล—ตรงกับรูปแบบที่เราต้องการ + +> **กรณีขอบ:** หากตัวเลขต้นฉบับมีทศนิยมมากกว่าสองตำแหน่ง มาสก์จะทำการปัดเศษ หากต้องการตัดทศนิยมแทนการปัดเศษ ต้องทำการประมวลผลค่าก่อนด้วย `Math.Truncate` แล้วค่อยเรียก `PutValue` + +--- + +## ขั้นตอนที่ 5: ปรับแต่งรูปแบบ – ตัวแปรที่พบบ่อย + +### 5.1 เปลี่ยนความแม่นยำของทศนิยม + +ต้องการสามตำแหน่งทศนิยม? แค่เปลี่ยนมาสก์เป็น: + +```csharp +NumberFormat = "#,##0.000" // → 12,345.679 +``` + +### 5.2 ใช้ตัวคั่นหลักพันแบบอื่น + +บางภูมิภาคต้องการช่องว่างหรือจุด คุณสามารถใส่ตัวอักษรนั้นโดยตรง: + +```csharp +NumberFormat = "# ##0.00" // Uses a non‑breaking space as separator. +``` + +หรือให้ workbook ใช้การตั้งค่าภูมิภาค: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("de-DE"); +NumberFormat = "#.##0,00"; // German style: 12.345,68 +``` + +### 5.3 เพิ่มคำนำหน้า หรือ คำต่อท้าย (สกุลเงิน, เปอร์เซ็นต์) + +ใส่เครื่องหมายดอลลาร์หรือเปอร์เซ็นต์ลงในมาสก์ได้เลย: + +```csharp +NumberFormat = "$#,##0.00"; // → $12,345.68 +NumberFormat = "0.00%"; // → 1,234,568.00% +``` + +> **หมายเหตุ:** มาสก์แยกแยะตัวพิมพ์ใหญ่‑เล็ก `$` และ `%` เป็นสัญลักษณ์ตัวอักษร; พวกมันไม่ได้เปลี่ยนค่าตัวเลขพื้นฐาน + +--- + +## ขั้นตอนที่ 6: ตัวอย่างทำงานเต็มรูปแบบ (พร้อมคัดลอก‑วาง) + +ด้านล่างเป็นโปรแกรมเต็มที่คุณสามารถคัดลอกไปใส่ในแอปคอนโซลใหม่ได้ รวมทุกขั้นตอน, คอมเมนต์, และการตรวจสอบผลลัพธ์สุดท้าย + +```csharp +using System; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write raw numeric value to A1. + worksheet.Cells["A1"].PutValue(12345.6789); + + // 3️⃣ Define custom format: thousands separator + two decimals. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + NumberFormat = "#,##0.00" + }; + + // 4️⃣ Export the formatted string. + string result = worksheet.Cells["A1"].ExportString(exportOptions); + + // 5️⃣ Display the outcome. + Console.WriteLine(result); // Output: 12,345.68 + + // Optional: keep console open. + Console.WriteLine("Press any key to exit..."); + Console.ReadKey(); + } +} +``` + +รันโปรแกรม (`dotnet run` จากเทอร์มินัลหรือกด F5 ใน Visual Studio) แล้วคุณจะเห็นตัวเลขที่จัดรูปแบบพิมพ์ออกมาตรงตามที่แสดง + +--- + +## คำถามที่พบบ่อย (FAQ) + +**Q: วิธีนี้ทำงานกับ Excel เวอร์ชันเก่าได้หรือไม่?** +A: ทำได้. มาสก์รูปแบบสอดคล้องกับไวยากรณ์ของ Excel ดังนั้นเวอร์ชันใดที่เข้าใจ `#,##0.00` จะให้ผลลัพธ์เดียวกัน + +**Q: ถ้าต้องการจัดรูปแบบหลายเซลล์พร้อมกันทำอย่างไร?** +A: วนลูปผ่านช่วงที่ต้องการและใช้ `ExportTableOptions` เดียวกันกับแต่ละเซลล์ หรือกำหนด `Style.Custom` ให้กับช่วงแล้วเรียก `ExportString` จากเซลล์เดียว + +**Q: สามารถส่งออกเป็น CSV พร้อมรูปแบบเหล่านี้ได้หรือไม่?** +A: แน่นอน. ใช้ `Workbook.Save("output.csv", SaveFormat.CSV);` หลังจากตั้งค่ารูปแบบให้แต่ละเซลล์แล้ว Aspose.Cells จะเคารพ `Style` ของเซลล์เมื่อสร้าง CSV + +--- + +## สรุป + +เราได้แสดงวิธี **จัดรูปแบบตัวเลขด้วยตัวคั่น** ใน C# ด้วย Aspose.Cells ครอบคลุมตั้งแต่ **ตั้งค่ารูปแบบตัวเลขแบบกำหนดเอง** ไปจนถึง **เพิ่มตัวคั่นหลักพัน**, **กำหนดตำแหน่งทศนิยม**, และ **วิธีจัดรูปแบบเซลล์** เพื่อส่งออกเป็นสตริง โค้ดทั้งหมดเป็นอิสระ, ทำงานกับ .NET 6+ และปรับได้ตามภูมิภาคหรือความแม่นยำที่ต้องการ + +ต่อไปคุณอาจลอง: + +* ใช้เทคนิคเดียวกันกับวันที่และเวลา (`NumberFormat = "dd‑MMM‑yyyy"`) +* อัตโนมัติการส่งออกจำนวนมากที่แต่ละคอลัมน์ต้องการมาสก์ต่างกัน +* ผสานสตริงที่จัดรูปแบบแล้วเข้ากับรายงาน PDF ด้วย Aspose.Words + +ลองทำตามดู แล้วคุณจะกลายเป็นผู้เชี่ยวชาญด้านการจัดรูปแบบสเปรดชีตในทีมของคุณได้อย่างรวดเร็ว Happy coding! + +![Screenshot showing formatted number with separator in Aspose.Cells](image-placeholder.png){alt="ตัวเลขที่จัดรูปแบบด้วยตัวคั่นแสดงในผลลัพธ์ของ 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/thai/net/excel-data-import-export/_index.md b/cells/thai/net/excel-data-import-export/_index.md index b936d1391e..67d8147e66 100644 --- a/cells/thai/net/excel-data-import-export/_index.md +++ b/cells/thai/net/excel-data-import-export/_index.md @@ -32,6 +32,10 @@ เรียนรู้วิธีการนำเข้าข้อมูลลงใน Excel โดยใช้การจัดรูปแบบ DB Num แบบกำหนดเองโดยใช้ Aspose.Cells สำหรับ .NET ในบทช่วยสอนที่ทำตามได้ง่ายนี้ ### [เลื่อนแถวแรกลงเมื่อแทรกแถว DataTable ใน Excel](./shift-first-row-down-when-inserting-cells-datatable-rows-in-excel/) เรียนรู้การแทรกแถว DataTable ใน Excel โดยไม่ต้องเลื่อนแถวแรกลงโดยใช้ Aspose.Cells สำหรับ .NET คำแนะนำทีละขั้นตอนเพื่อการทำงานอัตโนมัติที่ง่ายดาย +### [สร้าง Excel Workbook ด้วย C# – แทรก JSON แล้วบันทึกเป็น XLSX](./create-excel-workbook-c-insert-json-and-save-as-xlsx/) +เรียนรู้วิธีสร้างไฟล์ Excel ด้วย C# แทรกข้อมูล JSON และบันทึกเป็นไฟล์ XLSX โดยใช้ Aspose.Cells สำหรับ .NET +### [สร้าง Excel Workbook ด้วย C# – ปรับรูปแบบสกุลเงินและนำเข้า DataTable](./create-excel-workbook-c-apply-currency-format-and-import-dat/) +เรียนรู้วิธีสร้างไฟล์ Excel ด้วย C# ปรับรูปแบบสกุลเงินและนำเข้า DataTable โดยใช้ Aspose.Cells สำหรับ .NET {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/thai/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md b/cells/thai/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md new file mode 100644 index 0000000000..98b00bb1c4 --- /dev/null +++ b/cells/thai/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md @@ -0,0 +1,283 @@ +--- +category: general +date: 2026-03-30 +description: สร้างไฟล์ Excel ด้วย C# พร้อมการจัดรูปแบบสกุลเงิน เรียนรู้วิธีนำเข้า + DataTable, เพิ่มรูปแบบตัวเลขใน Excel, และใช้รูปแบบสกุลเงินให้กับคอลัมน์ในเวลาไม่กี่นาที. +draft: false +keywords: +- create excel workbook c# +- format cells currency +- import datatable to excel +- add number format excel +- apply currency format column +language: th +og_description: สร้างไฟล์ Excel ด้วย C# และกำหนดรูปแบบเซลล์เป็นสกุลเงินทันที คู่มือขั้นตอนนี้แสดงวิธีนำเข้า + DataTable ไปยัง Excel และเพิ่มรูปแบบตัวเลขใน Excel สำหรับคอลัมน์หนึ่ง +og_title: สร้าง Excel Workbook ด้วย C# – คู่มือการจัดรูปแบบสกุลเงิน +tags: +- Aspose.Cells +- C# +- Excel automation +title: สร้างไฟล์ Excel ด้วย C# – ใช้รูปแบบสกุลเงินและนำเข้า DataTable +url: /th/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# สร้าง Excel Workbook C# – ใช้รูปแบบสกุลเงินและนำเข้า DataTable + +เคยต้องการ **create Excel workbook C#** ที่ดูเหมือนรายงานที่เรียบหรูแล้วหรือไม่? บางทีคุณอาจดึงตัวเลขการขายจากฐานข้อมูลและต้องการให้คอลัมน์ราคาแสดงเป็นดอลลาร์โดยไม่ต้องแก้ไข Excel ด้วยตนเอง ฟังดูคุ้นเคยไหม? คุณไม่ได้อยู่คนเดียว—นักพัฒนาส่วนใหญ่เจออุปสรรคนี้เมื่อต้องอัตโนมัติการส่งออก Excel ครั้งแรก + +ในบทแนะนำนี้เราจะพาคุณผ่านโซลูชันที่ครบถ้วนพร้อมรันได้ทันทีที่ **creates an Excel workbook C#**, นำเข้า `DataTable`, และ **formats the Price column as currency**. เมื่อเสร็จคุณจะได้ไฟล์ชื่อ `StyledTable.xlsx` ที่สามารถเปิดดูและเห็นตัวเลขที่จัดรูปแบบอย่างสวยงาม ไม่ต้องทำการประมวลผลเพิ่มเติมใด ๆ + +> **สิ่งที่คุณจะได้เรียนรู้** +> - วิธีตั้งค่า Aspose.Cells ในโปรเจกต์ .NET +> - วิธี **import datatable to excel** ด้วยอาเรย์สไตล์ +> - วิธี **add number format excel** ให้กับคอลัมน์เฉพาะ +> - เคล็ดลับการจัดการคอลัมน์เพิ่มเติมหรือโลคัลต่าง ๆ + +> **ข้อกำหนดเบื้องต้น** +> - .NET 6+ (หรือ .NET Framework 4.6+) ที่ติดตั้งแล้ว +> - Aspose.Cells for .NET NuGet package (`Install-Package Aspose.Cells`) +> - ความคุ้นเคยพื้นฐานกับ C# และ DataTables + +--- + +## ขั้นตอนที่ 1: เตรียม DataTable (import datatable to excel) + +ก่อนอื่นเราต้องมีข้อมูลตัวอย่าง ในแอปจริงคุณอาจเติมตารางนี้จากการ query ฐานข้อมูล แต่ตัวอย่างที่กำหนดค่าไว้ล่วงหน้าจะทำให้เข้าใจง่าย + +```csharp +using System.Data; + +// Create a DataTable with two columns: Product (string) and Price (double) +DataTable dataTable = new DataTable(); +dataTable.Columns.Add("Product", typeof(string)); +dataTable.Columns.Add("Price", typeof(double)); + +// Add a few rows – you can add as many as you like +dataTable.Rows.Add("Apple", 1.23); +dataTable.Rows.Add("Banana", 0.78); +dataTable.Rows.Add("Cherry", 2.50); +``` + +*ทำไมเรื่องนี้ถึงสำคัญ*: `DataTable` เป็นสะพานเชื่อมระหว่างข้อมูลธุรกิจของคุณกับไฟล์ Excel. Aspose.Cells สามารถนำเข้ามันโดยตรง พร้อมคงชื่อคอลัมน์และประเภทข้อมูลไว้ + +--- + +## ขั้นตอนที่ 2: สร้าง Workbook ใหม่ (create excel workbook c#) + +ต่อไปเราจะสร้างอ็อบเจ็กต์ไฟล์ Excel จริง ๆ คิดว่าเป็นผ้าใบเปล่าที่คุณจะวาดบนมัน + +```csharp +using Aspose.Cells; + +// Instantiate a fresh workbook – this is the core of create excel workbook c# +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0). You could also add more sheets later. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **เคล็ดลับ:** หากต้องการหลายชีต ให้เรียก `workbook.Worksheets.Add()` และตั้งชื่อแต่ละชีตให้มีความหมาย + +--- + +## ขั้นตอนที่ 3: กำหนดสไตล์สกุลเงิน (format cells currency) + +Aspose.Cells ให้คุณสร้างอ็อบเจ็กต์ `Style` ที่บรรยายลักษณะของเซลล์ สำหรับสกุลเงินเราจะใช้หมายเลขรูปแบบในตัวที่มี ID 164 (`"$#,##0.00"`) + +```csharp +// Create a new style object for the price column +Style priceStyle = workbook.CreateStyle(); +priceStyle.Number = 164; // Built‑in currency format "$#,##0.00" +``` + +*ทำไมไม่ตั้งสตริงรูปแบบโดยตรง?* การใช้ ID ในตัวช่วยให้เข้ากันได้กับหลายเวอร์ชันของ Excel และหลีกเลี่ยงปัญหาโลคัลที่อาจเกิดขึ้น + +--- + +## ขั้นตอนที่ 4: สร้างอาเรย์สไตล์ (apply currency format column) + +เมื่อทำการนำเข้า `DataTable` คุณสามารถส่งอาเรย์ของอ็อบเจ็กต์ `Style` — หนึ่งอ็อบเจ็กต์ต่อคอลัมน์ `null` หมายถึง “ใช้สไตล์เริ่มต้น”. ที่นี่เราจะใช้ `priceStyle` เฉพาะกับคอลัมน์ที่สอง + +```csharp +// Column 0 (Product) gets the default style, Column 1 (Price) gets the currency style +Style[] columnStyles = { null, priceStyle }; +``` + +หากคุณเพิ่มคอลัมน์ในภายหลัง เพียงขยายอาเรย์ให้สอดคล้อง ความยาวของ `columnStyles` ต้องตรงกับจำนวนคอลัมน์ที่นำเข้า มิฉะนั้น Aspose จะโยนข้อยกเว้น + +--- + +## ขั้นตอนที่ 5: นำเข้า DataTable พร้อมสไตล์ (import datatable to excel) + +ตอนนี้จุดเปลี่ยนเกิดขึ้น—`DataTable` ของเราตกลงใน worksheet และคอลัมน์ราคาแสดงเป็นสกุลเงินทันที + +```csharp +// Parameters: +// - dataTable: source data +// - true: include column headers +// - startRow: 0 (top of sheet) +// - startColumn: 0 (first column) +// - columnStyles: style array defined above +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +*ถ้าคุณมีคอลัมน์มากกว่าสองคอลัมน์ล่ะ?* เพียงขยาย `columnStyles` ให้แต่ละคอลัมน์ได้รับสไตล์ที่เหมาะสม (หรือ `null` สำหรับค่าเริ่มต้น). วิธีนี้เป็นวิธีที่สะอาดที่สุดในการ **add number format excel** อย่างเลือกสรร + +--- + +## ขั้นตอนที่ 6: บันทึก Workbook (create excel workbook c#) + +สุดท้าย เราจะเขียนไฟล์ลงดิสก์ เลือกโฟลเดอร์ใดก็ได้ที่คุณมีสิทธิ์เขียน + +```csharp +// Save the workbook as an XLSX file +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +เปิด `StyledTable.xlsx` ใน Excel แล้วคุณควรเห็น: + +| Product | Price | +|---------|-------| +| Apple | $1.23 | +| Banana | $0.78 | +| Cherry | $2.50 | + +คอลัมน์ **Price** ได้รับการจัดรูปแบบเป็นสกุลเงินแล้ว—ไม่ต้องทำขั้นตอนเพิ่มเติมใด ๆ + +--- + +## กรณีขอบและความหลากหลาย + +### คอลัมน์เพิ่ม, รูปแบบต่าง ๆ + +หากต้องการ **format cells currency** สำหรับหลายคอลัมน์ (เช่น Cost, Tax, Total) ให้สร้าง `Style` แยกสำหรับแต่ละคอลัมน์และเติมลงใน `columnStyles` ตามลำดับ: + +```csharp +Style costStyle = workbook.CreateStyle(); +costStyle.Number = 164; // currency + +Style taxStyle = workbook.CreateStyle(); +taxStyle.Number = 164; + +// Assuming columns: Product, Cost, Tax, Total +Style[] styles = { null, costStyle, taxStyle, priceStyle }; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, styles); +``` + +### สกุลเงินตามโลคัล + +สำหรับยูโรหรือปอนด์อังกฤษ ให้ใช้ ID ที่ต่างกัน (เช่น 165 สำหรับ `€#,##0.00`). หรือกำหนดสตริงรูปแบบแบบกำหนดเอง: + +```csharp +priceStyle.Custom = "€#,##0.00"; +``` + +### ชุดข้อมูลขนาดใหญ่ + +Aspose.Cells รองรับแถวหลายล้านแถว แต่การใช้สไตล์หลายอ็อบเจ็กต์จะเพิ่มการใช้หน่วยความจำ ใช้อ็อบเจ็กต์ `Style` เดียวสำหรับคอลัมน์สกุลเงินทั้งหมดเพื่อประหยัดทรัพยากร + +### สไตล์หาย + +หาก `columnStyles` สั้นกว่าจำนวนคอลัมน์ Aspose จะใช้สไตล์เริ่มต้นกับคอลัมน์ที่เหลือ ซึ่งเป็นประโยชน์เมื่อคุณสนใจแค่บางคอลัมน์เท่านั้น + +--- + +## ตัวอย่างทำงานเต็มรูปแบบ (All Steps Combined) + +ด้านล่างเป็นโปรแกรมเต็มที่คุณสามารถคัดลอก‑วางลงในแอปคอนโซลได้ รวมทุกส่วนที่เราได้พูดถึง พร้อมคอมเมนต์ช่วยอธิบายเล็กน้อย + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // Step 1: Build sample DataTable (import datatable to excel) + // ------------------------------------------------- + DataTable dataTable = new DataTable(); + dataTable.Columns.Add("Product", typeof(string)); + dataTable.Columns.Add("Price", typeof(double)); + dataTable.Rows.Add("Apple", 1.23); + dataTable.Rows.Add("Banana", 0.78); + dataTable.Rows.Add("Cherry", 2.50); + // You can add as many rows as you like here. + + // ------------------------------------------------- + // Step 2: Create a new workbook (create excel workbook c#) + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // Step 3: Define a currency style (format cells currency) + // ------------------------------------------------- + Style priceStyle = workbook.CreateStyle(); + priceStyle.Number = 164; // "$#,##0.00" – built‑in currency format + + // ------------------------------------------------- + // Step 4: Build the style array (apply currency format column) + // ------------------------------------------------- + // First column gets default style (null), second column uses priceStyle. + Style[] columnStyles = { null, priceStyle }; + + // ------------------------------------------------- + // Step 5: Import the DataTable with the style array + // ------------------------------------------------- + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // ------------------------------------------------- + // Step 6: Save the workbook to disk + // ------------------------------------------------- + string outputPath = @"YOUR_DIRECTORY\StyledTable.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } +} +``` + +**ผลลัพธ์ที่คาดหวัง:** การเปิด `StyledTable.xlsx` จะเห็นคอลัมน์ `Price` มีสัญลักษณ์ดอลลาร์และแสดงสองตำแหน่งทศนิยม ตามที่คำสั่ง **format cells currency** ระบุไว้ + +--- + +## คำถามที่พบบ่อย + +**ถาม: ทำงานได้กับ .NET Core หรือไม่?** +ตอบ: ทำได้แน่นอน. Aspose.Cells รองรับ .NET‑standard ดังนั้นคุณสามารถใช้กับ .NET 5, .NET 6 หรือเวอร์ชันใหม่กว่าโดยไม่ต้องเปลี่ยนแปลง + +**ถาม: ถ้า DataTable ของฉันมี 10 คอลัมน์ แต่ต้องการจัดรูปแบบเฉพาะคอลัมน์ที่ 5 เท่านั้นทำอย่างไร?** +ตอบ: สร้าง `Style[]` ความยาว 10, เติมตำแหน่ง 0‑4 และ 6‑9 ด้วย `null`, แล้วใส่สไตล์ที่กำหนดเองที่ตำแหน่ง 4 (นับจากศูนย์). Aspose จะเคารพแต่ละค่า + +**ถาม: สามารถซ่อนแถวหัวตารางได้หรือไม่?** +ตอบ: หลังนำเข้าให้ตั้งค่า `worksheet.Cells.Rows[0].Hidden = true;` หรือส่ง `false` ให้พารามิเตอร์ `includeColumnNames` ใน `ImportDataTable` + +--- + +## สรุป + +เราได้ **create an Excel workbook C#**, นำเข้า `DataTable`, และ **applied a currency format column** ด้วย Aspose.Cells ขั้นตอนหลัก—การเตรียมข้อมูล, การกำหนดสไตล์, การสร้างอาเรย์สไตล์, การนำเข้าโดยใช้ `ImportDataTable`, และการบันทึก—ครอบคลุมงานอัตโนมัติ Excel ส่วนใหญ่ + +ต่อจากนี้คุณอาจสำรวจต่อ: + +- **add number format excel** สำหรับวันที่หรือเปอร์เซ็นต์ +- การส่งออกหลายชีตในไฟล์เดียว +- การใช้ **format cells currency** กับสัญลักษณ์โลคัลต่าง ๆ +- การอัตโนมัติการสร้างแผนภูมิจากข้อมูลเดียวกัน + +ลองทำตามดู แล้วคุณจะกลายเป็นผู้เชี่ยวชาญด้านการรายงาน Excel ในทีมของคุณได้อย่างรวดเร็ว มีไอเดียหรือวิธีพิเศษอยากแชร์? แสดงความคิดเห็นด้านล่าง—ขอให้สนุกกับการเขียนโค้ด! + +![create excel workbook c# screenshot](image.png "create excel workbook c#") + +{{< /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/thai/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md b/cells/thai/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md new file mode 100644 index 0000000000..55cebda863 --- /dev/null +++ b/cells/thai/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-03-30 +description: สร้างเวิร์กบุ๊ก Excel ด้วย C# อย่างรวดเร็วโดยการแทรกข้อมูล JSON และบันทึกเป็นไฟล์ + XLSX. เรียนรู้วิธีสร้าง Excel จาก JSON, เขียน JSON ไปยัง Excel, และแทรก JSON ลงใน + Excel. +draft: false +keywords: +- create excel workbook c# +- save workbook as xlsx +- generate excel from json +- write json to excel +- insert json into excel +language: th +og_description: สร้างไฟล์ Excel ด้วย C# อย่างรวดเร็วโดยแทรกข้อมูล JSON และบันทึกไฟล์เป็น + XLSX. ปฏิบัติตามคู่มือขั้นตอนต่อขั้นตอนนี้เพื่อสร้าง Excel จาก JSON. +og_title: สร้างไฟล์ Excel Workbook ด้วย C# – แทรก JSON และบันทึกเป็น XLSX +tags: +- Aspose.Cells +- C# +- Excel automation +title: สร้างไฟล์ Excel ด้วย C# – แทรก JSON และบันทึกเป็น XLSX +url: /th/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# สร้าง Excel Workbook C# – แทรก JSON และบันทึกเป็น XLSX + +เคยต้อง **create Excel workbook C#** แล้วใส่ JSON ลงในเซลล์โดยตรงหรือไม่? คุณไม่ได้เป็นคนเดียว—นักพัฒนามักเจอปัญหาเดียวกันเมื่อมี payload ของ API หรือไฟล์การกำหนดค่าที่ต้องการนำเข้าไปในสเปรดชีตเพื่อรายงานหรือแชร์ + +ข่าวดีคือด้วย Aspose.Cells คุณทำได้ในไม่กี่บรรทัด, **save workbook as XLSX**, และกระบวนการทั้งหมดยังคง type‑safe. ในบทเรียนนี้เราจะ **generate Excel from JSON**, **write JSON to Excel**, และแสดงขั้นตอนที่แน่นอนเพื่อ **insert JSON into Excel** โดยไม่ต้องต่อสตริงแบบยุ่งยาก + +## สิ่งที่คู่มือนี้ครอบคลุม + +เราจะเดินผ่าน: + +1. การตั้งค่า workbook ใหม่ +2. การเพิ่ม Smart Marker ที่คาดหวัง JSON +3. การป้อนอาเรย์ JSON ให้กับ marker +4. การปรับ `SmartMarkerOptions` เพื่อให้ JSON อยู่ในเซลล์เดียว +5. การบันทึกไฟล์เป็น workbook XLSX + +เมื่อเสร็จคุณจะได้ไฟล์ `JsonSingleCell.xlsx` พร้อมใช้และรูปแบบที่สามารถนำกลับมาใช้ใหม่สำหรับสถานการณ์ JSON‑to‑Excel ใด ๆ ไม่ต้องพึ่งบริการภายนอก เพียง C# ธรรมดาและไลบรารี Aspose.Cells + +**Prerequisites** + +- .NET 6+ (หรือ .NET Framework 4.6+). +- Visual Studio 2022 หรือ IDE ที่รองรับ C# ใดก็ได้ +- NuGet package `Aspose.Cells` (เวอร์ชันทดลองหรือแบบลิขสิทธิ์) + +ถ้าคุณมีทั้งหมดนี้แล้ว ไปต่อกันเลย—ไม่ต้องตั้งค่าเพิ่มเติม + +--- + +## Step 1: Create a New Workbook in C# + +สิ่งแรกที่คุณต้องมีคืออ็อบเจกต์ workbook ว่างเปล่า คิดว่าเป็นไฟล์ Excel ใหม่ที่รอรับข้อมูล + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is your empty Excel file +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; +``` + +**ทำไมเรื่องนี้ถึงสำคัญ:** +`Workbook` คือจุดเริ่มต้นของการทำงานทั้งหมดกับ Excel การสร้างมันก่อนทำให้แน่ใจว่าการ **save workbook as xlsx** ต่อไปจะมีอ็อบเจกต์ที่สามารถซีเรียลไลซ์ได้จริง + +> **Pro tip:** หากคุณต้องการทำงานกับหลายแผ่น คุณสามารถเพิ่มได้เลยด้วย `workbook.Worksheets.Add()`. + +--- + +## Step 2: Place a Smart Marker that Expects JSON + +Smart Markers คือ placeholder ที่ Aspose.Cells จะแทนที่ในเวลารัน ที่นี่เราบอกให้มันมองหาสตริง JSON ชื่อ `data` + +```csharp +// Put a Smart Marker in cell A1 – {{data:json}} tells Aspose to expect JSON +worksheet.Cells["A1"].PutValue("{{data:json}}"); +``` + +**ทำไมเรื่องนี้ถึงสำคัญ:** +ส่วนต่อท้าย `:json` บอกเอนจินว่าค่าที่เข้ามาเป็น JSON ไม่ใช่ข้อความธรรมดา นี่คือกุญแจสำคัญในการ **write json to excel** โดยไม่ต้องพาร์เซด้วยตนเอง + +--- + +## Step 3: Define the JSON Array + +ต่อไปเราจะสร้าง JSON ที่ต้องการแทรก สำหรับการสาธิตเราจะใช้รายการคนง่าย ๆ + +```csharp +// Sample JSON array – could come from an API, file, or DB +string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; +``` + +**กรณีขอบ:** +หาก JSON ของคุณมีเครื่องหมายคำพูดคู่ ต้องแน่ใจว่าได้ escape (ตามตัวอย่าง) หรือใช้ verbatim string (`@"..."`) เพื่อหลีกเลี่ยงข้อผิดพลาดในการคอมไพล์ + +--- + +## Step 4: Configure Smart Marker Options – Keep the Array Whole + +โดยค่าเริ่มต้น Aspose จะพยายามขยายอาเรย์ออกเป็นหลายแถว เราต้องการให้สตริง JSON ทั้งหมดอยู่ในเซลล์เดียว ซึ่งเหมาะกับสถานการณ์ **insert json into excel** ที่ผู้รับจะทำการพาร์ส JSON ต่อไป + +```csharp +SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions +{ + // Treat the whole array as a single cell value + ArrayAsSingle = true +}; +``` + +**ทำไมเรื่องนี้ถึงสำคัญ:** +`ArrayAsSingle = true` ป้องกันการขยายแถว ทำให้คุณได้ JSON blob ขนาดหนึ่งเซลล์ที่เรียบร้อย สิ่งนี้จำเป็นเมื่อสเปรดชีตเป็นรูปแบบการส่งข้อมูล ไม่ใช่รายงาน + +--- + +## Step 5: Process the Smart Marker with the JSON Data + +ตอนนี้เราจะผูก JSON เข้ากับ marker แล้วให้ Aspose ทำงานหนักให้ + +```csharp +// Process the marker – the anonymous object maps "data" to our JSON string +worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); +``` + +**สิ่งที่เกิดขึ้นเบื้องหลัง:** +Aspose ประเมิน placeholder `{{data:json}}` ทำการซีเรียลไลซ์สตริง `jsonData` แล้วเขียนลงในเซลล์ A1 ตามตัวเลือกที่เราตั้งไว้ + +--- + +## Step 6: Save the Workbook as an XLSX File + +สุดท้าย เราเขียน workbook ลงดิสก์ นี่คือจุดที่ **save workbook as xlsx** เข้ามาใช้ + +```csharp +// Save the workbook – the extension determines the format (XLSX here) +workbook.Save("JsonSingleCell.xlsx"); +``` + +**ผลลัพธ์:** +เปิด `JsonSingleCell.xlsx` ใน Excel คุณจะเห็นอาเรย์ JSON เหมือนที่กำหนดไว้ อยู่ในเซลล์ A1 อย่างเรียบร้อย + +--- + +## Full, Runnable Example + +ด้านล่างเป็นโปรแกรมเต็มที่คุณสามารถคัดลอก‑วางลงใน console app มันรวมทุกขั้นตอนข้างต้นและพร้อมรัน (สมมติว่าได้ติดตั้งแพคเกจ Aspose.Cells ผ่าน NuGet แล้ว) + +```csharp +using System; +using Aspose.Cells; + +namespace JsonToExcelDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add a Smart Marker that expects JSON + worksheet.Cells["A1"].PutValue("{{data:json}}"); + + // 3️⃣ Define the JSON array + string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; + + // 4️⃣ Configure options – keep array as a single cell value + SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions + { + ArrayAsSingle = true + }; + + // 5️⃣ Process the marker with the JSON payload + worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); + + // 6️⃣ Save the workbook as XLSX + workbook.Save("JsonSingleCell.xlsx"); + + Console.WriteLine("Excel file created successfully! Check JsonSingleCell.xlsx."); + } + } +} +``` + +**ผลลัพธ์ที่คาดว่าจะเห็นใน Excel** + +| A | +|---| +| `[{"Name":"John","Age":30},{"Name":"Jane","Age":28}]` | + +เซลล์เดียวนี้ตอนนี้ถืออาเรย์ JSON ที่สมบูรณ์พร้อมใช้สำหรับการประมวลผลต่อไป + +--- + +## Common Questions & Edge Cases + +### What if I need the JSON spread across rows? + +ตั้งค่า `ArrayAsSingle = false` (ค่าเริ่มต้น) Aspose จะสร้างแถวสำหรับแต่ละองค์ประกอบของอาเรย์และแมปคุณสมบัติเข้าเป็นคอลัมน์ นี่เป็นประโยชน์เมื่อคุณต้องการมุมมองเป็นตารางแทนสตริง JSON ดิบ + +### Can I use a JSON file instead of a hard‑coded string? + +ได้เลย อ่านไฟล์เป็นสตริง: + +```csharp +string jsonData = File.ReadAllText("people.json"); +``` + +แล้วส่ง `jsonData` ไปยังเมธอด `Process` เดิม ส่วนที่เหลือของ pipeline ไม่ต้องเปลี่ยน + +### Does this work with large JSON payloads? + +ทำได้ แต่ต้องระวังการใช้หน่วยความจำ สำหรับอาเรย์ขนาดใหญ่ ควรพิจารณา streaming ข้อมูลหรือเขียนโดยตรงลงแถว (`ArrayAsSingle = false`) เพื่อหลีกเลี่ยงเซลล์ขนาดใหญ่มากที่ Excel อาจประมวลผลได้ยาก + +### Is the generated XLSX compatible with older Excel versions? + +ฟอร์แมต `.xlsx` อิง Office Open XML ทำงานได้ตั้งแต่ Excel 2007 ขึ้นไป หากต้องการฟอร์แมตเก่า `.xls` ให้เปลี่ยนคำสั่งบันทึก: + +```csharp +workbook.Save("JsonSingleCell.xls", SaveFormat.Excel97To2003); +``` + +--- + +## Pro Tips for Working with JSON and Excel + +- **Validate JSON first** – ใช้ `System.Text.Json.JsonDocument.Parse(jsonData)` เพื่อตรวจจับอินพุตที่ผิดรูปแบบตั้งแต่ต้น +- **Escape special characters** – หาก JSON ของคุณมีการขึ้นบรรทัดใหม่ จะปรากฏเป็น `\n` ในเซลล์ คุณสามารถแทนที่ด้วย `Environment.NewLine` ก่อนประมวลผลได้ +- **Reuse Smart Markers** – สามารถวาง marker หลายตัวในแผ่นเดียวกัน แต่ละตัวชี้ไปยัง property JSON ที่ต่างกัน +- **Combine with formulas** – หลังจาก JSON อยู่ในเซลล์แล้ว คุณสามารถใช้สูตร `FILTERXML` ของ Excel (เวอร์ชันใหม่) เพื่อพาร์สข้อมูลได้ทันที + +--- + +## Conclusion + +คุณได้เรียนรู้วิธี **create excel workbook c#**, ฝัง payload JSON, และ **save workbook as xlsx** ด้วย Aspose.Cells รูปแบบนี้ทำให้คุณ **generate excel from json**, **write json to excel**, และ **insert json into excel** เพียงไม่กี่บรรทัดโค้ด ทำให้การแลกเปลี่ยนข้อมูลระหว่างบริการและนักวิเคราะห์เป็นเรื่องง่าย + +พร้อมก้าวต่อไปหรือยัง? ลองแปลงอาเรย์ JSON เป็นตารางที่สมบูรณ์ (ตั้ง `ArrayAsSingle = false`) หรือสำรวจการจัดรูปแบบแผ่นหลังการแทรก วิธีเดียวกันนี้ยังใช้ได้กับ CSV, XML หรืออ็อบเจกต์แบบกำหนดเอง—แค่ปรับประเภท Smart Marker ให้ตรง + +ขอให้สนุกกับการเขียนโค้ด! หากเจออุปสรรคใด ๆ แสดงความคิดเห็นด้านล่างหรือดูเอกสารอย่างเป็นทางการของ Aspose เพื่อเรียนรู้เชิงลึกเกี่ยวกับ Smart Markers + +{{< /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/thai/net/excel-workbook/_index.md b/cells/thai/net/excel-workbook/_index.md index 3b2b78a6b4..dac5fd1029 100644 --- a/cells/thai/net/excel-workbook/_index.md +++ b/cells/thai/net/excel-workbook/_index.md @@ -86,6 +86,7 @@ Power Query เป็นเครื่องมือสำคัญในก | [ตัวอย่างการพิมพ์สมุดงาน](./workbook-print-preview/) | เรียนรู้วิธีสร้างตัวอย่างก่อนพิมพ์สำหรับไฟล์ Excel โดยใช้ Aspose.Cells สำหรับ .NET เรียนรู้ขั้นตอนการเขียนโค้ดในบทช่วยสอนโดยละเอียดที่ทำตามได้ง่าย - | [การทำงานกับคุณสมบัติประเภทเนื้อหา](./working-with-content-type-properties/) | เรียนรู้วิธีใช้ Aspose.Cells สำหรับ .NET เพื่อทำงานกับคุณสมบัติประเภทเนื้อหาสำหรับการจัดการข้อมูลเมตาของ Excel ที่ได้รับการปรับปรุง ปฏิบัติตามคำแนะนำทีละขั้นตอนง่ายๆ นี้ - | [การสนับสนุนลายเซ็น Xades](./xades-signature-support/) | เรียนรู้วิธีเพิ่มลายเซ็น Xades ลงในไฟล์ Excel โดยใช้ Aspose.Cells สำหรับ .NET ด้วยคู่มือทีละขั้นตอนนี้ รักษาความปลอดภัยเอกสารของคุณ | +| [สร้างแผ่นหลักใน C# – คู่มือ Aspose.Cells ฉบับสมบูรณ์](./create-master-sheet-in-c-complete-aspose-cells-guide/) | เรียนรู้วิธีสร้างแผ่นหลักด้วย C# โดยใช้ Aspose.Cells ในคู่มือฉบับสมบูรณ์แบบทีละขั้นตอน | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/thai/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md b/cells/thai/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md new file mode 100644 index 0000000000..980827d95e --- /dev/null +++ b/cells/thai/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md @@ -0,0 +1,241 @@ +--- +category: general +date: 2026-03-30 +description: สร้างแผ่นงานหลักโดยใช้ Aspose.Cells ใน C#. เรียนรู้วิธีสร้างไฟล์ Excel + ด้วย C# ให้อนุญาตชื่อแผ่นงานซ้ำและบันทึกไฟล์เป็น XLSX ในไม่กี่ขั้นตอน. +draft: false +keywords: +- create master sheet +- create excel workbook c# +- save workbook as xlsx +- allow duplicate sheet names +language: th +og_description: สร้างแผ่นงานหลักด้วย Aspose.Cells ใน C# คู่มือนี้แสดงวิธีสร้างไฟล์ + Excel ด้วย C# อนุญาตให้ใช้ชื่อแผ่นงานซ้ำได้ และบันทึกไฟล์เป็น XLSX. +og_title: สร้างแผ่นงานหลักใน C# – คู่มือ Aspose.Cells ฉบับสมบูรณ์ +tags: +- Aspose.Cells +- C# +- Excel automation +title: สร้างแผ่นงานหลักใน C# – คู่มือ Aspose.Cells ฉบับสมบูรณ์ +url: /th/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# สร้างแผ่นงานหลักใน C# – คู่มือ Aspose.Cells ฉบับสมบูรณ์ + +เคยต้องการ **สร้างแผ่นงานหลัก** ในไฟล์ Excel แต่ไม่แน่ใจว่าจะจัดการกับแผ่นงานรายละเอียดหลายแผ่นที่ใช้ชื่อฐานเดียวกันอย่างไรหรือไม่? คุณไม่ได้เป็นคนเดียว ในหลายสถานการณ์การรายงานคุณอาจมีแท็บรายละเอียดหลายสิบแท็บ และพฤติกรรมเริ่มต้นของไลบรารีส่วนใหญ่คือจะโยนข้อยกเว้นเมื่อสองแผ่นงานมีชื่อเดียวกัน + +โชคดีที่ Aspose.Cells ทำให้การ **สร้างแผ่นงานหลัก** เป็นเรื่องง่าย เพียงกำหนดค่าเอนจินให้ **อนุญาตชื่อแผ่นงานซ้ำ** และจากนั้น **บันทึกเวิร์กบุ๊กเป็น XLSX**—ทั้งหมดจากโค้ด C# ที่สะอาด ในบทแนะนำนี้เราจะเดินผ่านตัวอย่างที่สามารถรันได้เต็มรูปแบบ อธิบายว่าทำไมแต่ละบรรทัดจึงสำคัญ และให้เคล็ดลับหลายอย่างที่คุณสามารถคัดลอกไปใช้ในโปรเจกต์ของคุณได้ทันที + +> **สิ่งที่คุณจะได้เรียนรู้** +> * วิธี **สร้าง Excel workbook C#**‑style ด้วย Aspose.Cells. +> * วิธีฝัง smart‑marker ที่สร้างแผ่นงานรายละเอียดสำหรับแต่ละแถวของข้อมูล. +> * วิธีตั้งค่า `DetailSheetNewName = DuplicateAllowed` เพื่อให้ไลบรารีเพิ่มเลขลำดับโดยอัตโนมัติ. +> * วิธี **บันทึกเวิร์กบุ๊กเป็น XLSX** ลงดิสก์โดยไม่ต้องทำขั้นตอนเพิ่มเติม. + +ไม่ต้องอ้างอิงเอกสารภายนอก—ทุกอย่างที่คุณต้องการอยู่ที่นี่ + +--- + +## ข้อกำหนดเบื้องต้น + +Before we dive in, make sure you have: + +| ข้อกำหนด | เหตุผลที่สำคัญ | +|-------------|----------------| +| .NET 6.0 หรือใหม่กว่า (หรือ .NET Framework 4.7+) | Aspose.Cells 23.x+ รองรับรันไทม์เหล่านี้. | +| Visual Studio 2022 (หรือ IDE สำหรับ C# ใดก็ได้) | เพื่อการสร้างโปรเจกต์และดีบักที่ง่าย. | +| Aspose.Cells for .NET NuGet package (`Install-Package Aspose.Cells`) | ไลบรารีที่ทำให้ฟีเจอร์ smart‑marker ทำงาน. | +| ความรู้พื้นฐานของ C# | คุณจะเข้าใจไวยากรณ์โดยไม่ต้องเรียนพื้นฐานใหม่. | + +หากคุณขาดสิ่งใดสิ่งหนึ่ง เพียงเพิ่มเข้ามาเดี๋ยวนี้—ไม่มีประโยชน์ที่จะดำเนินต่อในสภาพแวดล้อมที่ยังไม่สมบูรณ์ + +## ขั้นตอนที่ 1: สร้างแผ่นงานหลักด้วย Aspose.Cells + +สิ่งแรกที่เราทำคือ **สร้าง Excel workbook C#** style โดยการสร้างอ็อบเจ็กต์ `Workbook` นี้อ็อบเจ็กต์นี้มีแผ่นงานเริ่มต้นอยู่แล้ว เราจะเปลี่ยนชื่อเป็น “Master” และใช้เป็นแม่แบบสำหรับทุกหน้าแผ่นงานรายละเอียด. + +```csharp +using Aspose.Cells; + +// Step 1: Initialise a new workbook – this automatically gives us one sheet +Workbook workbook = new Workbook(); + +// Grab the first (and only) worksheet that comes with a fresh workbook +Worksheet masterSheet = workbook.Worksheets[0]; + +// Give it a meaningful name – this will be our master sheet +masterSheet.Name = "Master"; +``` + +*ทำไมต้องเปลี่ยนชื่อแผ่นงาน?* +ชื่อเริ่มต้นเช่น “Sheet1” ไม่บ่งบอกความหมาย และเมื่อคุณตรวจสอบไฟล์ในภายหลัง คุณต้องการให้แท็บหลักเป็นที่จดจำได้ทันที การตั้งชื่อยังช่วยป้องกันการชนกันโดยบังเอิญเมื่อคุณเพิ่มแผ่นงานเพิ่มเติมในภายหลัง. + +--- + +## ขั้นตอนที่ 2: เตรียม smart‑marker ที่จะสร้างแผ่นงานรายละเอียด + +Smart‑markers คือตัวแทนที่ Aspose.Cells แทนที่ด้วยข้อมูลในขณะรันไทม์ โดยใส่ `{{#detail:DataSheetName}}` ในเซลล์ **A1** เราบอกเอนจินว่า: “สำหรับแต่ละระเบียนในแหล่งข้อมูล ให้สร้างแผ่นงานใหม่ที่ชื่อมาจากฟิลด์ `DataSheetName`”. + +```csharp +// Step 2: Insert a smart‑marker into cell A1. +// The marker #detail tells Aspose.Cells to generate a new sheet per data row. +masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); +``` + +คิดว่า marker นี้เป็นการ์ดคำสั่งขนาดเล็กที่ติดอยู่บนแผ่นงาน เมื่อโปรเซสเซอร์ทำงาน มันจะอ่านการ์ด ดึงค่าที่เหมาะสมจากแหล่งข้อมูล แล้วคัดลอกแผ่นงานหลักไปเป็นแท็บใหม่. + +--- + +## ขั้นตอนที่ 3: สร้างแหล่งข้อมูล – ตั้งชื่อแผ่นงานซ้ำโดยเจตนา + +ในชีวิตจริงคุณอาจดึงข้อมูลนี้จากฐานข้อมูล แต่สำหรับการสาธิตนี้เราจะใช้แอเรย์ในหน่วยความจำของอ็อบเจ็กต์แบบไม่ระบุชื่อ สังเกตว่าทั้งสองรายการใช้ชื่อฐานเดียวกันคือ `"Detail"`; นี่คือสถานการณ์ที่ **อนุญาตชื่อแผ่นงานซ้ำ** มีความสำคัญอย่างยิ่ง. + +```csharp +// Step 3: Create a data source with two items that share the same base sheet name. +var dataSource = new[] +{ + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } +}; +``` + +หากคุณลองทำโดยไม่มีตัวเลือกพิเศษ Aspose.Cells จะโยนข้อยกเว้นในรอบที่สอง เนื่องจากมีแผ่นงานชื่อ “Detail” อยู่แล้ว นั่นคือเหตุผลที่ขั้นตอนต่อไปสำคัญ. + +--- + +## ขั้นตอนที่ 4: เปิดใช้งานชื่อแผ่นงานซ้ำ + +Aspose.Cells เปิดเผย `SmartMarkerOptions.DetailSheetNewName` การตั้งค่าเป็น `DetailSheetNewName.DuplicateAllowed` จะบอกเอนจินให้เพิ่มเลขลำดับโดยอัตโนมัติ (เช่น “Detail_1”) ทุกครั้งที่เกิดการชนกันของชื่อ. + +```csharp +// Step 4: Configure SmartMarker options to permit duplicate sheet names. +var smartMarkerOptions = new SmartMarkerOptions +{ + // This makes the library rename clashes to "Detail_1", "Detail_2", etc. + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed +}; +``` + +*ทำไมไม่ตั้งชื่อแต่ละแถวให้เป็นเอกลักษณ์ด้วยตนเอง?* เนื่องจากแหล่งข้อมูลมักไม่รับประกันความไม่ซ้ำกัน โดยเฉพาะเมื่อผู้ใช้ป้อนข้อความอิสระ การให้ไลบรารีจัดการส่วนต่อท้ายช่วยขจัดข้อบกพร่องหลายประเภท. + +--- + +## ขั้นตอนที่ 5: ประมวลผล smart‑markers และสร้างแผ่นงานรายละเอียด + +ตอนนี้เราจะเรียก `SmartMarkers.Process` โดยส่งแหล่งข้อมูลและตัวเลือกที่เราตั้งค่าไว้ เมธอดจะวนผ่านแต่ละรายการ คัดลอกแผ่นงานหลัก และเปลี่ยนชื่อสำเนาตามฟิลด์ `DataSheetName` (พร้อมส่วนต่อท้ายหากจำเป็น). + +```csharp +// Step 5: Run the smart‑marker processor – this creates the detail sheets. +masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); +``` + +หลังจากบรรทัดนี้ทำงาน คุณจะมีสามแท็บในเวิร์กบุ๊ก: + +1. **Master** – แม่แบบต้นฉบับ. +2. **Detail** – แผ่นงานที่สร้างแรก (ไม่ต้องส่วนต่อท้าย). +3. **Detail_1** – แผ่นงานที่สร้างที่สอง (ส่วนต่อท้ายเพิ่มโดยอัตโนมัติ). + +คุณสามารถตรวจสอบได้โดยเปิดไฟล์ใน Excel; คุณจะเห็นแผ่นงานรายละเอียดสองแผ่นอยู่เคียงกัน. + +--- + +## ขั้นตอนที่ 6: บันทึกเวิร์กบุ๊กเป็นไฟล์ XLSX + +สุดท้าย เราจะบันทึกไฟล์ลงดิสก์ เมธอด `Save` จะเลือกฟอร์แมต XLSX โดยอัตโนมัติเมื่อคุณให้ส่วนขยายเป็น `.xlsx`. + +```csharp +// Step 6: Persist the workbook – this is the moment we finally “save workbook as XLSX”. +string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; +workbook.Save(outputPath); +``` + +**เคล็ดลับมืออาชีพ:** หากคุณต้องการสตรีมไฟล์โดยตรงไปยังการตอบสนองเว็บ (เช่น ASP.NET Core) ให้ใช้ `workbook.Save(stream, SaveFormat.Xlsx)` แทนการระบุเส้นทางไฟล์. + +--- + +## ตัวอย่างทำงานเต็มรูปแบบ + +ด้านล่างเป็นโปรแกรมที่สมบูรณ์พร้อมรัน คัดลอกและวางลงในแอปคอนโซล กด F5 แล้วเปิดไฟล์ที่สร้างขึ้นเพื่อดูผลลัพธ์. + +```csharp +using System; +using Aspose.Cells; + +namespace MasterSheetDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook and rename the default sheet to "Master" + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert a smart‑marker that will generate a detail sheet per data row + masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); + + // 3️⃣ Prepare a data source where two rows share the same sheet name + var dataSource = new[] + { + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } + }; + + // 4️⃣ Allow duplicate sheet names – the library will add "_1", "_2", … + var smartMarkerOptions = new SmartMarkerOptions + { + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed + }; + + // 5️⃣ Process the smart‑markers; this creates the detail sheets + masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); + + // 6️⃣ Save the workbook as an XLSX file + string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**ผลลัพธ์ที่คาดหวัง:** เปิด `DuplicateDetailSheets.xlsx` คุณจะเห็นสามแผ่นงาน—`Master`, `Detail`, และ `Detail_1`. แผ่นงานรายละเอียดแต่ละแผ่นเป็นสำเนาเดียวกันของแม่แบบ พร้อมให้คุณเติมข้อมูลตามแถวในภายหลัง. + +--- + +## คำถามทั่วไป & กรณีขอบ + +### ถ้าฉันต้องการแผ่นงานซ้ำมากกว่าสองแผ่น? + +ไม่มีปัญหา การตั้งค่า `DuplicateAllowed` เดียวกันจะต่อเลขลำดับเพิ่มเรื่อย ๆ (`Detail_2`, `Detail_3`, …) จนทุกแถวมีแท็บของตนเอง. + +### ฉันสามารถปรับรูปแบบส่วนต่อท้ายได้หรือไม่? + +โดยค่าเริ่มต้น Aspose.Cells ใช้เครื่องหมายขีดล่างตามด้วยตัวเลข หากคุณต้องการรูปแบบอื่น (เช่น “Detail‑A”, “Detail‑B”) คุณต้องทำการประมวลผลต่อหลังจาก `Process` ทำงานแล้ว โดยวนลูป `workbook.Worksheets` และเปลี่ยนชื่อตามที่ต้องการ. + +### วิธีนี้ทำงานกับชุดข้อมูลขนาดใหญ่ (หลายร้อยแถว) หรือไม่? + +ใช่ แต่ควรตรวจสอบการใช้หน่วยความจำแต่ละแผ่นงานที่สร้างเป็นสำเนาเต็มของแม่แบบ ดังนั้นจำนวนแถวมาก ๆ จะทำให้ไฟล์ขนาดใหญ่เร็ว หากคุณต้องการเพียงไม่กี่แถวต่อแผ่นงาน ให้พิจารณาใช้ `SmartMarkerOptions.RemoveEmptyRows = true` เพื่อลดเซลล์ที่ไม่จำเป็น. + +### ไฟล์ที่สร้างขึ้นเป็นไฟล์ XLSX จริงหรือไม่? + +แน่นอน เมธอด `Save` จะเขียนแพ็กเกจ Open XML ที่ Excel คาดหวัง คุณสามารถเปิดไฟล์ด้วย LibreOffice หรือ Google Sheets ได้โดยไม่ต้องแปลง. + +--- + +## เคล็ดลับสำหรับโค้ดพร้อมใช้งานใน Production + +| เคล็ดลับ | เหตุผลที่สำคัญ | +|-----|----------------| +| **Dispose `Workbook + +{{< /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/thai/net/formulas-functions/_index.md b/cells/thai/net/formulas-functions/_index.md index 53b0cfa01b..da582cb90b 100644 --- a/cells/thai/net/formulas-functions/_index.md +++ b/cells/thai/net/formulas-functions/_index.md @@ -102,6 +102,8 @@ ### [อัปเดตสูตร Excel Power Query ด้วย Aspose.Cells .NET](./update-power-query-formulas-aspose-cells-net) เรียนรู้วิธีการอัปเดตสูตร Power Query ในเวิร์กบุ๊ก Excel โดยใช้ Aspose.Cells สำหรับ .NET การจัดการแหล่งข้อมูลหลักสำหรับการรายงานแบบไดนามิก +### [สร้างสมุดงาน Excel ด้วย C# – Lambda, SEQUENCE & EXPAND คู่มือ](./create-excel-workbook-c-lambda-sequence-expand-guide/) + ## ทำความเข้าใจเกี่ยวกับชนิดของสูตร Excel สูตร Excel มีหลากหลายรูปแบบ โดยแต่ละสูตรมีคุณลักษณะเฉพาะที่ Aspose.Cells สามารถจัดการได้: diff --git a/cells/thai/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md b/cells/thai/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md new file mode 100644 index 0000000000..577b5bdacd --- /dev/null +++ b/cells/thai/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-30 +description: สร้างไฟล์งาน Excel ด้วย C# โดยใช้ Aspose.Cells เรียนรู้การใช้ฟังก์ชัน + lambda ใน Excel, ฟังก์ชัน sequence ใน Excel, การขยายอาเรย์ใน Excel, และบันทึกไฟล์งานเป็น + xlsx. +draft: false +keywords: +- create excel workbook c# +- lambda function excel +- save workbook as xlsx +- sequence function excel +- expand array excel +language: th +og_description: สร้างไฟล์งาน Excel ด้วย C# อย่างรวดเร็ว คู่มือนี้แสดงวิธีใช้ฟังก์ชัน + lambda ใน Excel, ฟังก์ชัน sequence ใน Excel, การขยายอาร์เรย์ใน Excel, และการบันทึกไฟล์งานเป็นรูปแบบ + xlsx. +og_title: สร้างไฟล์ Excel Workbook ด้วย C# – คู่มือ Lambda, SEQUENCE และ EXPAND +tags: +- Aspose.Cells +- C# +- Excel automation +title: สร้าง Excel Workbook ด้วย C# – คู่มือ Lambda, SEQUENCE และ EXPAND +url: /th/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# สร้าง Excel Workbook ด้วย C# – Lambda, SEQUENCE & EXPAND Guide + +เคยต้อง **create Excel workbook C#** สำหรับรายงานอัตโนมัติ แต่ไม่แน่ใจว่าจะใช้ API ใด? คุณไม่ได้อยู่คนเดียว—นักพัฒนาหลายคนเจออุปสรรคเดียวกันเมื่อเริ่มทำงานกับการสร้าง Excel แบบโปรแกรมเมติก ในคู่มือนี้คุณจะได้เห็นตัวอย่างที่ทำงานได้เต็มรูปแบบ ครอบคลุมตั้งแต่ **SEQUENCE function Excel** ใหม่ ไปจนถึง **LAMBDA function Excel** ที่ทรงพลัง และแม้กระทั่งวิธี **expand array Excel** ผลลัพธ์ + +เราจะสาธิตขั้นตอนที่แน่นอนเพื่อ **save workbook as xlsx** เพื่อให้คุณสามารถส่งไฟล์ให้ผู้ใช้ Excel ใดก็ได้ เมื่อจบบทเรียนนี้คุณจะมีโค้ดสแนปช็อตที่พร้อมใช้งานในโปรเจกต์ .NET ใด ๆ ไม่ต้องอ้างอิง “ดูเอกสาร” ที่คลุมเครือ—เพียงโค้ดที่ทำงานได้จริงวันนี้ + +## สิ่งที่คุณต้องเตรียม + +- **.NET 6.0 หรือใหม่กว่า** – ตัวอย่างนี้ตั้งเป้าหมายที่ .NET 6 แต่เวอร์ชันล่าสุดใด ๆ ก็ใช้ได้ +- **Aspose.Cells for .NET** – ติดตั้งผ่าน NuGet (`Install-Package Aspose.Cells`) +- ความเข้าใจพื้นฐานเกี่ยวกับไวยากรณ์ C# (ตัวแปร, อ็อบเจกต์, และ lambda expressions) +- IDE ที่คุณถนัด (Visual Studio, Rider, หรือ VS Code) + +เท่านี้เอง ไม่ต้องใช้ COM interop เพิ่มเติม ไม่ต้องติดตั้ง Office บนเซิร์ฟเวอร์—Aspose.Cells จัดการทุกอย่างในหน่วยความจำ + +## Create Excel Workbook C# – ขั้นตอนการทำงานแบบละเอียด + +ด้านล่างเราจะแบ่งกระบวนการเป็นขั้นตอนย่อย ๆ แต่ละขั้นมีหัวข้อชัดเจน, ตัวอย่างโค้ดสั้น ๆ, และคำอธิบาย **ทำไม** เราต้องทำเช่นนั้น คุณสามารถคัดลอกบล็อกเต็มที่ด้านล่างและรันเป็นแอปคอนโซลได้เลย + +### Step 1 – Initialize a New Workbook + +First things first: we need a blank workbook object that represents the Excel file in memory. + +```csharp +using Aspose.Cells; + +// Step 1: Create a new workbook and get the first worksheet +Workbook workbook = new Workbook(); // empty workbook +Worksheet sheet = workbook.Worksheets[0]; // default first sheet +``` + +*Why this matters:* `Workbook` is the entry point for all Aspose.Cells operations. By grabbing the first `Worksheet` we get a canvas where we can write formulas, values, or formatting. + +> **Pro tip:** If you need multiple sheets, just call `workbook.Worksheets.Add()` and keep a reference to each. + +### Step 2 – Use the SEQUENCE function Excel to Generate Data + +The **sequence function excel** creates a dynamic array of numbers without any VBA. We’ll place it in cell `A1` and let Excel expand it automatically. + +```csharp +// Step 2: Generate a 5‑row, 1‑column array from a SEQUENCE +sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; // 1..3 padded with blanks +``` + +*Why this matters:* `SEQUENCE(3)` yields `[1,2,3]`. Wrapping it with `EXPAND` forces the result into a 5‑row range, filling the extra rows with blanks. This demonstrates both **sequence function excel** and **expand array excel** in one go. + +### Step 3 – Aggregate Numbers with LAMBDA function Excel + +Now let’s showcase the **lambda function excel** capability. We’ll sum the numbers 1‑5 using the new `REDUCE` function, which internally relies on a lambda. + +```csharp +// Step 3: Aggregate a sequence (sum 1..5) using REDUCE/LAMBDA +sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; // result = 15 +``` + +*Why this matters:* `REDUCE` iterates over the array produced by `SEQUENCE(5)`, feeding each element (`b`) into the lambda alongside the accumulator (`a`). The lambda `a+b` adds them up, leaving `15` in `B1`. This is a clean, formula‑only way to perform reductions without looping in C#. + +### Step 4 – Apply Trigonometric Functions Directly in Cells + +Excel’s built‑in math functions are handy for quick calculations. We’ll put a cotangent and a hyperbolic cotangent in adjacent cells. + +```csharp +// Step 4: Trigonometric functions directly in Excel cells +sheet["C1"].Formula = "COT(PI()/4)"; // evaluates to 1 +sheet["D1"].Formula = "COTH(1)"; // hyperbolic cotangent of 1 +``` + +*Why this matters:* Demonstrates that you can mix classic math functions with the newer dynamic‑array formulas. No need to compute these values in C# unless you have a specific performance reason. + +### Step 5 – Calculate All Formulas + +Aspose.Cells doesn’t automatically evaluate formulas when you set them. You have to ask it to calculate. + +```csharp +// Step 5: Force calculation so that cells store the results +workbook.CalculateFormula(); +``` + +*Why this matters:* After this call, each cell’s `Value` property contains the evaluated result, ready to be saved or read back. + +### Step 6 – Save the Workbook as Xlsx + +Finally, we persist the workbook to disk using the **save workbook as xlsx** pattern. + +```csharp +// Step 6: Save the workbook to an Excel file (XLSX format) +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + +workbook.Save(outputPath); +Console.WriteLine($"Workbook saved to: {outputPath}"); +``` + +*Why this matters:* The `Save` method automatically detects the file extension. By using “.xlsx” we ensure the file is compatible with modern Excel versions. The path points to the desktop for easy access during testing. + +### Full Working Example + +Below is the complete program you can paste into a new console project. It includes all the steps above, plus a tiny verification block that prints the calculated values to the console. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialize workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + + // SEQUENCE + EXPAND + sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; + + // REDUCE with LAMBDA + sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; + + // Trig functions + sheet["C1"].Formula = "COT(PI()/4)"; + sheet["D1"].Formula = "COTH(1)"; + + // Calculate formulas + workbook.CalculateFormula(); + + // Verify results (optional) + Console.WriteLine("A1‑A5 (expanded SEQUENCE):"); + for (int i = 0; i < 5; i++) + { + Console.WriteLine($" Row {i + 1}: {sheet.Cells[i, 0].Value ?? "blank"}"); + } + Console.WriteLine($"B1 (sum 1‑5): {sheet["B1"].Value}"); + Console.WriteLine($"C1 (cot(π/4)): {sheet["C1"].Value}"); + Console.WriteLine($"D1 (coth(1)): {sheet["D1"].Value}"); + + // Save workbook + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + workbook.Save(outputPath); + Console.WriteLine($"Workbook saved to: {outputPath}"); + } +} +``` + +**Expected output in the console** + +``` +A1‑A5 (expanded SEQUENCE): + Row 1: 1 + Row 2: 2 + Row 3: 3 + Row 4: blank + Row 5: blank +B1 (sum 1‑5): 15 +C1 (cot(π/4)): 1 +D1 (coth(1)): 1.31303528549933 +Workbook saved to: C:\Users\YourName\Desktop\NewFunctions.xlsx +``` + +And when you open *NewFunctions.xlsx* you’ll see the same numbers laid out in the first four columns. + +![สร้าง excel workbook c# ภาพหน้าจอของสเปรดชีตที่ได้](/images/create-excel-workbook-csharp.png) + +## Edge Cases, Tips, and Common Questions + +- **What if I need more than one sheet?** + Just call `workbook.Worksheets.Add()` and repeat the formula assignments on each new `Worksheet` object. + +- **Can I use older Excel versions?** + The dynamic‑array functions (`SEQUENCE`, `EXPAND`, `REDUCE`) require Excel 365 or Excel 2021+. If you target older versions, stick to classic formulas or compute the values in C# before writing them. + +- **Performance concerns?** + For thousands of rows, setting formulas on a range and then calling `CalculateFormula` is usually faster than looping and assigning values one‑by‑one. + +- **Saving to a stream instead of a file?** + `work + +{{< /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/thai/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md b/cells/thai/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md new file mode 100644 index 0000000000..7aef4b65f2 --- /dev/null +++ b/cells/thai/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md @@ -0,0 +1,210 @@ +--- +category: general +date: 2026-03-30 +description: เรียนรู้วิธีใช้ WRAPCOLS ใน C# เพื่อสร้างเวิร์กบุ๊ก Excel, เพิ่มข้อมูลลงใน + Excel, และบังคับให้สูตรคำนวณทำงานพร้อมกับการใช้ WRAPROWS. +draft: false +keywords: +- how to use wrapcols +- create excel workbook c# +- add data to excel +- force formula calculation +- how to use wraprows +language: th +og_description: ค้นพบวิธีใช้ WRAPCOLS ใน C# เพื่อสร้างเวิร์กบุ๊ก Excel, เพิ่มข้อมูล, + บังคับให้คำนวณสูตร และใช้ประโยชน์จาก WRAPROWS สำหรับสูตรอาเรย์ +og_title: วิธีใช้ WRAPCOLS ใน C# – คู่มือฉบับสมบูรณ์ +tags: +- Aspose.Cells +- C# +- Excel Automation +title: วิธีใช้ WRAPCOLS ใน C# – สร้างสมุดงาน Excel ด้วยฟังก์ชัน Wrap +url: /th/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# วิธีใช้ WRAPCOLS ใน C# – สร้าง Excel Workbook ด้วยฟังก์ชัน Wrap + +เคยสงสัย **how to use WRAPCOLS** เมื่อคุณทำอัตโนมัติ Excel ด้วย C# หรือไม่? คุณไม่ได้อยู่คนเดียว—นักพัฒนาหลายคนเจออุปสรรคเมื่อจำเป็นต้องแปลงช่วงแนวนอนเป็นอาเรย์แนวตั้งโดยไม่ต้องเขียนโค้ดจำนวนมาก ข่าวดีคือ Aspose.Cells ทำให้เรื่องนี้ง่ายมาก + +ในบทแนะนำนี้เราจะเดินผ่านตัวอย่างที่สมบูรณ์และสามารถรันได้ซึ่งแสดง **how to use WRAPCOLs**, วิธี **create Excel workbook C#**‑style, วิธี **add data to Excel**, และแม้กระทั่งวิธี **force formula calculation** เพื่อให้ผลลัพธ์ปรากฏทันที เราจะใส่ **how to use WRAPROWS** สำหรับการแปลงในทิศทางตรงกันข้ามด้วย เมื่อเสร็จคุณจะมีโปรแกรมพร้อมรันและเข้าใจอย่างชัดเจนว่าทำไมแต่ละขั้นตอนจึงสำคัญ + +--- + +![How to use WRAPCOLS in C# example](alt="Screenshot showing Excel workbook after using WRAPCOLS in C#") + +## สิ่งที่คู่มือนี้ครอบคลุม + +* ตั้งค่า workbook ใหม่ด้วย Aspose.Cells. +* เติมข้อมูลในเซลล์โดยโปรแกรม (**add data to Excel**). +* ใช้ฟังก์ชัน `WRAPCOLS` เพื่อแปลงแถวเป็นคอลัมน์. +* ใช้ `WRAPROWS` เพื่อแปลงคอลัมน์กลับเป็นแถว (**how to use wraprows**). +* บังคับให้เอนจินประมวลผลสูตรทันที (**force formula calculation**). +* บันทึกไฟล์และตรวจสอบผลลัพธ์. + +ไม่ต้องอ้างอิงเอกสารภายนอก—ทุกอย่างที่คุณต้องการอยู่ที่นี่ + +--- + +## วิธีใช้ WRAPCOLS ใน C# – การดำเนินการแบบขั้นตอน + +ด้านล่างเป็นไฟล์ซอร์สเต็มรูปแบบ คุณสามารถคัดลอก‑วางลงในโปรเจกต์คอนโซลใหม่, เพิ่มแพคเกจ Aspose.Cells NuGet, และกด **F5**. + +```csharp +// ------------------------------------------------------------ +// How to Use WRAPCOLS in C# – Complete Example +// ------------------------------------------------------------ +using System; +using Aspose.Cells; + +namespace WrapFunctionsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a fresh workbook (this is how we **create excel workbook c#** style) + Workbook workbook = new Workbook(); + + // 2️⃣ Grab the first worksheet – it's created by default + Worksheet sheet = workbook.Worksheets[0]; + + // 3️⃣ **Add data to Excel**: place two numbers side‑by‑side + sheet.Cells["A1"].PutValue(1); // first value + sheet.Cells["B1"].PutValue(2); // second value + + // 4️⃣ **How to use WRAPCOLS** – turn the horizontal range A1:B1 into a vertical array + // The second argument (1) tells WRAPCOLS to create 1 column per element. + sheet["C1"].Formula = "WRAPCOLS(A1:B1, 1)"; + + // 5️⃣ **How to use WRAPROWS** – the opposite; turn the same range into a horizontal array + // Here we ask for 2 rows per element, which produces a single row with both values. + sheet["C2"].Formula = "WRAPROWS(A1:B1, 2)"; + + // 6️⃣ **Force formula calculation** so the workbook reflects the results immediately + workbook.CalculateFormula(); + + // 7️⃣ Save the workbook to disk – change the path to a folder you own + string outputPath = @"WrapFunctions.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + Console.WriteLine("Check cells C1 and C2 for the WRAPCOLS / WRAPROWS results."); + } + } +} +``` + +### ทำไมแต่ละบรรทัดจึงสำคัญ + +| Step | Explanation | +|------|-------------| +| **1️⃣ สร้าง workbook ใหม่** | นี่คือพื้นฐาน Aspose.Cells ปฏิบัติกับอ็อบเจ็กต์ `Workbook` เป็นไฟล์ Excel ทั้งหมด ดังนั้นคุณจึง **creating an Excel workbook C#** style. | +| **2️⃣ ดึง worksheet แรก** | Workbook ใหม่จะมีอย่างน้อยหนึ่ง worksheet (`Worksheets[0]`) เสมอ การเข้าถึงล่วงหน้าช่วยหลีกเลี่ยงข้อผิดพลาด null‑reference | +| **3️⃣ เพิ่มข้อมูลลงใน Excel** | โดยใช้ `PutValue` เรา **add data to Excel** โดยไม่ต้องกังวลเรื่องการจัดรูปแบบเซลล์ ตัวเลข `1` และ `2` เป็นข้อมูลทดสอบสำหรับฟังก์ชัน wrap | +| **4️⃣ วิธีใช้ WRAPCOLS** | `WRAPCOLS(A1:B1, 1)` บอก Excel ให้รับช่วง `A1:B1` แล้วกระจายค่าตามแนวตั้ง หนึ่งค่าต่อแถว ผลลัพธ์จะอยู่ที่ `C1` และกระจายลงล่าง (`C1`, `C2`, …). | +| **5️⃣ วิธีใช้ WRAPROWS** | `WRAPROWS(A1:B1, 2)` ทำตรงข้าม: สร้างการกระจายแนวนอน โดยใส่ค่าทั้งสองลงในแถวเดียวเริ่มที่ `C2`. | +| **6️⃣ บังคับการคำนวณสูตร** | โดยค่าเริ่มต้น Aspose.Cells อาจเลื่อนการคำนวณจนกว่าไฟล์จะเปิดใน Excel การเรียก `CalculateFormula()` **forces formula calculation** ทำให้คุณสามารถอ่านผลลัพธ์ได้ทันทีหลังบันทึก | +| **7️⃣ บันทึก workbook** | ขั้นตอนสุดท้ายเขียนทุกอย่างลงดิสก์ เปิดไฟล์ `WrapFunctions.xlsx` ที่ได้เพื่อดูผลลัพธ์ | + +--- + +## สร้าง Excel Workbook C# – การตั้งค่าสภาพแวดล้อม + +ก่อนที่คุณจะรันโค้ด, ตรวจสอบว่าคุณมีเครื่องมือที่จำเป็น: + +1. **.NET 6.0+** – เวอร์ชัน LTS ล่าสุดทำงานได้ดีที่สุด. +2. **Visual Studio 2022** (หรือ VS Code พร้อมส่วนขยาย C#). +3. **Aspose.Cells for .NET** – ติดตั้งผ่าน NuGet: + ```bash + dotnet add package Aspose.Cells + ``` +4. โฟลเดอร์ที่สามารถเขียนได้สำหรับไฟล์ผลลัพธ์. + +ข้อกำหนดเบื้องต้นเหล่านี้มีเพียงเล็กน้อย; ไม่ต้องการ COM interop หรือการติดตั้ง Office ซึ่งเป็นเหตุผลที่ Aspose.Cells เป็นตัวเลือกยอดนิยมสำหรับการสร้าง Excel ฝั่งเซิร์ฟเวอร์ + +--- + +## เพิ่มข้อมูลลงใน Excel – แนวทางปฏิบัติที่ดีที่สุด + +เมื่อคุณ **add data to Excel** ด้วยโปรแกรม, พิจารณาคำแนะนำต่อไปนี้: + +* **Use `PutValue`** สำหรับตัวเลขหรือสตริงดิบ; มันจะตรวจจับประเภทข้อมูลโดยอัตโนมัติ. +* **Avoid hard‑coding cell addresses** ในโครงการขนาดใหญ่—ใช้ลูปหรือ named ranges เพื่อความยืดหยุ่น. +* **Set cell styles sparingly**; การเปลี่ยนสไตล์แต่ละครั้งเพิ่มภาระงาน หากต้องการจัดรูปแบบ, สร้างอ็อบเจ็กต์สไตล์เดียวและนำไปใช้กับหลายเซลล์. + +ในตัวอย่างเล็กของเราเราแค่ใส่ตัวเลขสองค่า, แต่รูปแบบเดียวกันสามารถขยายไปถึงหลายพันแถวได้. + +--- + +## วิธีใช้ WRAPROWS – ตัวอย่างอาร์เรย์แนวนอน + +หากคุณต้องการทำตรงข้ามของ `WRAPCOLS`, `WRAPROWS` คือคำตอบ ไวยากรณ์คือ: + +``` +WRAPROWS(source_range, [rows_per_item]) +``` + +- `source_range` – ช่วงที่คุณต้องการแปลง. +- `rows_per_item` – ตัวเลือก; บอก Excel ว่าแต่ละองค์ประกอบใช้จำนวนแถวเท่าไร ในตัวอย่างของเราเราใช้ `2` เพื่อบังคับให้ค่าทั้งสองอยู่ในแถวเดียว. + +คุณสามารถทดลองโดยเปลี่ยนอาร์กิวเมนต์ที่สอง: + +```csharp +// Example: split each value into its own column, three rows per item +sheet["D1"].Formula = "WRAPROWS(A1:B1, 3)"; +``` + +เปิด workbook แล้วคุณจะเห็นค่ากระจายไปในสามคอลัมน์, แต่ละคอลัมน์จะมีตัวเลขเดิมซ้ำตามที่ต้องการ. + +--- + +## บังคับการคำนวณสูตร – เมื่อไหร่และทำไม + +คุณอาจสงสัย, “ฉันต้องเรียก `CalculateFormula()` จริงหรือ?” คำตอบคือ **yes**, หาก: + +* คุณตั้งใจจะอ่านค่าที่คำนวณแล้ว **programmatically** หลังบันทึก. +* คุณต้องการรับประกันว่าไฟล์เปิดใน Excel พร้อมแสดงผลลัพธ์ที่ถูกต้องแล้ว. +* คุณกำลังทำงานใน **headless environment** (เช่น เว็บ API) ที่ไม่มีผู้ใช้ทำการคำนวณใหม่ด้วยตนเอง. + +การข้ามขั้นตอนนี้จะไม่ทำให้ workbook พัง, แต่เซลล์จะแสดงข้อความสูตร (`=WRAPCOLS(...)`) แทนค่าที่คำนวณจนกว่า Excel จะคำนวณใหม่. + +--- + +## ผลลัพธ์ที่คาดหวัง – สิ่งที่ควรตรวจสอบ + +หลังจากรันโปรแกรมและเปิดไฟล์ `WrapFunctions.xlsx`: + +| Cell | Formula | Displayed Value | +|------|---------|-----------------| +| **C1** | `=WRAPCOLS(A1:B1, 1)` | `1` (ใน C1) และ `2` (ใน C2) – รายการแนวตั้ง | +| **C2** | `=WRAPROWS(A1:B1, 2)` | `1` ใน C2 และ `2` ใน D2 – รายการแนวนอน | + +ดังนั้นคุณจะเห็นคอลัมน์ของค่าเริ่มจาก **C1** และแถวของค่าเริ่มจาก **C2** ซึ่งยืนยันว่าฟังก์ชัน wrap ทั้งสองทำงานตามที่คาดหวัง. + +--- + +## กรณีขอบและความแปรผัน + +| Scenario | What changes? | Suggested tweak | +|----------|---------------|-----------------| +| **Large range (A1:Z1)** | ค่ามากขึ้นที่ต้องกระจายแนวตั้ง | เพิ่มอาร์กิวเมนต์ที่สองของ `WRAPCOLS` หากต้องการหลายคอลัมน์ต่อกลุ่ม. | +| **Non‑numeric data** | สตริงจะถูกจัดการเช่นเดียวกัน | ไม่มีการเปลี่ยนแปลงโค้ด; `PutValue` ยอมรับอ็อบเจ็กต์ใดก็ได้. | +| **Dynamic range** | คุณไม่ทราบขนาดในเวลาคอมไพล์ | ใช้ `sheet.Cells.MaxDataColumn` และ `MaxDataRow` เพื่อสร้างสตริงที่อยู่. | +| **Multiple worksheets** | ต้องใช้ฟังก์ชัน wrap บนชีตต่างๆ | อ้างอิง worksheet ที่ถูกต้อง (`workbook.Worksheets["Sheet2"]`). | + +--- + +## เคล็ดลับระดับมืออาชีพจากประสบการณ์จริง + +* **Pro tip:** ห่อการสร้าง workbook ในบล็อก `using` หากคุณกำหนดเป้าหมาย .NET Core 3.1+ เพื่อให้แน่ใจว่าทรัพยากรถูกปล่อยอย่างรวดเร็ว. +* **Watch out for:** การตั้งสูตรเดียวกันในช่วงใหญ่โดยไม่เรียก `CalculateFormula()` อาจทำให้เกิดคอขวดด้านประสิทธิภาพ. ควรประมวลผลสูตรเป็นชุดเมื่อเป็นไปได้. +* **Tip:** หากคุณต้องการอ่านค่าที่คำนวณกลับในโค้ด, เรียก ` + +{{< /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/thai/net/tables-and-lists/_index.md b/cells/thai/net/tables-and-lists/_index.md index dc6280b8f6..4a37a2deea 100644 --- a/cells/thai/net/tables-and-lists/_index.md +++ b/cells/thai/net/tables-and-lists/_index.md @@ -51,6 +51,8 @@ ปลดล็อกพลังของ Aspose.Cells สำหรับ .NET เรียนรู้การอ่านและเขียนตารางด้วยแหล่งข้อมูลแบบสอบถามในคู่มือทีละขั้นตอนโดยละเอียดนี้ ### [ตั้งค่าความคิดเห็นของตารางหรือรายการใน Excel](./setting-comment-of-table-or-list/) เรียนรู้วิธีการตั้งค่าความคิดเห็นสำหรับตารางใน Excel โดยใช้ Aspose.Cells สำหรับ .NET ด้วยคู่มือทีละขั้นตอนง่ายๆ ของเรา +### [สร้างตารางจากช่วงใน C# – บทช่วยสอน Aspose.Cells ฉบับสมบูรณ์](./create-table-from-range-in-c-complete-aspose-cells-tutorial/) +เรียนรู้วิธีสร้างตารางจากช่วงใน Excel ด้วย C# โดยใช้ Aspose.Cells อย่างละเอียดและครบถ้วน {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/thai/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md b/cells/thai/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md new file mode 100644 index 0000000000..7f00246e55 --- /dev/null +++ b/cells/thai/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md @@ -0,0 +1,230 @@ +--- +category: general +date: 2026-03-30 +description: สร้างตารางจากช่วงใน C# ด้วย Aspose.Cells – เพิ่มข้อมูลลงในเซลล์, แปลงช่วงเป็น + ListObject และบันทึกไฟล์ Excel โดยไม่มีตัวกรอง. +draft: false +keywords: +- create table from range +- create excel workbook c# +- add data to cells +- convert range to listobject +- save excel without filter +language: th +og_description: สร้างตารางจากช่วงใน C# ด้วย Aspose.Cells เรียนรู้วิธีเพิ่มข้อมูลลงในเซลล์ + แปลงช่วงเป็น ListObject และบันทึกไฟล์ Excel โดยไม่มีตัวกรอง. +og_title: สร้างตารางจากช่วงใน C# – บทเรียน Aspose.Cells อย่างครบถ้วน +tags: +- Aspose.Cells +- C# +- Excel Automation +title: สร้างตารางจากช่วงใน C# – บทเรียน Aspose.Cells ฉบับเต็ม +url: /th/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# สร้างตารางจากช่วงใน C# – คู่มือ Aspose.Cells ฉบับสมบูรณ์ + +เคยต้อง **สร้างตารางจากช่วง** ใน C# แต่ไม่แน่ใจว่าจะเปลี่ยนบล็อกข้อมูลธรรมดาให้เป็นตาราง Excel ที่เต็มรูปแบบได้อย่างไรหรือไม่? คุณไม่ได้เป็นคนเดียว ไม่ว่าคุณจะทำอัตโนมัติรายงาน, สร้างสกอร์การ์ด, หรือแค่ทำความสะอาดข้อมูลเพื่อการวิเคราะห์ต่อไป การเชี่ยวชาญเทคนิคเล็ก ๆ นี้สามารถช่วยลดงานมือได้มาก + +ในคู่มือนี้เราจะเดินผ่านกระบวนการทั้งหมด: **create excel workbook c#**, **add data to cells**, **convert range to ListObject**, และสุดท้าย **save excel without filter**. เมื่อเสร็จคุณจะได้โค้ดสั้น ๆ ที่พร้อมรันและสามารถนำไปใส่ในโปรเจกต์ .NET ใด ๆ ที่อ้างอิง Aspose.Cells + +--- + +## Prerequisites + +- .NET 6+ (หรือ .NET Framework 4.7.2+) ที่ติดตั้งแล้ว +- Aspose.Cells for .NET (แพ็กเกจ NuGet `Aspose.Cells`) – เวอร์ชันล่าสุด ณ เวลาที่เขียน (23.10) ทำงานได้อย่างสมบูรณ์ +- ความเข้าใจพื้นฐานของไวยากรณ์ C# – ไม่จำเป็นต้องรู้ลึกเกี่ยวกับ Excel interop + +ถ้าคุณมีทั้งหมดนี้แล้ว ไปเริ่มกันเลย + +--- + +## Step 1: Create an Excel Workbook in C# + +ขั้นแรกเราต้องสร้างอ็อบเจกต์ workbook ใหม่ คิดว่าเป็นไฟล์ Excel ว่างเปล่าที่จะบรรจุตารางของเราในภายหลัง + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is equivalent to opening a blank .xlsx file. +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (default) worksheet. +``` + +> **Pro tip:** `Workbook()` ที่ไม่มีอาร์กิวเมนต์จะสร้าง workbook ที่มี worksheet เริ่มต้นหนึ่งแผ่น ซึ่งเหมาะสำหรับการสาธิตอย่างรวดเร็ว หากต้องการหลายแผ่นคุณสามารถเพิ่มได้ภายหลังด้วย `workbook.Worksheets.Add()` + +--- + +## Step 2: Add Data to Cells + +ต่อไปเราจะใส่ข้อมูลตัวอย่างขนาดเล็กลงในแผ่น – สองคอลัมน์ (Name, Score) และสามแถวของค่า ซึ่งจะแสดง **add data to cells** อย่างชัดเจนและอ่านง่าย + +```csharp +// Header row +worksheet.Cells["A1"].PutValue("Name"); +worksheet.Cells["B1"].PutValue("Score"); + +// Data rows +worksheet.Cells["A2"].PutValue("Alice"); +worksheet.Cells["B2"].PutValue(85); +worksheet.Cells["A3"].PutValue("Bob"); +worksheet.Cells["B3"].PutValue(92); +``` + +ทำไมต้องใช้ `PutValue`? มันจะตรวจจับชนิดข้อมูลโดยอัตโนมัติ (string หรือ numeric) และกำหนดรูปแบบเซลล์ให้สอดคล้อง ช่วยคุณหลีกเลี่ยงการจัดการกับอ็อบเจกต์ `Style` สำหรับกรณีง่าย ๆ + +> **Expected output:** หลังจากขั้นตอนนี้ หากคุณเปิด workbook ใน Excel จะเห็นกริดสองคอลัมน์ที่มีหัวข้อ “Name” และ “Score” ตามด้วยสองแถวของข้อมูล + +--- + +## Step 3: Convert the Range into a ListObject (Table) + +นี่คือจุดที่เกิด “เวทมนตร์” – การเปลี่ยนช่วงข้อมูลธรรมดาให้เป็นตาราง Excel (เรียกว่า **ListObject** ใน Aspose.Cells API) ซึ่งไม่เพียงเพิ่มสไตล์ให้สวยงาม แต่ยังเปิดใช้งานฟีเจอร์ในตัวเช่นการจัดเรียง, การกรอง, และการอ้างอิงแบบโครงสร้าง + +```csharp +// Define the range boundaries. +// startRow and startColumn are zero‑based indexes. +// rowCount includes the header row. +int startRow = 0; // Row 1 in Excel +int startColumn = 0; // Column A +int rowCount = 3; // Header + 2 data rows +int columnCount = 2; // Two columns: Name & Score + +// Add a ListObject to the worksheet and retrieve the object. +int listIndex = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); +ListObject table = worksheet.ListObjects[listIndex]; + +// Turn on the UI filter dropdowns so users can interact with the table. +table.ShowAutoFilter = true; +``` + +> **Why use a ListObject?** +> - **Structured references**: สูตรสามารถอ้างอิงคอลัมน์ตามชื่อได้ +> - **Auto‑filter UI**: ผู้ใช้จะเห็นลูกศรดรอปดาวน์สำหรับการกรองอย่างรวดเร็ว +> - **Styling**: คุณสามารถใช้สไตล์ตารางในตัวด้วยบรรทัดเดียวในภายหลัง + +--- + +## Step 4: Remove the AutoFilter UI (Save Excel Without Filter) + +บางครั้งคุณต้องการแผ่นที่สะอาดไม่มีลูกศรกรอง – เช่น เมื่อ workbook เป็นรายงานขั้นสุดท้าย Aspose.Cells 23.10 ได้เพิ่มวิธีง่าย ๆ เพื่อเอา UI ของฟิลเตอร์ออกทั้งหมด + +```csharp +// Remove the filter UI completely. +table.AutoFilter = null; // Clears the underlying filter object. +table.ShowAutoFilter = false; // Hides the dropdown arrows. +``` + +สังเกตว่าเราไม่ได้ลบข้อมูล เพียงแค่ปิดการแสดงคอนโทรลฟิลเตอร์เท่านั้น ซึ่งตอบสนองความต้องการ **save excel without filter** ของคุณ + +--- + +## Step 5: Save the Workbook + +สุดท้ายให้เขียน workbook ลงดิสก์ ไฟล์จะมีตารางแต่ไม่มี UI ของฟิลเตอร์ + +```csharp +// Choose a folder you have write access to. +string outputPath = @"C:\Temp\NoAutoFilter.xlsx"; +workbook.Save(outputPath); +``` + +เปิด `NoAutoFilter.xlsx` ใน Excel – คุณจะเห็นตารางที่มีรูปแบบเริ่มต้น แต่ไม่มีลูกศรฟิลเตอร์ ข้อมูลยังคงอยู่ครบถ้วนและไฟล์พร้อมสำหรับการแจกจ่าย + +--- + +![ภาพหน้าจอแสดงการสร้างตารางจากช่วงใน Excel ด้วย Aspose.Cells](image.png "ภาพหน้าจอการสร้างตารางจากช่วง") + +*ข้อความแทนภาพ:* **ภาพหน้าจอแสดงการสร้างตารางจากช่วงใน Excel ด้วย Aspose.Cells** – พิสูจน์ว่าตารางมีอยู่โดยไม่มีเมนูดรอปดาวน์ของฟิลเตอร์ + +--- + +## Full, Runnable Example + +ด้านล่างเป็นโปรแกรมเต็มที่คุณสามารถคัดลอก‑วางลงในแอปคอนโซลได้ รวมทุกขั้นตอนข้างต้นและคอมเมนต์เสริมเพื่อความชัดเจน + +```csharp +using System; +using Aspose.Cells; + +namespace AsposeTableDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add data to cells – this is the “add data to cells” part. + worksheet.Cells["A1"].PutValue("Name"); + worksheet.Cells["B1"].PutValue("Score"); + worksheet.Cells["A2"].PutValue("Alice"); + worksheet.Cells["B2"].PutValue(85); + worksheet.Cells["A3"].PutValue("Bob"); + worksheet.Cells["B3"].PutValue(92); + + // 3️⃣ Convert the range into a ListObject (i.e., create table from range). + int startRow = 0, startColumn = 0, rowCount = 3, columnCount = 2; + int listIdx = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); + ListObject table = worksheet.ListObjects[listIdx]; + table.ShowAutoFilter = true; // optional UI filter + + // 4️⃣ Remove the AutoFilter UI – “save excel without filter”. + table.AutoFilter = null; + table.ShowAutoFilter = false; + + // 5️⃣ Save the workbook. + string filePath = @"C:\Temp\NoAutoFilter.xlsx"; + workbook.Save(filePath); + + Console.WriteLine($"Workbook saved to {filePath}"); + } + } +} +``` + +รันโปรแกรมแล้วเปิด `C:\Temp\NoAutoFilter.xlsx` คุณจะเห็นตารางที่จัดรูปแบบสวยงาม ไม่มีลูกศรฟิลเตอร์ และข้อมูลที่เราใส่ไว้ นั่นคือเวิร์กโฟลว์ **create excel workbook c#** ทั้งหมดในไม่ถึง 60 บรรทัดของโค้ด + +--- + +## Frequently Asked Questions & Edge Cases + +**Q: ถ้าช่วงข้อมูลของฉันไม่ต่อเนื่องล่ะ?** +A: Aspose.Cells ต้องการช่วงสี่เหลี่ยมผืนผ้าสำหรับ `ListObjects.Add`. หากข้อมูลของคุณไม่ต่อเนื่อง ให้สร้างช่วงชั่วคราวก่อน (เช่น คัดลอกส่วนต่าง ๆ ไปยัง worksheet ใหม่) แล้วจึงแปลงช่วงนั้นเป็นตาราง + +**Q: ฉันสามารถใช้สไตล์ตารางแบบกำหนดเองได้ไหม?** +A: แน่นอน หลังจากสร้าง `ListObject` แล้วตั้งค่า `table.TableStyleType = TableStyleType.TableStyleMedium9;` (หรือสไตล์ในบิลท์‑อิน 65 แบบ) เพื่อให้ตารางสอดคล้องกับแบรนด์ขององค์กร + +**Q: จะทำอย่างไรให้ฟิลเตอร์ยังคงทำงานแต่ซ่อนลูกศร?** +A: ลอจิกของฟิลเตอร์อยู่ใน `table.AutoFilter`. การตั้งค่า `ShowAutoFilter = false` จะซ่อน UI เท่านั้น; ฟิลเตอร์พื้นฐานยังคงทำงานอยู่ ดังนั้นคุณยังสามารถกรองแถวโดยโปรแกรมได้ต่อไป + +**Q: ถ้าต้องจัดการชุดข้อมูลขนาดใหญ่ (10k+ แถว) จะทำอย่างไร?** +A: API เดียวกันใช้ได้ แต่แนะนำให้ปิดการคำนวณอัตโนมัติ (`workbook.CalcEngine = false`) ก่อนทำการแทรกข้อมูลจำนวนมากเพื่อเพิ่มประสิทธิภาพ แล้วเปิดใหม่หลังจากเสร็จ + +--- + +## Wrap‑Up + +เราได้อธิบายวิธี **สร้างตารางจากช่วง** ใน C# ด้วย Aspose.Cells อย่างละเอียด ตั้งแต่ **create excel workbook c#**, ผ่าน **add data to cells**, ไปจนถึง **convert range to ListObject**, และสุดท้าย **save excel without filter** โค้ดพร้อมใช้งาน, รันได้, และพร้อมสำหรับการผลิต + +ต่อไปคุณอาจอยากสำรวจ: + +- เพิ่ม conditional formatting เพื่อไฮไลท์คะแนนสูงสุด +- ส่งออก workbook เป็น PDF ด้วย `workbook.Save("Report.pdf", SaveFormat.Pdf);` +- ใช้ `table.Columns["Score"].DataBodyRange.Sort` เพื่อจัดเรียงตารางโดยโปรแกรม + +ลองปรับเปลี่ยนชุดข้อมูล, สไตล์ตาราง, หรือแม้แต่หลาย worksheet ดูได้เลย API มีความยืดหยุ่นพอรับมือกับทุกกรณี ตั้งแต่สกอร์การ์ดขนาดเล็กจนถึงบัญชีการเงินขนาดใหญ่ + +มีคำถามหรือเจออุปสรรค? แสดงความคิดเห็นด้านล่างหรือทักมาที่ GitHub ของฉัน ขอให้สนุกกับการเขียนโค้ดและแปลงช่วงข้อมูลดิบให้เป็นตาราง 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/turkish/net/conversion-to-pdf/_index.md b/cells/turkish/net/conversion-to-pdf/_index.md index d11922d724..ee15738a07 100644 --- a/cells/turkish/net/conversion-to-pdf/_index.md +++ b/cells/turkish/net/conversion-to-pdf/_index.md @@ -34,6 +34,8 @@ Ama bekleyin, daha fazlası var! Ya Excel sayfalarınızdan PDF'e grafikleri dö Excel elektronik tablolarını Aspose.Cells for .NET ile kolayca PDF'ye dönüştürün! Kusursuz bir deneyim için adım adım kılavuzumuzu izleyin. ### [.NET'te Tabloyu PDF'ye Dönüştür](./convert-chart-to-pdf/) Bu adım adım kılavuzla Aspose.Cells kullanarak Excel grafiklerini .NET'te PDF'ye nasıl dönüştüreceğinizi öğrenin! Her seviyedeki programcı için mükemmel. +### [Aspose.Cells ile Çalışma Kitabını PDF Olarak Kaydet – Tam Adım‑Adım Kılavuz](./save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/) +Aspose.Cells kullanarak bir çalışma kitabını PDF'ye kaydetmenin tüm adımlarını öğrenin. Detaylı ve uygulamalı rehber. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/turkish/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md b/cells/turkish/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md new file mode 100644 index 0000000000..26596ece63 --- /dev/null +++ b/cells/turkish/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md @@ -0,0 +1,244 @@ +--- +category: general +date: 2026-03-30 +description: Aspose.Cells kullanarak bir çalışma kitabını PDF olarak kaydetmeyi öğrenin. + Bu öğreticide ayrıca çalışma sayfasını PDF’ye dışa aktarma, Excel’i PDF’ye nasıl + dışa aktaracağınız ve çalışma sayfasından PDF oluşturma konuları da ele alınmaktadır. +draft: false +keywords: +- save workbook as pdf +- export worksheet to pdf +- how to export excel to pdf +- save excel as pdf +- create pdf from worksheet +language: tr +og_description: Çalışma kitabını kolayca PDF olarak kaydedin. Bu kılavuz, çalışma + sayfasını PDF'ye nasıl dışa aktaracağınızı, Excel'i PDF'ye nasıl dışa aktaracağınızı + ve C# kullanarak çalışma sayfasından PDF oluşturmayı gösterir. +og_title: Aspose.Cells ile çalışma kitabını PDF olarak kaydetme – Tam Rehber +tags: +- Aspose.Cells +- C# +- PDF generation +title: Aspose.Cells ile Çalışma Kitabını PDF Olarak Kaydet – Tam Adım Adım Kılavuz +url: /tr/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Çalışma kitabını pdf olarak kaydet – Tam Adım‑Adım Kılavuz + +Ever needed to **save workbook as pdf** but weren't sure which library would keep your numbers intact? You're not alone. In many projects we have to turn Excel data into a polished PDF, and doing it the right way saves hours of debugging. + +In this tutorial we’ll walk through the exact code you need to **save workbook as pdf** with Aspose.Cells, and along the way we’ll also show you how to **export worksheet to pdf**, answer *how to export excel to pdf* questions, and demonstrate a clean way to **create pdf from worksheet** with custom precision settings. + +By the end of the guide you’ll have a ready‑to‑run C# console app that produces a PDF containing only the significant digits you care about. No extra fluff, just a solid, production‑ready solution. + +--- + +## Neler Öğreneceksiniz + +- Yeni bir `Workbook` oluşturmayı ve ilk çalışma sayfasını hedeflemeyi nasıl yapacağınızı. +- Sayısal hassasiyeti koruyarak **save workbook as pdf** işlemini gerçekleştiren tam yöntemi. +- `SignificantDigits` özelliğinin **export worksheet to pdf** yaparken neden önemli olduğunu. +- **how to export excel to pdf** denediğinizde karşılaşılan yaygın tuzaklar ve bunlardan nasıl kaçınılacağı. +- Farklı sayfa seçenekleriyle **save excel as pdf** yapmanın hızlı yolları ve programlı olarak **create pdf from worksheet** nasıl yapılır. + +### Önkoşullar + +- .NET 6.0 veya üzeri (kod .NET Framework 4.5+ ile de çalışır). +- Geçerli bir Aspose.Cells lisansı (veya test için ücretsiz geçici lisans). +- Visual Studio 2022 veya herhangi bir C# uyumlu IDE. + +If you’ve got those basics covered, let’s dive in. + +--- + +## Adım 1 – Aspose.Cells'i Yükleyin ve Workbook'u Başlatın + +First things first: you need the Aspose.Cells NuGet package. Open a terminal in your project folder and run: + +```bash +dotnet add package Aspose.Cells +``` + +Once the package is installed, create a new `Workbook` object. This is the object you’ll eventually **save workbook as pdf**. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialise a fresh workbook – think of it as a blank Excel file. + Workbook workbook = new Workbook(); + + // Grab the first worksheet (index 0). This is where we’ll put our data. + Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Why this step?* +Creating the workbook gives you a clean canvas, and selecting the first worksheet ensures you’re working with a known location. Skipping this can lead to *null reference* errors when you later try to **export worksheet to pdf**. + +--- + +## Adım 2 – Yüksek Hassasiyetli Veri Ekleme + +Now we’ll put a number that has more decimal places than we actually want to show in the PDF. This demonstrates how the `SignificantDigits` setting trims the output. + +```csharp + // Place a high‑precision number in cell A1. + worksheet.Cells["A1"].PutValue(1234.56789); +``` + +If you run the program now and simply call `workbook.Save("output.pdf")`, the PDF will show the full `1234.56789`. That’s fine for some cases, but often you need to round to a specific number of significant digits—especially for financial reports. + +--- + +## Adım 3 – PDF Kaydetme Seçeneklerini Yapılandırma + +Aspose.Cells gives you fine‑grained control via `PdfSaveOptions`. The property we care about is `SignificantDigits`. Setting it to `4` tells the engine to keep only four significant figures when it **save workbook as pdf**. + +```csharp + // Configure PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 // This trims the number to 1235 in the PDF. + }; +``` + +*Why use `SignificantDigits`?* +When you **create pdf from worksheet**, you often need to obey regulatory rounding rules. This option does the rounding for you, so you don’t have to manually format each cell. + +--- + +## Adım 4 – Seçeneklerle Çalışma Sayfasını PDF Olarak Dışa Aktarma + +Here’s the moment of truth: we actually **save workbook as pdf** using the options we just defined. + +```csharp + // Save the workbook as a PDF using the configured options. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + } +} +``` + +Running the program will generate a file called `SignificantDigits.pdf` in your project's output folder. Open it and you’ll see `1235` in cell A1 – the number has been rounded to four significant digits. + +*Key point:* The `Save` method takes both the file path and the `PdfSaveOptions`. If you omit the options, you’ll fall back to the default behavior, which may not meet your precision requirements. + +--- + +## Adım 5 – Çıktıyı Doğrulama ve Yaygın Sorunları Giderme + +### Beklenen Sonuç + +- `SignificantDigits.pdf` adlı tek sayfalık PDF. +- A1 hücresi `1235` (dört anlamlı basamak) gösterir. +- Ekstra çalışma sayfaları veya gizli içerik görünmez. + +### Sık Sorulan Sorular + +| Question | Answer | +|----------|--------| +| **What if I need more than one worksheet?** | Loop through `workbook.Worksheets` and apply the same `PdfSaveOptions` when you save each sheet individually, or set `OnePagePerSheet = true` in the options. | +| **Can I keep the original number format?** | Yes – set `PdfSaveOptions.AllColumnsInOnePage = true` and let Excel’s formatting rules handle it, but remember that `SignificantDigits` will still override the numeric precision. | +| **Does this work with .xlsx files that already exist?** | Absolutely. Replace `new Workbook()` with `new Workbook("input.xlsx")` and the rest of the code stays the same. | +| **What if the PDF is blank?** | Verify that the workbook actually contains data and that you’re saving to a writable directory. Also, ensure the Aspose.Cells license is correctly applied; an unlicensed trial may limit output. | + +### İpucu + +If you need to **save excel as pdf** with a specific page orientation, set `pdfSaveOptions.PageSetup.Orientation = PageOrientation.Landscape;` before calling `Save`. This small tweak often saves you from having to manually adjust the PDF later. + +--- + +## Varyasyonlar: Birden Çok Sayfayı Dışa Aktarma veya Özel Sayfa Ayarları + +### Tüm Sayfaları Tek Çağrıda Dışa Aktar + +```csharp +PdfSaveOptions allSheetsOptions = new PdfSaveOptions +{ + SignificantDigits = 4, + OnePagePerSheet = true // Each worksheet gets its own page. +}; + +workbook.Save("AllSheets.pdf", allSheetsOptions); +``` + +### Tek Bir Sayfayı PDF Olarak Dışa Aktar + +If you only want to **export worksheet to pdf** for a specific sheet, use the `Worksheet` object's `ToPdf` method: + +```csharp +Worksheet sheet = workbook.Worksheets["Sheet2"]; +sheet.ToPdf("Sheet2.pdf", pdfSaveOptions); +``` + +### Sayfa Kenar Boşluklarını Ayarlama + +```csharp +pdfSaveOptions.PageSetup.TopMargin = 20; +pdfSaveOptions.PageSetup.BottomMargin = 20; +``` + +--- + +## Tam Çalışan Örnek + +Below is the complete, copy‑and‑paste‑ready program that incorporates everything we’ve discussed. Save it as `Program.cs` and run `dotnet run`. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and select the first worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Insert a high‑precision number. + worksheet.Cells["A1"].PutValue(1234.56789); + + // 3️⃣ Set PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 + }; + + // 4️⃣ Save the workbook as PDF. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + + // Optional: Export another sheet with custom settings. + // Worksheet sheet2 = workbook.Worksheets.Add("Report"); + // sheet2.Cells["B2"].PutValue(9876.54321); + // sheet2.ToPdf("Report.pdf", pdfSaveOptions); + } +} +``` + +**Sonuç:** Open `SignificantDigits.pdf` – you’ll see the rounded value `1235`. The file size is modest, and the layout matches the original Excel sheet. + +--- + +## Sonuç + +We’ve just shown you how to **save workbook as pdf** using Aspose.Cells, covering everything from basic setup to advanced options like **export worksheet to pdf**, **how to export excel to pdf**, and **create pdf from worksheet** with precise numeric control. + +The approach is straightforward, requires only a few lines of C#, and works across .NET versions. Next, you might explore adding headers/footers, embedding images, or generating PDFs from templates—each of which builds on the foundation you now have. + +Got a twist you’d like to try? Maybe you need to password‑protect the PDF or merge several PDFs together. Those are natural extensions, and the Aspose.Cells API has you covered. Dive in, experiment, and let the library do the heavy lifting. + +![save workbook as pdf screenshot](/images/save-workbook-as-pdf.png){alt="pdf olarak çalışma kitabını kaydet örneği, oluşturulan PDF dosyasını gösteriyor"} + +*Happy coding! If you ran into any snags, drop a comment below and we’ll troubleshoot together.* + +{{< /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/turkish/net/converting-excel-files-to-other-formats/_index.md b/cells/turkish/net/converting-excel-files-to-other-formats/_index.md index 984bc30d8d..d0601c1e8f 100644 --- a/cells/turkish/net/converting-excel-files-to-other-formats/_index.md +++ b/cells/turkish/net/converting-excel-files-to-other-formats/_index.md @@ -56,6 +56,8 @@ Aspose.Cells for .NET kullanarak Excel dosyalarını arşivleme amaçlı PDF/A-1 Aspose.Cells kullanarak .NET'te JSON'u CSV'ye programatik olarak nasıl dönüştüreceğinizi öğrenin. Sorunsuz veri dönüşümünü sağlamak için adım adım kılavuzumuzu izleyin. ### [Excel Dosyasını .NET'te Programatik Olarak PPTX'e Dönüştürme](./converting-excel-file-to-pptx/) Bu adım adım kılavuzla Aspose.Cells for .NET kullanarak Excel dosyasını PowerPoint sunumuna (PPTX) nasıl programatik olarak dönüştürebileceğinizi öğrenin. +### [Excel'den PowerPoint Oluşturma – Adım Adım C# Kılavuzu](./create-powerpoint-from-excel-step-by-step-c-guide/) +Aspose.Cells for .NET kullanarak Excel verilerinden PowerPoint sunumu oluşturmayı adım adım öğrenin. ### [.NET'te Çıktı HTML'de HTML CrossType'ı Programatik Olarak Belirleme](./specifying-html-crosstype-in-output-html/) Aspose.Cells for .NET'te HTML CrossType'ı nasıl belirleyeceğinizi öğrenin. Excel dosyalarını hassas bir şekilde HTML'ye dönüştürmek için adım adım öğreticimizi izleyin. ### [.NET'te Sayısal Tabloları Programatik Olarak Okuma](./reading-numbers-spreadsheet/) diff --git a/cells/turkish/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md b/cells/turkish/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md new file mode 100644 index 0000000000..b28d72abb2 --- /dev/null +++ b/cells/turkish/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md @@ -0,0 +1,254 @@ +--- +category: general +date: 2026-03-30 +description: Aspose.Cells ve Aspose.Slides kullanarak Excel'den hızlıca PowerPoint + oluşturun. Çalışma sayfasını görüntü olarak dışa aktarmayı ve sunumu C#'ta PPTX + olarak kaydetmeyi öğrenin. +draft: false +keywords: +- create powerpoint from excel +- convert excel to powerpoint +- export worksheet as image +- save presentation as pptx +- export excel chart as picture +language: tr +og_description: Aspose ile C#'ta Excel'den PowerPoint oluşturun. Çalışma sayfasını + resim olarak dışa aktarın, şekilleri düzenlenebilir tutun ve sonucu PPTX olarak + kaydedin. +og_title: Excel'den PowerPoint Oluşturma – Tam C# Öğreticisi +tags: +- Aspose +- C# +- Office Automation +title: Excel'den PowerPoint Oluşturma – Adım Adım C# Rehberi +url: /tr/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel'den PowerPoint Oluşturma – Tam C# Öğreticisi + +Hiç **Excel'den PowerPoint oluşturma** ihtiyacı duydunuz mu ama grafikleri düzenlenebilir tutacak bir kütüphane bulamadınız mı? Yalnız değilsiniz. Birçok raporlama senaryosunda bir elektronik tabloyu slayt destesine dönüştürmek isteyeceksiniz, ancak metin kutularını sonradan düzenleme yeteneğini kaybetmek istemezsiniz. Bu rehber, **Excel'i PowerPoint'e dönüştürmeyi** Aspose.Cells ve Aspose.Slides kullanarak tam olarak nasıl yapacağınızı gösterirken, **çalışma sayfasını resim olarak dışa aktarma** ve sonunda **sunumu PPTX olarak kaydetme** konularını da kapsar. + +Her satır kodu adım adım inceleyecek, *neden* her ayarın önemli olduğunu açıklayacak ve çalışma kitabınızda karmaşık grafikler varsa bunları resim olarak dışa aktarmak için ne yapmanız gerektiğini tartışacağız. Sonunda `ShapesDemo.xlsx` dosyasını alıp `Result.pptx` dosyasını üreten, çalıştırılmaya hazır bir C# konsol uygulamanız olacak – tüm metin kutuları düzenlenebilir ve net görüntülerle. + +## Gereksinimler + +- .NET 6.0 veya üzeri (API .NET Framework ile de çalışır, ancak .NET 6 en uygun sürümdür). +- **Aspose.Cells** ve **Aspose.Slides** NuGet paketleri (ücretsiz deneme lisansları test için yeterlidir). +- C# sözdizimine temel bir aşinalık – `Console.WriteLine` yazabiliyorsanız yeterli. + +Ek COM interop, sunucuda Office kurulumu veya manuel resim kopyala‑yapıştır gerekmez. Her şey programatik olarak halledilir. + +--- + +## Excel'den PowerPoint Oluşturma – Çalışma Kitabını Yükleme ve Dışa Aktarım Seçeneklerini Ayarlama + +İlk olarak Excel dosyasını açar ve Aspose.Cells'e sayfanın nasıl render edileceğini söyleriz. `ImageOrPrintOptions` nesnesi sihrin gerçekleştiği yerdir: `ExportShapes` ve `ExportEditableTextBoxes` özelliklerini etkinleştiririz, böylece tüm şekiller (grafikler dahil) slayt **içine** eklenir ve dönüşüm sonrası düzenlenebilir kalır. + +```csharp +using Aspose.Cells; +using Aspose.Slides; + +// 1️⃣ Load the Excel workbook +string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; +Workbook workbook = new Workbook(excelPath); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first sheet + +// 2️⃣ Configure image export – keep shapes editable +ImageOrPrintOptions imageOptions = new ImageOrPrintOptions +{ + OnePagePerSheet = true, // Export the whole sheet as one slide + ExportShapes = true, // Include shapes (charts, drawings) + ExportEditableTextBoxes = true // Make text boxes editable in PPTX +}; +``` + +**Bu bayraklar neden?** +- `OnePagePerSheet`, sayfanın birden fazla slayta bölünmesini engeller – tek bir tam‑boyutlu resim elde edersiniz. +- `ExportShapes`, Aspose.Cells'in grafikleri *ve* vektör şekilleri rasterleştirerek görünümlerini korumasını sağlar. +- `ExportEditableTextBoxes`, PowerPoint'te bir metin kutusuna çift tıklayıp Excel'i tekrar açmadan metni düzenleyebilmenizi sağlayan gizli sosdur. + +> **İpucu:** Sadece statik bir grafik resmi ihtiyacınız varsa, `ExportShapes = false` yapın ve daha sonra `ExportExcelChartAsPicture` metodunu kullanın (son bölüme bakın). + +--- + +## Excel'i PowerPoint'e Dönüştürme – Çalışma Sayfasından Resim Oluşturma + +Seçenekler hazır olduğunda, çalışma sayfasını bir `System.Drawing.Image` nesnesine dönüştürürüz. `WorksheetToImageConverter` ağır işi yapar, az önce tanımladığımız ayarları uygular. + +```csharp +// 3️⃣ Convert the worksheet to an image using the options above +WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); +System.Drawing.Image sheetImage = converter.ConvertToImage(0, imageOptions); +``` + +`0` argümanı ilk sayfayı gösterir (çünkü `OnePagePerSheet` sayesinde sadece bir sayfamız var). Ortaya çıkan `sheetImage`, orijinal DPI'yi korur, böylece slaytınız yüksek çözünürlüklü ekranlarda bile pikselleşmez. + +--- + +## PPTX Olarak Kaydet – Resmi Bir Slayta Ekleme + +Şimdi yeni bir PowerPoint dosyası oluşturur, bir slayt ekler ve bitmap'i üzerine bırakırız. Aspose.Slides resmi bir *picture frame* şekli olarak işler; bu şekli daha sonra yerel PowerPoint nesneleri gibi yeniden boyutlandırabilir veya taşıyabilirsiniz. + +```csharp +// 4️⃣ Create a new PowerPoint presentation +Presentation presentation = new Presentation(); +ISlide slide = presentation.Slides[0]; // The default blank slide + +// Add the Excel‑derived image as a picture frame +slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, // Simple rectangle container + 0, 0, // Top‑left corner (0,0) + sheetImage.Width, // Width of the picture + sheetImage.Height, // Height of the picture + sheetImage); // The bitmap we generated +``` + +> **Resim slayt boyutundan büyük olsaydı ne olur?** +> PowerPoint, slayt boyutlarını aşan her şeyi otomatik olarak kırpar. Hızlı bir çözüm, resmi eklemeden önce ölçeklendirmektir: + +```csharp +float scale = Math.Min(presentation.SlideSize.Size.Width / (float)sheetImage.Width, + presentation.SlideSize.Size.Height / (float)sheetImage.Height); +int newWidth = (int)(sheetImage.Width * scale); +int newHeight = (int)(sheetImage.Height * scale); +``` + +Ardından `newWidth` ve `newHeight` değerlerini `AddPictureFrame` metoduna geçirebilirsiniz. + +--- + +## Çalışma Sayfasını Resim Olarak Dışa Aktarma – PPTX Dosyasını Kaydetme + +Son olarak sunumu diske kalıcı olarak yazarız. `SaveFormat.Pptx` bayrağı modern OpenXML formatını garantiler; bu format tüm yeni PowerPoint sürümleriyle uyumludur. + +```csharp +// 5️⃣ Save the presentation as a PPTX file +string pptxPath = "YOUR_DIRECTORY/Result.pptx"; +presentation.Save(pptxPath, SaveFormat.Pptx); +``` + +`Result.pptx` dosyasını açtığınızda, Excel sayfanızla tamamen aynı görünüme sahip tek bir slayt göreceksiniz, ancak yine de herhangi bir metin kutusuna tıklayıp içeriği doğrudan PowerPoint içinde düzenleyebileceksiniz. + +--- + +## Excel Grafiğini Resim Olarak Dışa Aktarma – Raster Görüntüler Tercih Edildiğinde + +Bazen düzenlenebilir şekillere ihtiyacınız olmaz; yüksek kaliteli bir PNG grafik yeterlidir. Aspose.Cells, tüm sayfayı dönüştürmeden belirli bir grafiği resim olarak dışa aktarabilir: + +```csharp +// Example: Export the first chart on the sheet as a PNG +int chartIndex = 0; // Adjust if you have multiple charts +Chart chart = worksheet.Charts[chartIndex]; +ImageOrPrintOptions chartOptions = new ImageOrPrintOptions +{ + ImageFormat = ImageFormat.Png, + OnePagePerSheet = false +}; +chart.ToImage("chart.png", chartOptions); +``` + +Ardından `chart.png` dosyasını, `sheetImage` eklediğimiz aynı yöntemle bir slayta yerleştirebilirsiniz. Bu yaklaşım PPTX dosya boyutunu azaltır ve slaytta çevredeki verilere ihtiyaç duyulmadığında faydalıdır. + +--- + +## Yaygın Tuzaklar ve Çözüm Önerileri + +| Sorun | Neden Oluşur | Çözüm | +|-------|--------------|------| +| **Metin bulanık görünüyor** | Düşük DPI (varsayılan 96) ile dışa aktarılıyor. | Dönüştürmeden önce `imageOptions.Dpi = 300;` ayarlayın. | +| **Şekiller kayboluyor** | `ExportShapes` `false` bırakılmış. | Düzenlenebilir grafiklere ihtiyacınız varsa `ExportShapes = true` olduğundan emin olun. | +| **Slayt boyutu uyuşmazlığı** | Resim slayt boyutlarından daha büyük. | Resmi ölçeklendirin (kod parçacığına bakın) veya `presentation.SlideSize` ile slayt boyutunu değiştirin. | +| **Lisans istisnası** | Deneme sürümü uygun şekilde etkinleştirilmemiş. | `License license = new License(); license.SetLicense("Aspose.Total.lic");` kodunu `Main` içinde erken çalıştırın. | + +--- + +## Tam Çalışan Örnek (Kopyala‑Yapıştır Hazır) + +Aşağıda yeni bir konsol projesine yapıştırabileceğiniz tüm program yer alıyor. `YOUR_DIRECTORY` kısmını Excel dosyanızın bulunduğu klasörle değiştirin. + +```csharp +using System; +using Aspose.Cells; +using Aspose.Slides; +using System.Drawing; + +namespace ExcelToPowerPointDemo +{ + class Program + { + static void Main(string[] args) + { + // ----------------------------------------------------------------- + // 1️⃣ Load the Excel workbook + // ----------------------------------------------------------------- + string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; + Workbook workbook = new Workbook(excelPath); + Worksheet worksheet = workbook.Worksheets[0]; + + // ----------------------------------------------------------------- + // 2️⃣ Set up export options – keep shapes editable + // ----------------------------------------------------------------- + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + OnePagePerSheet = true, + ExportShapes = true, + ExportEditableTextBoxes = true, + Dpi = 300 // High‑resolution output + }; + + // ----------------------------------------------------------------- + // 3️⃣ Convert worksheet to an image + // ----------------------------------------------------------------- + WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); + Image sheetImage = converter.ConvertToImage(0, imageOptions); + + // ----------------------------------------------------------------- + // 4️⃣ Create PowerPoint and add the image as a slide + // ----------------------------------------------------------------- + Presentation presentation = new Presentation(); + ISlide slide = presentation.Slides[0]; + slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, + 0, 0, + sheetImage.Width, + sheetImage.Height, + sheetImage); + + // ----------------------------------------------------------------- + // 5️⃣ Save the PPTX file + // ----------------------------------------------------------------- + string pptxPath = "YOUR_DIRECTORY/Result.pptx"; + presentation.Save(pptxPath, SaveFormat.Pptx); + + Console.WriteLine("✅ PowerPoint created successfully at: " + pptxPath); + } + } +} +``` + +**Beklenen çıktı:** +Program çalıştırıldığında `✅ PowerPoint successfully created at: YOUR_DIRECTORY/Result.pptx` mesajını verir. PPTX dosyasını açtığınızda, orijinal Excel sayfasını yansıtan tek bir slayt ve düzenlenebilir metin kutuları göreceksiniz. + +--- + +## Özet ve Sonraki Adımlar + +Artık Aspose'un güçlü API'lerini kullanarak **Excel'den PowerPoint oluşturma**, **çalışma sayfasını resim olarak dışa aktarma** ve **sunumu PPTX olarak kaydetme** işlemlerini, düzenlenebilirliği koruyarak nasıl yapacağınızı biliyorsunuz. Aynı desen çoklu‑sayfa çalışma kitapları için de geçerli — sadece `workbook.Worksheets` üzerinden döngü kurup her birine yeni bir slayt ekleyin. + +**Bir sonraki keşifleriniz ne olabilir?** + +- **Toplu dönüşüm:** Bir klasördeki tüm Excel dosyalarını döngüyle işleyip her dosya için bir slayt destesi oluşturun. +- **Dinamik düzenler:** `slide.LayoutSlide` kullanarak önceden tasarlanmış PowerPoint şablonlarını uygulayın. +- **Sadece grafik dışa aktarımı:** “Excel grafiğini resim olarak dışa aktar” kod parçacığını slayt yer tutucularıyla birleştirerek daha hafif bir sunum hazırlayın. +- **Gelişmiş stil:** Aspose.Slides ile özel slayt arka planları, geçişler veya animasyonlar ekleyin. + +Denemeler yapmaktan çekinmeyin — DPI'yi değiştirin, `ShapeType.Ellipse` yerine dairesel bir picture frame kullanın ya da bir slayta birden fazla resim gömün. Programatik kontrol elinizde olduğunda sınır yoktur. + +{{< /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/turkish/net/document-properties/_index.md b/cells/turkish/net/document-properties/_index.md index 85aaad894c..05cfa4497c 100644 --- a/cells/turkish/net/document-properties/_index.md +++ b/cells/turkish/net/document-properties/_index.md @@ -35,6 +35,8 @@ Aspose.Cells for .NET kullanarak Excel'de belge özelliklerine nasıl erişeceğ Aspose.Cells for .NET'i kullanarak Excel'de belge özelliklerine nasıl erişeceğinizi adım adım kılavuzumuzla öğrenin. Elektronik tablolarınızı verimli bir şekilde yönetin. ### [.NET'te Belge Özellikleri Ekleme](./adding-document-properties/) Bu ayrıntılı adım adım kılavuzla Aspose.Cells for .NET kullanarak Excel'de belge özelliklerinin nasıl ekleneceğini öğrenin. +### [C# ile Özel Özellikli XLSB Kaydetme – Adım Adım Kılavuz](./how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/) +Aspose.Cells for .NET kullanarak C# ile özel özellikli bir XLSB dosyasını nasıl kaydedeceğinizi adım adım öğrenin. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/turkish/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md b/cells/turkish/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md new file mode 100644 index 0000000000..29ae213f0b --- /dev/null +++ b/cells/turkish/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md @@ -0,0 +1,237 @@ +--- +category: general +date: 2026-03-30 +description: C#'ta özel özellik eklerken XLSB kaydetmeyi, geri okumayı öğrenin ve + Aspose.Cells kullanarak çalışma kitabını XLSB olarak kaydetmeyi ustalaşın. Tam kod + dahil. +draft: false +keywords: +- how to save xlsb +- add custom property +- how to add property +- how to read property +- save workbook as xlsb +language: tr +og_description: C#'ta XLSB nasıl kaydedilir? Bu öğreticide özel özellik eklemeyi, + geri okumayı ve Aspose.Cells ile çalışma kitabını XLSB olarak kaydetmeyi gösteriyoruz. +og_title: C# ile XLSB'yi Özel Özelliklerle Kaydetme – Tam Kılavuz +tags: +- Aspose.Cells +- C# +- Excel Automation +title: C# ile Özel Özellikli XLSB Nasıl Kaydedilir – Adım Adım Rehber +url: /tr/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#'ta XLSB'yi Özel Özelliklerle Kaydetme – Adım Adım Kılavuz + +Bir çalışma sayfasına ek meta veriler ekleyerek **XLSB'yi nasıl kaydedeceğinizi** hiç merak ettiniz mi? Tek başınıza değilsiniz. Birçok kurumsal senaryoda, kendi anahtar/değer çiftlerinizi taşıyan ikili bir Excel dosyasına ihtiyacınız olur—örneğin bir sözleşme kimliği, bir işleme bayrağı veya bir sürüm etiketi. + +İyi haber, Aspose.Cells bunun çok kolay olmasını sağlıyor. Bu kılavuzda, özel bir özelliği nasıl ekleyeceğinizi, kalıcı hale getireceğinizi ve ardından nasıl okuyacağınızı, **çalışma kitabını XLSB olarak kaydederek** göreceksiniz. Belirsiz referanslar yok, sadece projenize hemen ekleyebileceğiniz tam, çalıştırılabilir bir örnek. + +## Öğrenecekleriniz + +- Sıfırdan oluşturulmuş yeni bir `.xlsb` dosyası. +- Bir çalışma sayfasına **özel özellik ekleme** yeteneği. +- Dosya yeniden yüklendikten sonra **özelliği nasıl okuyacağınızı** gösteren kod. +- **Çalışma kitabını XLSB olarak kaydederken** karşılaşabileceğiniz sorunlara dair ipuçları. + +> **Önkoşullar:** .NET 6+ (veya .NET Framework 4.6+), Visual Studio (veya herhangi bir C# IDE), ve NuGet üzerinden kurulu Aspose.Cells for .NET kütüphanesi. Başka bir şey gerekmez. + +--- + +## Adım 1: Projeyi Kurun ve Yeni Bir Çalışma Kitabı Oluşturun + +İlk olarak—temiz bir çalışma kitabı nesnesi elde edelim. + +```csharp +using Aspose.Cells; +using System; + +// Initialize a new workbook; this will be an in‑memory Excel file. +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0) – it’s created automatically. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Neden önemli:* `Workbook`, Aspose.Cells'teki her işlemin giriş noktasıdır. Yepyeni bir örnekle başlayarak, daha sonra özel meta verilerinizi bozabilecek gizli bir durumu önlersiniz. + +--- + +## Adım 2: Çalışma Sayfasına **Özel Özellik Ekle** + +Şimdi bu sayfada yalnızca var olacak bir anahtar/değer çifti ekleyeceğiz. + +```csharp +// Add a user‑defined property called "MyProperty" with the value "CustomValue". +worksheet.CustomProperties.Add("MyProperty", "CustomValue"); +``` + +> **Pro ipucu:** Özellik adları büyük/küçük harfe duyarlıdır. Daha sonra `"myproperty"`'yi almaya çalışırsanız `KeyNotFoundException` alırsınız. Baştan bir adlandırma kuralına (camelCase veya PascalCase) bağlı kalın. + +--- + +## Adım 3: **Çalışma Kitabını XLSB Olarak Kaydet** – Özelliği Kalıcı Hale Getirme + +Büyü, çalışma kitabını ikili XLSB formatına yazdığınızda gerçekleşir. + +```csharp +// Define the output path. Adjust the folder to something writable on your machine. +string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + +// Save the workbook; the custom property travels with the file. +workbook.Save(outputPath, SaveFormat.Xlsb); +``` + +*Aslında ne yapıyorsunuz:* `SaveFormat.Xlsb` enum'u, Aspose.Cells'e ikili bir Excel dosyası üretmesini söyler (açılması daha hızlı, diskte daha küçük). Tüm çalışma sayfası düzeyindeki özel özellikler otomatik olarak serileştirilir—ek bir adım gerekmez. + +--- + +## Adım 4: Dosyayı Yeniden Yükleyin ve **Özelliği Nasıl Okuyacağınızı** + +Özelliğin turu başarıyla geçtiğini kanıtlayalım. + +```csharp +// Load the just‑saved XLSB file back into memory. +Workbook reloadedWorkbook = new Workbook(outputPath); + +// Access the same worksheet (index 0) and fetch the property value. +string customValue = reloadedWorkbook.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); +``` + +Her şey sorunsuz çalıştıysa, `customValue` artık `"CustomValue"` değerini tutar. + +--- + +## Adım 5: Sonucu Doğrulayın – Hızlı Konsol Çıktısı + +Küçük bir mantık kontrolü geliştirme sırasında yardımcı olur. + +```csharp +Console.WriteLine($"Custom property value: {customValue}"); +``` + +Running the program should print: + +``` +Custom property value: CustomValue +``` + +Bu satırı görmek, **XLSB'yi nasıl kaydedeceğinizi**, **özel özellik eklemeyi** ve **özelliği nasıl okuyacağınızı** başarıyla öğrendiğiniz anlamına gelir—hepsi tek bir düzenli akışta. + +--- + +## Tam Çalışan Örnek (Kopyala‑Yapıştır Hazır) + +Aşağıda tüm program yer alıyor. Yeni bir Konsol Uygulamasına yapıştırın, **F5** tuşuna basın ve konsolun özellik değerini onayladığını izleyin. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // 1️⃣ Create a new workbook and get its first sheet + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // 2️⃣ Add a custom property (key/value) to the sheet + // ------------------------------------------------- + worksheet.CustomProperties.Add("MyProperty", "CustomValue"); + + // ------------------------------------------------- + // 3️⃣ Save the workbook as XLSB – the property is kept + // ------------------------------------------------- + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(outputPath, SaveFormat.Xlsb); + + // ------------------------------------------------- + // 4️⃣ Reload the saved file to demonstrate persistence + // ------------------------------------------------- + Workbook reloaded = new Workbook(outputPath); + + // ------------------------------------------------- + // 5️⃣ Retrieve the custom property's value + // ------------------------------------------------- + string customValue = reloaded.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); + + // ------------------------------------------------- + // 6️⃣ Display the retrieved value (optional) + // ------------------------------------------------- + Console.WriteLine($"Custom property value: {customValue}"); + } +} +``` + +> **Unutmayın:** `outputPath`'i yazma izniniz olan bir klasöre değiştirin. Linux/macOS kullanıyorsanız, `"/tmp/WithCustomProp.xlsb"` gibi bir yol kullanın. + +--- + +## Yaygın Sorular ve Kenar Durumları + +### Özellik zaten mevcutsa ne olur? + +`Add` metodunu mevcut bir anahtar ile çağırmak `ArgumentException` fırlatır. Emin değilseniz `ContainsKey` kullanın veya çağrıyı bir `try/catch` bloğuna alın. + +```csharp +if (!worksheet.CustomProperties.ContainsKey("MyProperty")) +{ + worksheet.CustomProperties.Add("MyProperty", "AnotherValue"); +} +``` + +### Dize olmayan değerleri depolayabilir miyim? + +Kesinlikle. `Value` özelliği herhangi bir `object` kabul eder. Sayılar, tarihler veya boolean değerler için uygun türü geçin—Aspose.Cells, geri okurken dönüşümü halleder. + +### Özellik XLSX'e dönüştürdüğümde de kalır mı? + +Evet. Özel özellikler, çalışma sayfasının XML temsiliğinin bir parçasıdır, bu yüzden XLSX, XLS ve XLSB formatları arasında kalıcıdır. + +### Birden fazla sayfaya **özellik ekleme** nasıl yapılır? + +`Worksheets` koleksiyonunu döngüyle gezerek ihtiyacınız olan her sayfaya aynı `CustomProperties.Add` çağrısını uygulayın. + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + ws.CustomProperties.Add("ExportedBy", "MyApp"); +} +``` + +### Toplu olarak **çalışma kitabını XLSB olarak kaydederken** performans ipucu + +Yüzlerce dosya üretiyorsanız, aynı `Workbook` örneğini yeniden kullanın ve her kayıttan sonra belleği boşaltmak için `Clear` çağırın. Ayrıca, yükleme sırasında formüllerin değerlendirilmesine ihtiyacınız yoksa `Workbook.Settings.CalculateFormulaOnOpen = false` olarak ayarlayın. + +--- + +## Sonuç + +Artık Aspose.Cells kullanarak C#'ta **XLSB'yi nasıl kaydedeceğinizi**, bir özel özellik ekleyip daha sonra nasıl alacağınızı biliyorsunuz. Tam çözüm—çalışma kitabını oluşturma, bir özellik ekleme, **çalışma kitabını XLSB olarak kaydetme** ile kalıcı hale getirme, yeniden yükleme ve değeri okuma—50 satırdan az kodla yapılabilir. + +Buradan aşağıdaki konuları keşfedebilirsiniz: + +- Her sayfa için birden fazla özel özellik ekleme. +- Karmaşık nesneleri JSON dizeleri aracılığıyla depolama. +- Ek güvenlik için XLSB dosyasını şifreleme. + +Bu fikirleri deneyin, ve ekibinizde Excel otomasyonu konusunda başvurulacak kişi haline gelin. Sorularınız veya zor bir senaryonuz mu var? Aşağıya bir yorum bırakın, iyi kodlamalar! + +![Özel özellik ile XLSB kaydetme](/images/how-to-save-xlsb.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/turkish/net/excel-copy-worksheet/_index.md b/cells/turkish/net/excel-copy-worksheet/_index.md index c08d6860c8..2db1858f4d 100644 --- a/cells/turkish/net/excel-copy-worksheet/_index.md +++ b/cells/turkish/net/excel-copy-worksheet/_index.md @@ -42,6 +42,7 @@ Aspose.Cells for .NET, elektronik tabloları kopyalamak da dahil olmak üzere Ex | [Excel Kopyalama Çalışma Sayfası](./excel-copy-worksheet/) | Bu kolay takip edilebilir adım adım kılavuzla .NET için Aspose.Cells kullanarak bir Excel çalışma sayfasını nasıl kopyalayacağınızı öğrenin. Excel görevlerini otomatikleştirmek isteyen .NET geliştiricileri için idealdir. | | [Excel Çalışma Kitapları Arasında Çalışma Sayfalarını Kopyalama](./excel-copy-worksheets-between-workbooks/) | Aspose.Cells for .NET kullanarak Excel çalışma kitapları arasında çalışma sayfalarını nasıl kopyalayacağınızı öğrenin. Elektronik tablo yönetiminizi kolaylaştırmak için kod örnekleri içeren adım adım bir kılavuz. | | [Excel Taşıma Çalışma Sayfası](./excel-move-worksheet/) | Aspose.Cells for .NET'i kullanarak Excel'de çalışma sayfalarını adım adım kılavuzumuzda taşımayı öğrenin. Excel programlama sanatında ustalaşın. | +| [C# ile Aspose.Cells ile Çalışma Sayfasını Kopyalama – Tam Kılavuz](./how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/) | Aspose.Cells for .NET kullanarak C# ile çalışma sayfasını nasıl kopyalayacağınızı adım adım öğrenin. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/turkish/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md b/cells/turkish/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md new file mode 100644 index 0000000000..e9ce6aa885 --- /dev/null +++ b/cells/turkish/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md @@ -0,0 +1,288 @@ +--- +category: general +date: 2026-03-30 +description: C#'ta Aspose.Cells kullanarak çalışma sayfasını kopyalama – hücre aralığını + kopyalama, sayfalar arasında sütunları kopyalama, çalışma sayfası pivot tablosunu + kopyalama ve yeni çalışma sayfası ekleme kodunu kapsayan adım adım rehber. +draft: false +keywords: +- how to copy worksheet +- copy cell range +- copy columns between sheets +- copy worksheet pivot table +- add new worksheet code +language: tr +og_description: Aspose.Cells ile C#'ta çalışma sayfasını nasıl kopyalayacağınızı öğrenin. + Bu rehber, hücre aralığını kopyalamayı, pivot tablolarını korumayı, sayfalar arasında + sütunları kopyalamayı ve yeni çalışma sayfası ekleme kodunu gösterir. +og_title: C#'ta Çalışma Sayfasını Kopyalama – Tam Aspose.Cells Öğreticisi +tags: +- Aspose.Cells +- C# +- Excel Automation +title: C#'ta Aspose.Cells ile Çalışma Sayfası Nasıl Kopyalanır – Tam Rehber +url: /tr/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C# ile Aspose.Cells Kullanarak Çalışma Sayfası Nasıl Kopyalanır – Tam Kılavuz + +Hiç **çalışma sayfası nasıl kopyalanır** sorusunu, bir pivot tablo ya da formülü kaybetmeden C# içinde merak ettiniz mi? Yalnız değilsiniz—birçok geliştirici, tüm özellikleri koruyarak bir sayfayı çoğaltmak zorunda kaldığında takılıp kalıyor. Bu öğreticide, veriyi kopyalamanın yanı sıra **çalışma sayfası pivot tablosunu kopyalama**, **hücre aralığını kopyalama** ve ihtiyacınız olacak **yeni çalışma sayfası ekleme kodu** gibi konuları kapsayan pratik, uçtan uca bir çözümü adım adım göstereceğiz. + +Kaynak çalışma kitabını yüklemekten hedef dosyayı kaydetmeye kadar her şeyi ele alacağız; böylece sayfalar arasında sütunları kopyalayabilir, nesneleri koruyabilir ve kodunuzu temiz tutabilirsiniz. Belirsiz referanslar yok, sadece projenize hemen ekleyebileceğiniz tam, çalıştırılabilir bir örnek. + +## Bu Öğreticide Neler Ele Alınacak + +- Aspose.Cells ile mevcut bir Excel dosyasını yükleme +- **yeni çalışma sayfası ekleme kodu** kullanarak hedef sayfa oluşturma +- Pivot tablo içeren bir **hücre aralığını kopyalama** tanımlama +- Grafikler, formüller ve pivot tabloların korunması için **CopyOptions** ayarlama +- **Sayfalar arasında sütunları kopyalama** işlemini satır‑satır hassasiyetle gerçekleştirme +- Sonucu kaydetme ve çalışma sayfasının doğru kopyalandığını doğrulama + +Bu rehberin sonunda, “çalışma sayfası nasıl kopyalanır” sorusuna güvenle cevap verebilecek, raporları otomatikleştirirken ya da elektronik tablo‑tabanlı bir UI oluştururken bu yöntemi kullanabileceksiniz. + +--- + +## Çalışma Sayfası Nasıl Kopyalanır – Genel Bakış + +Kodlamaya geçmeden önce yüksek‑seviye akışı özetleyelim. Bunu bir tarif gibi düşünün: + +1. **Kaynak çalışma kitabını yükle** (`Source.xlsx`). +2. **Kopya için yeni bir çalışma sayfası ekle** (`yeni çalışma sayfası ekleme kodu`). +3. **Kopyalanacak alanı tanımla** (`hücre aralığını kopyalama`). +4. **Pivot tablonun korunması için kopya seçeneklerini yapılandır** (`çalışma sayfası pivot tablosunu kopyalama`). +5. **Satır ve sütunları kopyala** (`sayfalar arasında sütunları kopyalama`). +6. **Yeni çalışma kitabını kaydet** (`Destination.xlsx`). + +Hepsi bu—altı adım, sihir yok. Her adım aşağıda kod parçacıkları ve mantığıyla birlikte açıklanmıştır. + +--- + +## Adım 1 – Kaynak Çalışma Kitabını Yükle + +İlk iş: kopyalamak istediğiniz dosyaya işaret eden bir `Workbook` örneği oluşturmanız gerekir. Bu adım kritiktir çünkü Aspose.Cells doğrudan dosya sistemiyle çalışır, Office UI ile değil. + +```csharp +using Aspose.Cells; + +// Path to the original file +string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; +string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + +// Load the workbook – this is the starting point for how to copy worksheet +Workbook workbook = new Workbook(sourcePath); +``` + +*Neden önemli:* Dosyanın yüklenmesi, her sayfa, hücre ve nesnenin bellek içinde bir temsilini oluşturur. Bu olmadan kopyalanacak bir şey yoktur ve daha sonra `yeni çalışma sayfası ekleme kodu` kullanmak başarısız olur çünkü kaynak veri mevcut değildir. + +--- + +## Adım 2 – Yeni Bir Çalışma Sayfası Ekle (yeni çalışma sayfası ekleme kodu) + +Şimdi kopyalanan veriyi yapıştıracağımız bir yere ihtiyacımız var. İşte **yeni çalışma sayfası ekleme kodu** devreye giriyor. Sayfayı istediğiniz gibi adlandırabilirsiniz; burada `"Copy"` adını verdik. + +```csharp +// Grab the first worksheet (the one we want to copy) +Worksheet sourceSheet = workbook.Worksheets[0]; + +// Add a fresh worksheet to receive the copy +Worksheet copySheet = workbook.Worksheets.Add("Copy"); +``` + +*İpucu:* Birden fazla sayfa kopyalamayı planlıyorsanız, `Worksheets.Add` çağrısını bir döngü içinde yapın ve her sayfaya benzersiz bir ad verin. Böylece ad çakışmalarını önler ve çalışma kitabınızı düzenli tutarsınız. + +--- + +## Adım 3 – Kopyalanacak Hücre Aralığını Tanımla + +Bir **hücre aralığını kopyalama**, Aspose.Cells’e hangi satır ve sütunların çoğaltılacağını tam olarak söyler. Gerçek dünyada bu aralık çoğu zaman bir pivot tablo içerir, bu yüzden kesin olmak gerekir. + +```csharp +// Define the area that contains the pivot table (A1:G20) +CellArea sourceRange = new CellArea +{ + StartRow = 0, // Row 1 (zero‑based) + StartColumn = 0, // Column A + EndRow = 19, // Row 20 + EndColumn = 6 // Column G +}; + +// Destination range – we start at the same top‑left corner +CellArea destinationRange = new CellArea +{ + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 +}; +``` + +*Neden gerekli:* Aralığı açıkça belirterek tüm sayfayı (gereksiz yere) kopyalamaktan kaçınırsınız ve pivot tablonun kopyalanan alanda yer almasını garantilersiniz. Bu, **çalışma sayfası nasıl kopyalanır** sorusunun sadece bir kısmını ihtiyaç duyduğunuzda temel yaklaşımdır. + +--- + +## Adım 4 – Kopya Seçeneklerini Ayarla (çalışma sayfası pivot tablosunu koruma) + +Aspose.Cells, neyin yapıştırılacağını kontrol eden bir `CopyOptions` nesnesi sunar. Pivot tablo, grafik ve formülleri korumak için `PasteType.All` ayarlayıp `PasteSpecial` özelliğini etkinleştiririz. + +```csharp +CopyOptions copyOptions = new CopyOptions +{ + PasteType = PasteType.All, // Copy everything: values, formats, objects + PasteSpecial = true // Enable special paste to retain pivot tables +}; +``` + +*Açıklama:* `PasteType.All` en kapsayıcı seçenektir, `PasteSpecial` ise motorun pivot tablolar gibi karmaşık nesneleri doğru şekilde işlemesini sağlar. Bu adımı atlamak yaygın bir tuzaktır; kopyalanan sayfa etkileşimli özelliklerini kaybeder. + +--- + +## Adım 5 – Satır ve Sütunları Kopyala (sayfalar arasında sütunları kopyalama) + +Şimdi asıl işi yapıyoruz: veriyi gerçekten taşıyoruz. **Sayfalar arasında sütunları kopyalama** için `CopyRows` ve `CopyColumns` kullanacağız. İkisini birlikte çalıştırmak, birleştirilmiş hücrelerin ve sütun genişliklerinin korunmasını sağlar. + +```csharp +// Copy rows from the source to the destination sheet +sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + +// Copy columns from the source to the destination sheet +sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); +``` + +*Ne oluyor:* `CopyRows` veriyi satır satır taşırken, `CopyColumns` aynı işlemi sütun bazında yapar. İkisini de çalıştırmak, farklı sütun genişliklerine ya da gizli sütunlara sahip sayfalarda tam bir dikdörtgen bloğun kopyalanmasını garantiler. + +--- + +## Adım 6 – Çalışma Kitabını Kaydet + +Son olarak değişiklikleri diske yazın. Bu adım **çalışma sayfası nasıl kopyalanır** sürecini tamamlar. + +```csharp +// Save the workbook with the newly copied sheet +workbook.Save(destinationPath); +``` + +*Doğrulama ipucu:* `Destination.xlsx` dosyasını açın ve `"Copy"` sayfasının orijinaliyle aynı göründüğünden, pivot tabloların çalıştığından ve sütun genişliklerinin eşleştiğinden emin olun. Bir şeyler eksikse, `CopyOptions` ayarlarını yeniden gözden geçirin. + +--- + +## Kenar Durumları ve Yaygın Varyasyonlar + +### Birden Çok Çalışma Sayfası Kopyalama + +Birden fazla sayfayı çoğaltmanız gerekiyorsa, yukarıdaki mantığı bir `foreach` döngüsü içine alın: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + Worksheet newWs = workbook.Worksheets.Add(ws.Name + "_Copy"); + // Re‑use sourceRange/destinationRange or calculate per sheet + // Then call CopyRows/CopyColumns as shown earlier +} +``` + +### Farklı Çalışma Kitapları Arasında Formülleri Koruma + +Kaynak ve hedef çalışma kitaplarında farklı adlandırılmış aralıklar varsa, `copyOptions`’a `PasteType.Formulas` ekleyin: + +```csharp +copyOptions.PasteType = PasteType.All | PasteType.Formulas; +``` + +### Büyük Aralıklar ve Performans + +Yüzbinlerce satır gibi devasa veri setleri için, sütun genişlikleri kritik değilse sadece `CopyRows` kullanıp `CopyColumns`’ı atlayabilirsiniz. Bu, birkaç saniyelik tasarruf sağlar. + +--- + +## Tam Çalışan Örnek + +Aşağıda, tartıştığımız her şeyi içeren, doğrudan çalıştırılabilir bir program yer alıyor. Konsol uygulamasına yapıştırın, dosya yollarını ayarlayın ve **F5** tuşuna basın. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // ---------- Step 1: Load the source workbook ---------- + string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; + string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + Workbook workbook = new Workbook(sourcePath); + + // ---------- Step 2: Add a new worksheet (add new worksheet code) ---------- + Worksheet sourceSheet = workbook.Worksheets[0]; + Worksheet copySheet = workbook.Worksheets.Add("Copy"); + + // ---------- Step 3: Define the copy cell range ---------- + CellArea sourceRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + CellArea destinationRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + + // ---------- Step 4: Set copy options (preserve copy worksheet pivot table) ---------- + CopyOptions copyOptions = new CopyOptions + { + PasteType = PasteType.All, + PasteSpecial = true + }; + + // ---------- Step 5: Copy rows and columns (copy columns between sheets) ---------- + sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + + sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); + + // ---------- Step 6: Save the workbook ---------- + workbook.Save(destinationPath); + } +} +``` + +**Beklenen sonuç:** `Destination.xlsx` dosyasını açtığınızda, **Copy** adlı bir sayfanın `Source.xlsx`’in ilk sayfasını (pivot tablolar, biçimlendirme ve sütun genişlikleri dahil) yansıttığını görürsünüz. Orijinal dosya hiç değişmez. + +--- + +## Sık Sorulan Sorular + +**S: Bu kod .xlsx dosyaları Excel 2019 ile oluşturulmuş dosyalarla çalışır mı?** +C: Kesinlikle. Aspose.Cells tüm modern Excel formatlarını destekler; aynı kod `.xlsx`, `.xlsm` ve hatta eski `.xls` dosyaları için de geçerlidir. + +{{< /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/turkish/net/excel-custom-number-date-formatting/_index.md b/cells/turkish/net/excel-custom-number-date-formatting/_index.md index 8bca470e49..878f72f7f6 100644 --- a/cells/turkish/net/excel-custom-number-date-formatting/_index.md +++ b/cells/turkish/net/excel-custom-number-date-formatting/_index.md @@ -36,6 +36,10 @@ Bu eğitim, formül alanlarının bütünlüğünü koruyarak veri kümelerinizi Bu adım adım eğitimle Aspose.Cells for .NET'i kullanarak Excel hücre değerlerinin özel sayı biçimlerine göre nasıl kontrol edileceğini öğrenin. ### [Excel Sayfasına Veri Aktarırken Formül Alanlarını Belirleyin](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) Bu detaylı eğitimde, Aspose.Cells for .NET kullanarak belirtilen formül alanlarına sahip Excel sayfalarına veri aktarmayı öğrenin. +### [C#'da Ayırıcıyla Sayı Biçimlendirme – Tam Aspose.Cells Kılavuzu](./format-number-with-separator-in-c-complete-aspose-cells-guid/) +Bu kapsamlı rehberde, C# kullanarak sayıları ayırıcılarla biçimlendirmeyi ve Aspose.Cells'in tüm özelliklerini öğrenin. +### [Excel'den ISO Tarih Biçimlendirme – Tam C# Kılavuzu](./format-date-iso-from-excel-complete-c-guide/) +Bu kapsamlı rehberde, C# kullanarak Excel'den ISO tarih formatına dönüştürmeyi öğrenin. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/turkish/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md b/cells/turkish/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..d5f640fc40 --- /dev/null +++ b/cells/turkish/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md @@ -0,0 +1,219 @@ +--- +category: general +date: 2026-03-30 +description: Aspose.Cells kullanarak C#'ta Excel tarih‑saat değerlerini okurken tarihleri + ISO formatına nasıl dönüştüreceğinizi ve Excel tarih‑saat verilerini nasıl çıkaracağınızı + öğrenin. +draft: false +keywords: +- format date iso +- read excel datetime +- extract datetime excel +- Aspose.Cells date parsing +- Japanese era dates +language: tr +og_description: Aspose.Cells kullanarak Excel verilerinden ISO tarih formatı. Bu kılavuz, + Excel tarih‑zamanını nasıl okuyacağınızı, tarih‑zaman Excel değerlerini nasıl çıkaracağınızı + ve ISO tarihlerini nasıl çıktıya alacağınızı gösterir. +og_title: Excel'den ISO tarih biçimi – Adım Adım C# Öğreticisi +tags: +- C# +- Excel +- DateTime +- Aspose.Cells +title: Excel'den ISO tarih biçimlendirme – Tam C# Rehberi +url: /tr/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel'den ISO tarih formatı – Tam C# Kılavuzu + +Excel sayfasından tarihleri çekerken **format date iso** yapmanız gerektiğini hiç düşündünüz mü? Belki Japon dönemi tarihleriyle uğraşıyorsunuz ya da bir API yükü için temiz bir `yyyy‑MM‑dd` dizesi istiyorsunuz. Bu öğreticide **read Excel datetime** hücrelerini, **extract datetime Excel** değerlerini nasıl okuyacağınızı ve ISO‑8601 formatına nasıl dönüştüreceğinizi adım adım göreceksiniz—tahmin yürütmeye gerek yok. + +Aspose.Cells kullanan gerçek bir örnek üzerinden ilerleyeceğiz, her satırın neden önemli olduğunu açıklayacağız ve projenize kopyalayıp yapıştırabileceğiniz son çıktıyı göstereceğiz. Sonuna geldiğinizde “令和3年5月1日” gibi garip dönem dizelerini işleyebilecek ve veritabanları, JSON veya ihtiyacınız olan herhangi bir yerde kullanabileceğiniz standart bir ISO tarih üretebileceksiniz. + +## Önkoşullar + +- .NET 6.0 veya üzeri (kod .NET Framework ile de çalışır) +- Aspose.Cells for .NET (ücretsiz deneme veya lisanslı sürüm) +- C# ve Excel kavramlarına temel aşinalık +- Visual Studio veya tercih ettiğiniz herhangi bir C# editörü + +Aspose.Cells dışındaki ek NuGet paketlerine gerek yoktur, bu yüzden kurulum oldukça basittir. + +--- + +## Adım 1: Bir Workbook Oluşturun ve İlk Çalışma Sayfasını Hedefleyin + +İlk olarak yeni bir `Workbook` nesnesi oluşturursunuz. Bu, bir Excel dosyasının bellek içi temsilini sağlar; ardından bu nesneyi manipüle edebilir veya okuyabilirsiniz. + +```csharp +using Aspose.Cells; +using System.Globalization; + +// Step 1: Initialize a new workbook and grab the first worksheet +Workbook workbook = new Workbook(); // creates an empty .xlsx +Worksheet worksheet = workbook.Worksheets[0]; // the default sheet is "Sheet1" +``` + +*Neden önemli:* +Workbook'u programlı olarak oluşturmak, test sırasında fiziksel dosyalarla uğraşmanızı engeller. Ayrıca çalışma sayfası referansının her zaman geçerli olmasını sağlar—daha sonra **read Excel datetime** değerlerini okumaya çalıştığınızda null‑reference sürprizleri yaşamazsınız. + +--- + +## Adım 2: Bir Hücreye Japon Dönemi Tarih Dizesi Yazın + +Amacımız Gregoryen olmayan bir tarihi ayrıştırmayı göstermek. Dönem dizesini doğrudan **A1** hücresine yerleştireceğiz. + +```csharp +// Step 2: Insert a Japanese era date string into cell A1 +worksheet.Cells["A1"].PutValue("令和3年5月1日"); +``` + +*İpucu:* Mevcut bir workbook'tan veri çekiyorsanız, `PutValue` çağrısını atlayıp zaten tarihi içeren hücreye başvurursunuz. Önemli olan, hücrenin Japon lunisolar takvimindeki bir tarihi temsil eden bir **string** tutmasıdır. + +--- + +## Adım 3: Japon Lunisolar Takvimini Anlayan Bir Kültür Yapılandırın + +.NET'in `CultureInfo` sınıfı, tarihlerin nasıl yorumlanacağını belirlemenizi sağlar. Varsayılan Gregoryen takvimi `JapaneseLunisolarCalendar` ile değiştirerek ayrıştırıcıya ihtiyaç duyduğu bağlamı sağlarsınız. + +```csharp +// Step 3: Set up a culture using the Japanese lunisolar calendar +CultureInfo japaneseCulture = new CultureInfo("ja-JP"); +japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); +``` + +*Neden bunu yapıyoruz:* +Varsayılan kültürle “令和3年5月1日” ayrıştırmaya çalışırsanız, .NET bir `FormatException` fırlatır. Lunisolar takvimi kullanmak, çalışma zamanına “令和3年” (Reiwa döneminin 3. yılı) nasıl Gregorian yıl 2021'e eşleneceğini tam olarak söyler. + +--- + +## Adım 4: Hücre Değerini Yapılandırılmış Kültür Kullanarak `DateTime` Olarak Ayrıştırın + +Şimdi işlemin kalbine geliyoruz—bu dönem dizesini uygun bir `DateTime` nesnesine dönüştürmek. Aspose.Cells, bir `CultureInfo` kabul eden kullanışlı bir `GetDateTime` aşırı yüklemesi sunar. + +```csharp +// Step 4: Retrieve the cell value as a DateTime, respecting the Japanese culture +DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); +``` + +*Arka planda neler oluyor:* +`GetDateTime` ham dizeyi okur, sağlanan kültürün takvim kurallarını uygular ve aynı anı Gregorian takviminde temsil eden bir `DateTime` döndürür. İşte bu an, **extract datetime Excel** verilerini .NET içinde çalışabileceğiniz bir biçimde elde ettiğiniz zamandır. + +--- + +## Adım 5: Ayrıştırılan Tarihi ISO 8601 Formatında Çıktılayın + +Son olarak, `DateTime`'ı bir ISO dizesi olarak biçimlendiriyoruz—`yyyy‑MM‑dd`—ki bu, API'ler, veritabanları ve ön‑uç çerçeveler tarafından evrensel olarak kabul edilir. + +```csharp +// Step 5: Print the date in ISO format (e.g., 2021-05-01) +Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // Output: 2021-05-01 +``` + +*Neden ISO?* +ISO 8601 belirsizliği ortadan kaldırır. “05/01/2021” yerel ayara bağlı olarak 1 Mayıs ya da 5 Ocak olabilir. `2021-05-01` ise tamamen açıktır; bu yüzden neredeyse her entegrasyon senaryosunda **format date iso** yaparız. + +--- + +## Tam Çalışan Örnek + +Aşağıda eksiksiz, çalıştırmaya hazır program bulunmaktadır. Bir console uygulaması projesine kopyalayın, Aspose.Cells referansını ekleyin ve **F5** tuşuna basın. + +```csharp +using Aspose.Cells; +using System; +using System.Globalization; + +class Program +{ + static void Main() + { + // 1️⃣ Create workbook and select the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("令和3年5月1日"); + + // 3️⃣ Set up Japanese lunisolar culture + CultureInfo japaneseCulture = new CultureInfo("ja-JP"); + japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); + + // 4️⃣ Parse the cell value as DateTime using the culture + DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); + + // 5️⃣ Output the date in ISO format + Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // 2021-05-01 + } +} +``` + +**Beklenen çıktı** + +``` +2021-05-01 +``` + +Bir kez çalıştırın, ISO‑formatlı tarihin konsola yazdırıldığını göreceksiniz. Bu, **read Excel datetime**'dan **format date iso**'ya kadar olan tüm işlem hattıdır. + +--- + +## Yaygın Kenar Durumlarını Ele Alma + +### 1. Gerçek Excel Tarih Sayılarını İçeren Hücreler + +Bazen Excel tarihleri seri sayı olarak saklar (ör. `44204`). Bu durumda bir kültüre ihtiyacınız yoktur; sadece parametresiz `GetDateTime()` çağırın: + +```csharp +DateTime serialDate = worksheet.Cells["B2"].GetDateTime(); // B2 holds a numeric date +Console.WriteLine(serialDate.ToString("yyyy-MM-dd")); +``` + +### 2. Boş veya Geçersiz Hücreler + +Bir hücre boşsa veya ayrıştırılamayan bir dize içeriyorsa, `GetDateTime` bir istisna fırlatır. Çağrıyı bir `try/catch` bloğuna sarın veya önce `IsDateTime` kontrol edin: + +```csharp +if (worksheet.Cells["C3"].Type == CellValueType.IsDateTime) +{ + DateTime safeDate = worksheet.Cells["C3"].GetDateTime(); + Console.WriteLine(safeDate.ToString("yyyy-MM-dd")); +} +else +{ + Console.WriteLine("Cell C3 does not contain a valid date."); +} +``` + +### 3. Farklı Dönem Biçimleri + +Diğer Japon dönemleri (Heisei, Showa) aynı deseni izler. Aynı `JapaneseLunisolarCalendar` bunları otomatik olarak işler, bu yüzden ekstra mantığa gerek yoktur—sadece dizeyi besleyin. + +--- + +## Profesyonel İpuçları ve Dikkat Edilmesi Gerekenler + +- **Performance:** Büyük elektronik tabloları işlerken, bir döngü içinde yeni bir tane oluşturmak yerine tek bir `CultureInfo` örneğini yeniden kullanın. +- **Thread Safety:** `CultureInfo` nesneleri takvimi ayarladıktan sonra yalnızca‑okunur hâle gelir, bu yüzden çoklu iş parçacıkları arasında güvenle paylaşılabilir. +- **Aspose.Cells Licensing:** Ücretsiz deneme sürümünü kullanıyorsanız, deneme süresi dolduktan sonra bazı özelliklerin sınırlı olabileceğini unutmayın. Burada gösterilen tarih ayrıştırması hem deneme hem de lisanslı modda sorunsuz çalışır. +- **Time Zones:** Aldığınız `DateTime` **unspecified** (zaman dilimi belirtilmemiş) tipindedir. UTC'ye ihtiyacınız varsa, `DateTime.SpecifyKind(parsedDate, DateTimeKind.Utc)` çağırın veya `TimeZoneInfo` ile dönüştürün. + +--- + +## Sonuç + +Excel çalışma kitabından C# kullanarak **format date iso** yapmanız için gereken her şeyi ele aldık. Ham bir Japon dönemi dizesiyle başlayıp **read Excel datetime**, uygun kültürü ayarladık, **extract datetime excel** verilerini elde ettik ve sonunda temiz bir ISO‑8601 dizesi ürettik. Bu yaklaşım, Excel'in size sunabileceği herhangi bir tarih temsili—seri sayı, yerel‑özel dize ya da geleneksel bir dönem formatı—için çalışır. + +Sonraki adımlar? Tüm bir tarih sütununu döngüye almayı, ISO sonuçlarını yeni bir sayfaya yazmayı ya da doğrudan bir web servisi için JSON yüküne eklemeyi deneyin. Diğer takvim sistemleri (İbrani, İslami) hakkında meraklıysanız, Aspose.Cells ve .NET'in `CultureInfo` bu deneyleri aynı kolaylıkla yapmanızı sağlar. + +Sorularınız veya çözemediğiniz zor bir tarih formatı mı var? Aşağıya bir yorum bırakın, iyi kodlamalar! + +{{< /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/turkish/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md b/cells/turkish/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md new file mode 100644 index 0000000000..5a6bc18c55 --- /dev/null +++ b/cells/turkish/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md @@ -0,0 +1,235 @@ +--- +category: general +date: 2026-03-30 +description: Aspose.Cells kullanarak C#'de sayı formatlamayı ayırıcı ile nasıl yapacağınızı + öğrenin. Özel sayı formatı ayarlama, binlik ayırıcı ekleme, ondalık basamakları + biçimlendirme ve hücreyi nasıl biçimlendireceğinizi içerir. +draft: false +keywords: +- format number with separator +- set custom number format +- add thousands separator +- format decimal places +- how to format cell +language: tr +og_description: C#'da sayıyı ayırıcıyla biçimlendirin. Bu rehber, özel sayı biçimi + ayarlamayı, binlik ayırıcı eklemeyi, ondalık basamakları biçimlendirmeyi ve Aspose.Cells + kullanarak hücreyi nasıl biçimlendireceğinizi gösterir. +og_title: C#'da Ayırıcı ile Sayı Formatlama – Aspose.Cells Öğreticisi +tags: +- C# +- Aspose.Cells +- Number Formatting +title: C#'da Ayırıcı ile Sayı Formatlama – Tam Aspose.Cells Rehberi +url: /tr/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#'ta Sayıyı Ayırıcıyla Biçimlendirme – Tam Aspose.Cells Rehberi + +Hiç bir elektronik tabloda **format number with separator** yapmanız gerekti ama hangi API çağrısını kullanacağınızdan emin değildiniz mi? Tek başınıza değilsiniz—geliştiriciler veri dışa aktarırken binlik ayırıcılar, ondalık basamaklar ve özel desenlerle sürekli mücadele ediyor. + +İyi haber: Aspose.Cells bunu çocuk oyuncağı haline getiriyor. Bu öğreticide, **sets a custom number format**, **adds a thousands separator**, **formats decimal places**, ve **how to format cell** çıktısını bir dize olarak gösteren gerçek bir örnek üzerinden ilerleyeceğiz. Sonunda, herhangi bir .NET projesine ekleyebileceğiniz çalıştırmaya hazır bir kod parçacığına sahip olacaksınız. + +## Bu Rehberde Neler Kapsanıyor + +* İhtiyacınız olan tam NuGet paketini ve nasıl kuracağınızı. +* Çalışma kitabı oluşturan, sayısal bir değer yazan ve özel bir format uygulayan adım adım kod. +* `ExportTableOptions.ExportAsString`'in biçimlendirilmiş bir değeri almanın tercih edilen yolu olmasının nedeni. +* Yaygın tuzaklar—örneğin `ExportAsString`'i etkinleştirmeyi unutmak veya yanlış format maskesi kullanmak. +* Farklı bir ondalık basamak sayısı veya farklı bir ayırıcı stili ihtiyacınız varsa format maskesini nasıl ayarlayacağınızı. + +Harici dokümantasyon bağlantılarına gerek yok; ihtiyacınız olan her şey burada. Hadi başlayalım. + +--- + +## Ön Koşullar + +| Gereksinim | Sebep | +|-------------|--------| +| .NET 6.0 or later | Aspose.Cells 23.10+ .NET Standard 2.0+ hedeflediği için .NET 6 güvenli ve güncel bir sürümdür. | +| Visual Studio 2022 (or any C# IDE) | Hata ayıklamayı ve paket yönetimini sorunsuz hale getirir. | +| Aspose.Cells for .NET NuGet package | Kullanacağımız `Workbook`, `Worksheet` ve `ExportTableOptions` sınıflarını sağlar. | + +Paketi Package Manager Console üzerinden şu şekilde kurabilirsiniz: + +```powershell +Install-Package Aspose.Cells +``` + +Hepsi bu—ekstra DLL yok, COM interop yok, sadece tek bir NuGet referansı. + +## Adım 1: Yeni Bir Workbook Başlatma (How to Format Cell) + +İlk olarak, yeni bir `Workbook` örneği oluşturuyoruz. Bunu, veri almaya hazır boş bir Excel dosyası olarak düşünebilirsiniz. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Create a new workbook – this is where we’ll format the cell. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Neden önemli:** `Workbook`, Aspose.Cells'teki her işlemin giriş noktasıdır. İlk çalışma sayfasını (`Worksheets[0]`) alarak, bir sayfa adı vermeye gerek kalmadan temiz bir tuval elde ederiz. + +## Adım 2: Hedef Hücreye Sayısal Bir Değer Yazma + +Sonra, **A1** hücresine ham bir sayı koyuyoruz. Değer henüz biçimlendirilmemiştir—sadece bir double. + +```csharp + // Step 2: Insert a raw numeric value. + worksheet.Cells["A1"].PutValue(12345.6789); +``` + +> **Pro ipucu:** Daha sonra sayısal biçimlendirme uygulamayı planlıyorsanız `PutString` yerine `PutValue` kullanın. Bu, temel veri tipini korur ve Excel uyumlu hesaplamalara izin verir. + +## Adım 3: Özel Sayı Formatı Ayarlama (Binlik Ayırıcı Ekleme ve Ondalık Basamakları Biçimlendirme) + +Şimdi öğreticinin kalbine geliyoruz: Aspose.Cells'in sayıyı nasıl göstereceğini belirten bir format maskesi tanımlama. `#,##0.00` maskesi üç şey yapar: + +1. **`#,##0`** – binlik ayırıcı ekler (varsayılan olarak virgül). +2. **`.00`** – tam iki ondalık basamak zorunlu kılar. + +Farklı bir ondalık sayısı ihtiyacınız varsa, ondalık noktasından sonraki `0` sayısını değiştirmeniz yeterlidir. + +```csharp + // Step 3: Configure the custom number format. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, // Return the value as a formatted string. + NumberFormat = "#,##0.00" // Add thousands separator and fix to 2 decimals. + }; +``` + +> **Neden `ExportAsString` kullanıyoruz**: Varsayılan olarak, `ExportString` ham değeri döndürür. `ExportAsString = true` ayarı, API'nin metne dönüştürmeden önce `NumberFormat` maskesini uygulamasını zorlar. Bu, raporlar, JSON yükleri veya UI gösterimi için tam dize temsiline ihtiyaç duyduğunuzda gereklidir. + +## Adım 4: Biçimlendirilmiş Metni Dışa Aktarma (How to Format Cell) + +Seçenekler hazır olduğunda, aynı hücrede `ExportString` metodunu çağırıyoruz. Metot, az önce tanımladığımız maskeyi dikkate alır ve güzel biçimlendirilmiş bir dize döndürür. + +```csharp + // Step 4: Export the formatted value. + string formattedCellText = worksheet.Cells["A1"].ExportString(exportOptions); + + // Step 5: Show the result. + Console.WriteLine(formattedCellText); // Expected output: 12,345.68 + } +} +``` + +Programı çalıştırdığınızda konsola **`12,345.68`** yazdırır—tam olarak istediğimiz format. + +> **Köşe durumu:** Kaynak sayı iki ondalıktan fazla basamak içeriyorsa, maske onu yuvarlar. Yuvarlama yerine kesme (truncation) istiyorsanız, `PutValue`'yi çağırmadan önce değeri `Math.Truncate` ile ön işlemden geçirmeniz gerekir. + +## Adım 5: Formatı Ayarlama – Yaygın Varyasyonlar + +### 5.1 Ondalık Hassasiyeti Değiştirme + +Üç ondalık basamak ister misiniz? Sadece maskeyi değiştirin: + +```csharp +NumberFormat = "#,##0.000" // → 12,345.679 +``` + +### 5.2 Farklı Bir Binlik Ayırıcı Kullanma + +Bazı yerel ayarlar boşluk veya nokta tercih eder. Karakteri doğrudan yerleştirebilirsiniz: + +```csharp +NumberFormat = "# ##0.00" // Uses a non‑breaking space as separator. +``` + +Ya da çalışma kitabının kültür ayarlarına güvenebilirsiniz: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("de-DE"); +NumberFormat = "#.##0,00"; // German style: 12.345,68 +``` + +### 5.3 Önek veya Sonek (Para Birimi, Yüzde) + +Maskeye doğrudan bir dolar işareti veya yüzde işareti ekleyin: + +```csharp +NumberFormat = "$#,##0.00"; // → $12,345.68 +NumberFormat = "0.00%"; // → 1,234,568.00% +``` + +> **Not:** Maske büyük/küçük harfe duyarlıdır. `$` ve `%` literal sembollerdir; temel sayısal değeri etkilemezler. + +## Adım 6: Tam Çalışan Örnek (Kopyala‑Yapıştır Hazır) + +Aşağıda, yeni bir konsol uygulamasına kopyalayabileceğiniz tam program yer alıyor. Tüm adımları, yorumları ve son çıktı doğrulamasını içerir. + +```csharp +using System; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write raw numeric value to A1. + worksheet.Cells["A1"].PutValue(12345.6789); + + // 3️⃣ Define custom format: thousands separator + two decimals. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + NumberFormat = "#,##0.00" + }; + + // 4️⃣ Export the formatted string. + string result = worksheet.Cells["A1"].ExportString(exportOptions); + + // 5️⃣ Display the outcome. + Console.WriteLine(result); // Output: 12,345.68 + + // Optional: keep console open. + Console.WriteLine("Press any key to exit..."); + Console.ReadKey(); + } +} +``` + +Programı çalıştırın (`dotnet run` terminalden veya Visual Studio'da F5 tuşuna basarak) ve biçimlendirilmiş sayının tam olarak gösterildiği gibi yazdırıldığını göreceksiniz. + +## Sıkça Sorulan Sorular (SSS) + +**S: Bu, eski Excel sürümleriyle çalışır mı?** +C: Evet. Format maskesi Excel'in yerel sayı‑formatı sözdizimini izler, bu yüzden `#,##0.00`'ı anlayan herhangi bir sürüm aynı dizeyi üretir. + +**S: Hücre aralığını biçimlendirmem gerekirse?** +C: İstenen aralık üzerinde döngü yaparak aynı `ExportTableOptions`'ı her hücreye uygulayabilir ya da aralığın `Style.Custom` özelliğini ayarlayıp ardından tek bir hücrede `ExportString` çağırabilirsiniz. + +**S: Bu formatları uygulayarak doğrudan CSV'ye dışa aktarabilir miyim?** +C: Kesinlikle. Her hücreye formatı uyguladıktan sonra `Workbook.Save("output.csv", SaveFormat.CSV);` kullanın. Aspose.Cells, CSV oluştururken hücrenin `Style`'ını dikkate alır. + +## Sonuç + +Aspose.Cells kullanarak C#'ta **format number with separator** nasıl yapılacağını gösterdik; **set custom number format**, **add thousands separator**, **format decimal places** ve dize dışa aktarımı için temel **how to format cell** konularını kapsadık. Kod tamamen bağımsızdır, .NET 6+ ile çalışır ve herhangi bir yerel ayar ya da hassasiyet gereksinimi için uyarlanabilir. + +Sonra şu konuları keşfedebilirsiniz: + +* Aynı tekniği tarih ve zamanlara uygulama (`NumberFormat = "dd‑MMM‑yyyy"`). +* Her sütunun farklı bir maske gerektirdiği toplu dışa aktarmaları otomatikleştirme. +* Biçimlendirilmiş dizeleri Aspose.Words ile PDF raporlarına entegre etme. + +Bunları deneyin, ve ekibinizde elektronik tablo biçimlendirme konusunda başvurulacak kişi haline geleceksiniz. Kodlamanın tadını çıkarın! (Image: ![Screenshot showing formatted number with separator in Aspose.Cells](image-placeholder.png){alt="Aspose.Cells çıktısında ayırıcıyla biçimlendirilmiş sayının görüntüsü"} ) + +{{< /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/turkish/net/excel-data-import-export/_index.md b/cells/turkish/net/excel-data-import-export/_index.md index e90a8ab306..424bbfd827 100644 --- a/cells/turkish/net/excel-data-import-export/_index.md +++ b/cells/turkish/net/excel-data-import-export/_index.md @@ -32,6 +32,10 @@ Sırada başka bir yaygın zorluk var: İlk satırınızı bozmadan Excel'e Data Bu kolay takip edilebilir eğitimde, Aspose.Cells for .NET kullanarak özel DB Num biçimlendirmesiyle verileri Excel'e nasıl aktaracağınızı öğrenin. ### [Excel'de DataTable Satırları Eklendiğinde İlk Satırı Aşağı Kaydır](./shift-first-row-down-when-inserting-cells-datatable-rows-in-excel/) Aspose.Cells for .NET kullanarak ilk satırı aşağı kaydırmadan Excel'de DataTable satırları eklemeyi öğrenin. Zahmetsiz otomasyon için adım adım kılavuz. +### [C# ile Excel Çalışma Kitabı Oluştur – JSON Ekle ve XLSX Olarak Kaydet](./create-excel-workbook-c-insert-json-and-save-as-xlsx/) +Aspose.Cells for .NET kullanarak C# ile bir Excel çalışma kitabı oluşturun, JSON verisini ekleyin ve XLSX dosyası olarak kaydedin. +### [C# ile Excel Çalışma Kitabı Oluştur – Para Birimi Biçimi Uygula ve DataTable İçe Aktar](./create-excel-workbook-c-apply-currency-format-and-import-dat/) +Aspose.Cells for .NET kullanarak C# ile bir Excel çalışma kitabı oluşturun, para birimi biçimi uygulayın ve DataTable'ı içe aktarın. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/turkish/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md b/cells/turkish/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md new file mode 100644 index 0000000000..cc35deb518 --- /dev/null +++ b/cells/turkish/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md @@ -0,0 +1,286 @@ +--- +category: general +date: 2026-03-30 +description: C# ile para birimi biçimlendirmeli bir Excel çalışma kitabı oluşturun. + Bir DataTable'ı nasıl içe aktaracağınızı, Excel'de sayı biçimi eklemeyi ve dakikalar + içinde para birimi biçimlendirmeli bir sütun uygulamayı öğrenin. +draft: false +keywords: +- create excel workbook c# +- format cells currency +- import datatable to excel +- add number format excel +- apply currency format column +language: tr +og_description: C# ile Excel çalışma kitabı oluşturun ve hücreleri anında para birimi + olarak biçimlendirin. Bu adım adım öğretici, bir DataTable'ı Excel'e nasıl içe aktaracağınızı + ve bir sütun için sayı biçimini nasıl ekleyeceğinizi gösterir. +og_title: Excel Çalışma Kitabı Oluşturma C# – Para Birimi Biçimlendirme Rehberi +tags: +- Aspose.Cells +- C# +- Excel automation +title: Excel Çalışma Kitabı Oluştur C# – Para Birimi Formatı Uygula ve DataTable'ı + İçe Aktar +url: /tr/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel Çalışma Kitabı Oluştur C# – Para Birimi Biçimi Uygula ve DataTable İçe Aktar + +Hiç **create Excel workbook C#** gibi zaten cilalı bir rapor gibi görünen bir dosya oluşturmanız gerekti mi? Belki bir veritabanından satış rakamlarını çekiyorsunuz ve fiyat sütununu dolar olarak göstermek istiyorsunuz, Excel’i manuel olarak ayarlamadan. Tanıdık geliyor mu? Yalnız değilsiniz—çoğu geliştirici, Excel dışa aktarmalarını otomatikleştirirken bu sorunu ilk kez yaşar. + +Bu rehberde, **Excel çalışma kitabı C#** oluşturan, bir `DataTable` içe aktaran ve **Fiyat sütununu para birimi olarak biçimlendiren** eksiksiz, çalıştırılabilir bir çözümü adım adım inceleyeceğiz. Sonunda `StyledTable.xlsx` adlı bir dosyanız olacak; bunu açtığınızda güzel biçimlendirilmiş sayılar göreceksiniz. Ek bir post‑işleme gerek yok. + +> **Öğrenecekleriniz** +> - .NET projesinde Aspose.Cells nasıl kurulur +> - **datatable to excel** nasıl içe aktarılır ve stil dizisiyle birlikte kullanılır +> - Belirli bir sütun için **add number format excel** nasıl eklenir +> - Daha fazla sütun veya farklı yerel ayarlar için ipuçları + +> **Önkoşullar** +> - .NET 6+ (veya .NET Framework 4.6+) yüklü +> - Aspose.Cells for .NET NuGet paketi (`Install-Package Aspose.Cells`) +> - C# ve DataTable’lar hakkında temel bilgi + +--- + +## Adım 1: DataTable’ı Hazırlayın (import datatable to excel) + +İlk olarak örnek veri oluşturalım. Gerçek bir uygulamada bu tabloyu bir DB sorgusundan doldurursunuz, ancak sabit kodlu bir örnek işleri basitleştirir. + +```csharp +using System.Data; + +// Create a DataTable with two columns: Product (string) and Price (double) +DataTable dataTable = new DataTable(); +dataTable.Columns.Add("Product", typeof(string)); +dataTable.Columns.Add("Price", typeof(double)); + +// Add a few rows – you can add as many as you like +dataTable.Rows.Add("Apple", 1.23); +dataTable.Rows.Add("Banana", 0.78); +dataTable.Rows.Add("Cherry", 2.50); +``` + +*Neden önemli*: `DataTable`, iş verileriniz ile Excel dosyası arasındaki köprüdür. Aspose.Cells, sütun adlarını ve veri tiplerini koruyarak doğrudan içe aktarabilir. + +--- + +## Adım 2: Yeni Bir Workbook Oluşturun (create excel workbook c#) + +Şimdi gerçek Excel dosyası nesnesini oluşturuyoruz. Bunu, üzerine çizeceğiniz boş bir kanvas olarak düşünün. + +```csharp +using Aspose.Cells; + +// Instantiate a fresh workbook – this is the core of create excel workbook c# +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0). You could also add more sheets later. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Pro ipucu:** Birden fazla sayfa (sheet) eklemeniz gerekiyorsa `workbook.Worksheets.Add()` çağırın ve her birine anlamlı bir ad verin. + +--- + +## Adım 3: Para Birimi Stili Tanımlayın (format cells currency) + +Aspose.Cells, hücrelerin nasıl görüneceğini tanımlayan bir `Style` nesnesi oluşturmanıza izin verir. Para birimi için yerleşik sayı biçimi kimliği 164 (`"$#,##0.00"`) kullanılır. + +```csharp +// Create a new style object for the price column +Style priceStyle = workbook.CreateStyle(); +priceStyle.Number = 164; // Built‑in currency format "$#,##0.00" +``` + +*Niçin sadece biçim dizesi ayarlamıyoruz?* Yerleşik kimliği kullanmak, Excel sürümleri arasında uyumluluğu garantiler ve yerel ayar kaynaklı tuhaflıkları önler. + +--- + +## Adım 4: Stil Dizisini Oluşturun (apply currency format column) + +Bir `DataTable` içe aktarırken, sütun başına bir `Style` nesnesi içeren bir dizi geçebilirsiniz—her sütun için bir tane. `null` değeri “varsayılan stili kullan” anlamına gelir. Burada sadece ikinci sütuna `priceStyle` uyguluyoruz. + +```csharp +// Column 0 (Product) gets the default style, Column 1 (Price) gets the currency style +Style[] columnStyles = { null, priceStyle }; +``` + +Daha sonra daha fazla sütun eklerseniz, diziyi buna göre genişletmeniz yeterli. `columnStyles` uzunluğu, içe aktaracağınız sütun sayısıyla aynı olmalıdır; aksi takdirde Aspose bir istisna fırlatır. + +--- + +## Adım 5: DataTable’ı Stillerle İçe Aktarın (import datatable to excel) + +Şimdi sihir gerçekleşiyor—`DataTable` çalışma sayfasına yerleşiyor ve fiyat sütunu anında para birimi olarak gösteriliyor. + +```csharp +// Parameters: +// - dataTable: source data +// - true: include column headers +// - startRow: 0 (top of sheet) +// - startColumn: 0 (first column) +// - columnStyles: style array defined above +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +*Daha iki sütundan fazla varsa ne olur?* `columnStyles` dizisini genişletin; her sütun için uygun stili (veya varsayılan için `null`) atayın. Bu, **add number format excel** işlemini seçici olarak yapmanın en temiz yoludur. + +--- + +## Adım 6: Workbook’u Kaydedin (create excel workbook c#) + +Son olarak dosyayı diske yazıyoruz. Yazma izniniz olan herhangi bir klasörü seçin. + +```csharp +// Save the workbook as an XLSX file +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +`StyledTable.xlsx` dosyasını Excel’de açtığınızda şu tabloyu görmelisiniz: + +| Product | Price | +|---------|-------| +| Apple | $1.23 | +| Banana | $0.78 | +| Cherry | $2.50 | + +**Price** sütunu zaten para birimi olarak biçimlendirilmiş—ek bir adım gerekmez. + +--- + +## Kenar Durumları ve Varyasyonlar + +### Daha Fazla Sütun, Farklı Biçimler + +Birden fazla sütun için **format cells currency** uygulamanız gerekiyorsa (ör. Cost, Tax, Total), her biri için ayrı bir `Style` oluşturun ve `columnStyles` dizisini ona göre doldurun: + +```csharp +Style costStyle = workbook.CreateStyle(); +costStyle.Number = 164; // currency + +Style taxStyle = workbook.CreateStyle(); +taxStyle.Number = 164; + +// Assuming columns: Product, Cost, Tax, Total +Style[] styles = { null, costStyle, taxStyle, priceStyle }; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, styles); +``` + +### Yerel Para Birimi + +Euro veya İngiliz Sterlini için farklı yerleşik kimlikler kullanın (ör. `€#,##0.00` için 165). Alternatif olarak özel bir biçim dizesi ayarlayabilirsiniz: + +```csharp +priceStyle.Custom = "€#,##0.00"; +``` + +### Büyük Veri Setleri + +Aspose.Cells milyonlarca satırı işleyebilir, ancak stil nesneleri bellek tüketimini artırır. Tüm para birimi sütunları için tek bir `Style` örneği yeniden kullanarak ayak izini düşük tutun. + +### Stil Eksikliği + +`columnStyles` sütun sayısından kısa ise, Aspose kalan sütunlara varsayılan stili uygular. Bu, sadece birkaç sütunla ilgilendiğinizde kullanışlıdır. + +--- + +## Tam Çalışan Örnek (Tüm Adımlar Birleştirildi) + +Aşağıda, bir konsol uygulamasına kopyalayıp yapıştırabileceğiniz eksiksiz program yer alıyor. Tartıştığımız tüm parçalar ve birkaç yardımcı yorum içeriyor. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // Step 1: Build sample DataTable (import datatable to excel) + // ------------------------------------------------- + DataTable dataTable = new DataTable(); + dataTable.Columns.Add("Product", typeof(string)); + dataTable.Columns.Add("Price", typeof(double)); + dataTable.Rows.Add("Apple", 1.23); + dataTable.Rows.Add("Banana", 0.78); + dataTable.Rows.Add("Cherry", 2.50); + // You can add as many rows as you like here. + + // ------------------------------------------------- + // Step 2: Create a new workbook (create excel workbook c#) + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // Step 3: Define a currency style (format cells currency) + // ------------------------------------------------- + Style priceStyle = workbook.CreateStyle(); + priceStyle.Number = 164; // "$#,##0.00" – built‑in currency format + + // ------------------------------------------------- + // Step 4: Build the style array (apply currency format column) + // ------------------------------------------------- + // First column gets default style (null), second column uses priceStyle. + Style[] columnStyles = { null, priceStyle }; + + // ------------------------------------------------- + // Step 5: Import the DataTable with the style array + // ------------------------------------------------- + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // ------------------------------------------------- + // Step 6: Save the workbook to disk + // ------------------------------------------------- + string outputPath = @"YOUR_DIRECTORY\StyledTable.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } +} +``` + +**Beklenen sonuç:** `StyledTable.xlsx` dosyasını açtığınızda `Price` sütunu dolar işareti ve iki ondalık basamakla gösterilir; tam da **format cells currency** talimatının istediği gibi. + +--- + +## Sık Sorulan Sorular + +**S: Bu .NET Core ile çalışır mı?** +C: Kesinlikle. Aspose.Cells .NET‑standard uyumlu olduğu için .NET 5, .NET 6 veya daha yeni sürümlerle değişiklik yapmadan kullanılabilir. + +**S: DataTable’ım 10 sütun içeriyor ama sadece 5. sütunu biçimlendirmek istiyorum, ne yapmalıyım?** +C: Uzunluğu 10 olan bir `Style[]` oluşturun, 0‑4 ve 6‑9 indekslerini `null` ile doldurun, özel stilinizi 4. indekse (sıfır‑tabanlı) yerleştirin. Aspose her girişi dikkate alacaktır. + +**S: Başlık satırını gizleyebilir miyim?** +C: İçe aktarma sonrası `worksheet.Cells.Rows[0].Hidden = true;` satırını ekleyin veya `ImportDataTable` metodunda `includeColumnNames` parametresini `false` olarak geçin. + +--- + +## Sonuç + +Biz **Excel workbook C#** oluşturduk, bir `DataTable` içe aktardık ve Aspose.Cells kullanarak **para birimi formatlı bir sütun** ekledik. Veriyi hazırlama, stil tanımlama, stil dizisi oluşturma, `ImportDataTable` ile içe aktarma ve kaydetme adımları, çoğu Excel otomasyon görevinin temelini oluşturur. + +Buradan ilerleyerek şunları keşfedebilirsiniz: + +- **add number format excel** ile tarih veya yüzde biçimleri +- Tek bir dosyada birden fazla çalışma sayfası dışa aktarma +- **format cells currency** ile yerel para birimi sembolleri kullanma +- Aynı veri üzerinden grafik otomasyonu + +Deneyin, ekibinizde Excel raporlamasının vazgeçilmez kişi haline gelin. Paylaşmak istediğiniz bir örnek var mı? Aşağıya yorum bırakın—mutlu kodlamalar! + +![excel çalışma kitabı oluştur c# ekran görüntüsü](image.png "excel çalışma kitabı oluştur c#") + +{{< /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/turkish/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md b/cells/turkish/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md new file mode 100644 index 0000000000..ba254034fc --- /dev/null +++ b/cells/turkish/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md @@ -0,0 +1,249 @@ +--- +category: general +date: 2026-03-30 +description: JSON verilerini ekleyerek ve çalışma kitabını XLSX olarak kaydederek + C# ile hızlıca Excel çalışma kitabı oluşturun. JSON'dan Excel oluşturmayı, JSON'u + Excel'e yazmayı ve JSON'u Excel'e eklemeyi öğrenin. +draft: false +keywords: +- create excel workbook c# +- save workbook as xlsx +- generate excel from json +- write json to excel +- insert json into excel +language: tr +og_description: JSON verilerini ekleyerek ve çalışma kitabını XLSX olarak kaydederek + C# ile hızlıca Excel çalışma kitabı oluşturun. JSON'dan Excel üretmek için bu adım + adım rehberi izleyin. +og_title: Excel Çalışma Kitabı Oluştur C# – JSON Ekle ve XLSX Olarak Kaydet +tags: +- Aspose.Cells +- C# +- Excel automation +title: Excel Çalışma Kitabı Oluştur C# – JSON Ekle ve XLSX Olarak Kaydet +url: /tr/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel Çalışma Kitabı Oluşturma C# – JSON Ekle ve XLSX Olarak Kaydet + +Hiç **create Excel workbook C#** yapmanız ve bir hücreye doğrudan JSON dökmeniz gerekti mi? Tek başınıza değilsiniz—geliştiriciler, API yüklerini veya raporlama ya da paylaşım için bir elektronik tabloya yerleştirilmesi gereken yapılandırma dosyalarını aynı bulmacayla sık sık karşılaşıyor. + +İyi haber, Aspose.Cells ile bunu birkaç satırda yapabilirsiniz, **save workbook as XLSX**, ve tüm süreci tip‑güvenli tutabilirsiniz. Bu öğreticide **generate Excel from JSON**, **write JSON to Excel**, ve **insert JSON into Excel** işlemlerini, karmaşık string birleştirmeleri olmadan tam adımlarla göstereceğiz. + +## Bu Kılavuzda Neler Ele Alınacak + +We’ll walk through: + +1. Yeni bir çalışma kitabı oluşturma. +2. JSON bekleyen bir Smart Marker ekleme. +3. Marker'a bir JSON dizisi sağlama. +4. `SmartMarkerOptions` ayarlarını JSON'un tek bir hücrede kalacak şekilde düzenleme. +5. Dosyayı XLSX çalışma kitabı olarak kaydetme. + +Sonunda, kullanıma hazır bir `JsonSingleCell.xlsx` dosyanız ve herhangi bir JSON‑to‑Excel senaryosu için yeniden kullanabileceğiniz sağlam bir deseniniz olacak. Harici hizmetler yok, sadece saf C# ve Aspose.Cells kütüphanesi. + +**Önkoşullar** + +- .NET 6+ (veya .NET Framework 4.6+). +- Visual Studio 2022 veya herhangi bir C#‑uyumlu IDE. +- NuGet paketi `Aspose.Cells` (ücretsiz deneme veya lisanslı sürüm). + +Eğer bunlara sahipseniz, hemen başlayalım—ekstra kurulum gerekmiyor. + +--- + +## Adım 1: C#'ta Yeni Bir Çalışma Kitabı Oluşturma + +İhtiyacınız olan ilk şey boş bir çalışma kitabı nesnesidir. Bunu, veri bekleyen yeni bir Excel dosyası olarak düşünün. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is your empty Excel file +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; +``` + +**Neden Önemli:** +`Workbook`, tüm Excel işlemleri için giriş noktasıdır. Önce onu oluşturarak, sonraki **save workbook as xlsx** çağrısının serileştirilecek somut bir nesneye sahip olmasını sağlarsınız. + +> **Pro ipucu:** Birden fazla sayfa ile çalışmayı planlıyorsanız, şimdi `workbook.Worksheets.Add()` ile ekleyebilirsiniz. + +--- + +## Adım 2: JSON Bekleyen Bir Smart Marker Yerleştirme + +Smart Marker'lar, Aspose.Cells'in çalışma zamanında değiştirdiği yer tutuculardır. Burada ona `data` adlı bir JSON dizesi aramasını söylüyoruz. + +```csharp +// Put a Smart Marker in cell A1 – {{data:json}} tells Aspose to expect JSON +worksheet.Cells["A1"].PutValue("{{data:json}}"); +``` + +**Neden Önemli:** +`:json` eki, motoru gelen değerin düz metin değil JSON olduğunu bildirir. Bu, **write json to excel** işlemini manuel ayrıştırma olmadan yapmanın anahtarıdır. + +--- + +## Adım 3: JSON Dizisini Tanımlama + +Şimdi eklemek istediğimiz JSON'u oluşturuyoruz. Demonstrasyon için basit bir kişi listesi kullanacağız. + +```csharp +// Sample JSON array – could come from an API, file, or DB +string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; +``` + +**Köşe Durumu:** +JSON'unuz çift tırnak içeriyorsa, gösterildiği gibi kaçtıklarından emin olun veya derleme hatalarından kaçınmak için bir verbatim string (`@"..."`) kullanın. + +--- + +## Adım 4: Smart Marker Seçeneklerini Yapılandırma – Diziyi Tek Parça Tutma + +Varsayılan olarak, Aspose diziyi satırlar boyunca genişletmeye çalışır. Biz tüm JSON dizesinin tek bir hücre içinde kalmasını istiyoruz; bu, tüketicinin daha sonra JSON'u ayrıştıracağı **insert json into excel** senaryoları için mükemmeldir. + +```csharp +SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions +{ + // Treat the whole array as a single cell value + ArrayAsSingle = true +}; +``` + +**Neden Önemli:** +`ArrayAsSingle = true` satır genişlemesini engeller, size temiz, tek‑hücrelik bir JSON bloğu verir. Bu, elektronik tablonun rapor yerine bir taşıma formatı olduğu durumlarda esastır. + +--- + +## Adım 5: JSON Verisiyle Smart Marker'ı İşleme + +Şimdi JSON'u marker'a bağlıyoruz ve Aspose'in ağır işi yapmasına izin veriyoruz. + +```csharp +// Process the marker – the anonymous object maps "data" to our JSON string +worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); +``` + +**Arka planda ne olur:** +Aspose, `{{data:json}}` yer tutucusunu değerlendirir, `jsonData` dizesini serileştirir ve belirlediğimiz seçeneklere uygun olarak A1 hücresine yazar. + +--- + +## Adım 6: Çalışma Kitabını XLSX Dosyası Olarak Kaydetme + +Son olarak, çalışma kitabını diske yazıyoruz. İşte **save workbook as xlsx**'in devreye girdiği yer. + +```csharp +// Save the workbook – the extension determines the format (XLSX here) +workbook.Save("JsonSingleCell.xlsx"); +``` + +**Sonuç:** +`JsonSingleCell.xlsx` dosyasını Excel'de açın, ve JSON dizisini tam olarak tanımladığımız gibi A1 hücresinde düzenli bir şekilde göreceksiniz. + +--- + +## Tam, Çalıştırılabilir Örnek + +Aşağıda, bir konsol uygulamasına kopyalayıp‑yapıştırabileceğiniz tam program yer alıyor. Yukarıdaki tüm adımları içerir ve paket yüklü olduğu varsayımıyla doğrudan çalışır. + +```csharp +using System; +using Aspose.Cells; + +namespace JsonToExcelDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add a Smart Marker that expects JSON + worksheet.Cells["A1"].PutValue("{{data:json}}"); + + // 3️⃣ Define the JSON array + string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; + + // 4️⃣ Configure options – keep array as a single cell value + SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions + { + ArrayAsSingle = true + }; + + // 5️⃣ Process the marker with the JSON payload + worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); + + // 6️⃣ Save the workbook as XLSX + workbook.Save("JsonSingleCell.xlsx"); + + Console.WriteLine("Excel file created successfully! Check JsonSingleCell.xlsx."); + } + } +} +``` + +**Excel'de Beklenen Çıktı** + +| A | +|---| +| `[{"Name":"John","Age":30},{"Name":"Jane","Age":28}]` | + +Bu tek hücre artık sonraki işleme hazır, tamamen geçerli bir JSON dizisi içeriyor. + +--- + +## Yaygın Sorular ve Köşe Durumları + +### JSON'un satırlara yayılması gerekirse ne yapmalıyım? + +`ArrayAsSingle = false` (varsayılan) olarak ayarlayın. Aspose, her dizi öğesi için bir satır oluşturur ve nesne özelliklerini sütunlara eşler. Bu, ham JSON dizesi yerine tablo görünümü istediğinizde kullanışlıdır. + +### Sabit kodlu bir dize yerine JSON dosyası kullanabilir miyim? + +Kesinlikle. Dosyayı bir dizeye okuyun: + +```csharp +string jsonData = File.ReadAllText("people.json"); +``` + +Ardından `jsonData`'yı aynı `Process` çağrısına geçirin. İş akışının geri kalanı değişmeden kalır. + +### Bu büyük JSON yükleriyle çalışır mı? + +Evet, ancak bellek kullanımına dikkat edin. Çok büyük diziler için veriyi akış olarak işlemek veya doğrudan satırlara yazmak (`ArrayAsSingle = false`) tek bir devasa hücreden kaçınmak için düşünülebilir; Excel bunu zorlayabilir. + +### Oluşturulan XLSX eski Excel sürümleriyle uyumlu mu? + +`.xlsx` formatı Office Open XML tabanlıdır ve Excel 2007 ve sonrası sürümlerle çalışır. Eski `.xls` formatına ihtiyacınız varsa, kaydetme çağrısını değiştirin: + +```csharp +workbook.Save("JsonSingleCell.xls", SaveFormat.Excel97To2003); +``` + +## JSON ve Excel ile Çalışma İçin Pro İpuçları + +- **Validate JSON first** – hatalı girişi erken yakalamak için `System.Text.Json.JsonDocument.Parse(jsonData)` kullanın. +- **Escape special characters** – JSON'unuz satır sonları içeriyorsa, hücrede literal `\n` olarak görünecek; işleme başlamadan önce `Environment.NewLine` ile değiştirebilirsiniz. +- **Reuse Smart Markers** – aynı sayfada birden fazla marker yerleştirebilir, her biri farklı bir JSON özelliğine işaret edebilir. +- **Combine with formulas** – JSON bir hücreye yerleştirildikten sonra, Excel'in `FILTERXML` fonksiyonunu (yeni sürümlerde) anlık olarak ayrıştırmak için kullanabilirsiniz. + +## Sonuç + +Artık **create excel workbook c#** nasıl yapılır, bir JSON yükü nasıl gömülür ve Aspose.Cells kullanarak **save workbook as xlsx** nasıl kaydedilir biliyorsunuz. Bu desen, sadece birkaç kod satırıyla **generate excel from json**, **write json to excel** ve **insert json into excel** yapmanızı sağlar, hizmetler ve analistler arasındaki veri alışverişini sorunsuz hâle getirir. + +Bir sonraki adıma hazır mısınız? JSON dizisini uygun bir tabloya dönüştürmeyi deneyin (`ArrayAsSingle = false` ayarlayın) ya da eklemeden sonra sayfayı biçimlendirmeyi keşfedin. Aynı yaklaşım CSV, XML veya özel nesneler için de çalışır—sadece Smart Marker tipini ayarlamanız yeterli. + +Kodlamaktan keyif alın ve denemekten çekinmeyin! Herhangi bir sorunla karşılaşırsanız, aşağıya yorum bırakın veya Smart Marker'lar hakkında daha derin bilgi için Aspose'un resmi dokümantasyonuna göz atın. + +{{< /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/turkish/net/excel-workbook/_index.md b/cells/turkish/net/excel-workbook/_index.md index 43ecdb4b52..19c81d59a9 100644 --- a/cells/turkish/net/excel-workbook/_index.md +++ b/cells/turkish/net/excel-workbook/_index.md @@ -86,6 +86,7 @@ Excel sayfalarınızdaki tanımlı adlar, verilerinizi yönetmenin kullanışlı | [Çalışma Kitabı Baskı Önizleme](./workbook-print-preview/) | Aspose.Cells for .NET kullanarak Excel dosyaları için baskı önizlemelerinin nasıl oluşturulacağını öğrenin. Ayrıntılı, takip edilmesi kolay bir eğitimde kodlama adımlarını öğrenin. | | [İçerik Türü Özellikleriyle Çalışma](./working-with-content-type-properties/) | Gelişmiş Excel meta veri yönetimi için içerik türü özellikleriyle çalışmak üzere Aspose.Cells for .NET'i nasıl kullanacağınızı öğrenin. Bu basit adım adım kılavuzu izleyin. | | [Xades İmza Desteği](./xades-signature-support/) | Bu adım adım kılavuzla Aspose.Cells for .NET kullanarak Excel dosyalarına Xades imzalarının nasıl ekleneceğini öğrenin. Belgelerinizi güvenceye alın. | +| [C#'ta Ana Sayfa Oluşturma – Tam Aspose.Cells Rehberi](./create-master-sheet-in-c-complete-aspose-cells-guide/) | Aspose.Cells for .NET kullanarak C# ile bir ana çalışma sayfası oluşturmayı adım adım öğrenin. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/turkish/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md b/cells/turkish/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md new file mode 100644 index 0000000000..34c567558f --- /dev/null +++ b/cells/turkish/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md @@ -0,0 +1,226 @@ +--- +category: general +date: 2026-03-30 +description: Aspose.Cells kullanarak C#'de ana sayfa oluşturun. Excel çalışma kitabını + C#'de nasıl oluşturacağınızı, aynı sayfa adlarına izin vermeyi ve birkaç adımda + çalışma kitabını XLSX olarak kaydetmeyi öğrenin. +draft: false +keywords: +- create master sheet +- create excel workbook c# +- save workbook as xlsx +- allow duplicate sheet names +language: tr +og_description: Aspose.Cells ile C#'ta ana sayfa oluşturun. Bu rehber, C#'ta Excel + çalışma kitabı oluşturmayı, aynı ada sahip sayfalara izin vermeyi ve çalışma kitabını + XLSX olarak kaydetmeyi gösterir. +og_title: C#'ta ana sayfa oluşturma – Tam Aspose.Cells Rehberi +tags: +- Aspose.Cells +- C# +- Excel automation +title: C#'de ana sayfa oluşturma – Tam Aspose.Cells Rehberi +url: /tr/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#'ta Ana Sayfa Oluşturma – Tam Aspose.Cells Rehberi + +Bir Excel dosyasında **master sheet** oluşturmanız gerektiğinde, aynı temel adı paylaşan bir sürü detay sayfasını nasıl yöneteceğinizden emin olmadınız mı? Yalnız değilsiniz. Birçok raporlama senaryosunda onlarca detay sekmesiyle karşılaşırsınız ve çoğu kütüphanenin varsayılan davranışı, iki sayfanın aynı isimle oluşması durumunda bir istisna fırlatmaktır. + +Şanslıysanız, Aspose.Cells **master sheet** oluşturmayı, motoru **duplicate sheet names** (yinelenen sayfa adlarına) izin verecek şekilde yapılandırmayı ve ardından **workbook as XLSX** (çalışma kitabını XLSX olarak) kaydetmeyi temiz C# koduyla çok kolay hâle getirir. Bu öğreticide tamamen çalıştırılabilir bir örnek üzerinden adım adım ilerleyecek, her satırın neden önemli olduğunu açıklayacak ve kendi projelerinizde doğrudan kullanabileceğiniz bir dizi ipucu sunacağız. + +> **Neler Öğreneceksiniz** +> * Aspose.Cells kullanarak **C# tarzı Excel çalışma kitabı oluşturma**. +> * Her veri satırı için bir detay sayfası oluşturan smart‑marker ekleme. +> * Kütüphanenin otomatik olarak sayısal bir sonek eklemesi için `DetailSheetNewName = DuplicateAllowed` ayarını yapma. +> * Ek bir adım gerektirmeden diske **workbook as XLSX** (çalışma kitabını XLSX olarak) kaydetme. + +Harici bir belgeye gerek yok—gereken her şey burada. + +--- + +## Önkoşullar + +| Gereksinim | Neden önemli | +|-------------|----------------| +| .NET 6.0 or later (or .NET Framework 4.7+) | Aspose.Cells 23.x+ bu çalışma zamanlarını hedefler. | +| Visual Studio 2022 (or any C# IDE) | Kolay proje oluşturma ve hata ayıklama için. | +| Aspose.Cells for .NET NuGet package (`Install-Package Aspose.Cells`) | Tüm smart‑marker sihrini sağlayan kütüphane. | +| Basic C# knowledge | Sözdizimini ek bir eğitim almadan anlayacaksınız. | + +Eğer bunlardan herhangi birine sahip değilseniz, hemen ekleyin—yarım kalmış bir ortamda devam etmenin bir anlamı yok. + +## Adım 1: Aspose.Cells ile master sheet oluşturma + +İlk yaptığımız şey, bir `Workbook` nesnesi oluşturarak **C# tarzı Excel çalışma kitabı** oluşturmak. Bu nesne zaten bir varsayılan çalışma sayfası içerir; bunu “Master” olarak yeniden adlandıracağız ve tüm detay sayfaları için şablon olarak kullanacağız. + +```csharp +using Aspose.Cells; + +// Step 1: Initialise a new workbook – this automatically gives us one sheet +Workbook workbook = new Workbook(); + +// Grab the first (and only) worksheet that comes with a fresh workbook +Worksheet masterSheet = workbook.Worksheets[0]; + +// Give it a meaningful name – this will be our master sheet +masterSheet.Name = "Master"; +``` + +*Sayfayı neden yeniden adlandırıyoruz?* +“Sheet1” gibi bir varsayılan ad, amacını yansıtmaz ve dosyayı daha sonra incelerken master sekmesinin hemen tanınmasını istersiniz. İsimlendirme ayrıca daha sonra eklediğiniz sayfaların çakışmasını önler. + +## Adım 2: Detay sayfalarını oluşturacak smart‑marker'ı hazırlama + +Smart‑marker'lar, Aspose.Cells'in çalışma zamanında veri ile değiştirdiği yer tutuculardır. Hücre **A1**'e `{{#detail:DataSheetName}}` koyarak motoru şu şekilde yönlendiririz: “Veri kaynağındaki her kayıt için, adı `DataSheetName` alanından gelen yeni bir sayfa oluştur.” + +```csharp +// Step 2: Insert a smart‑marker into cell A1. +// The marker #detail tells Aspose.Cells to generate a new sheet per data row. +masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); +``` + +Marker'ı, çalışma sayfasına yapıştırılmış küçük bir talimat kartı gibi düşünün. İşlemci çalıştığında kartı okur, veri kaynağından uygun değeri alır ve ardından master sheet'i yeni bir sekmeye kopyalar. + +## Adım 3: Veri kaynağını oluşturma – bilinçli olarak yinelenen sayfa adları + +Gerçek hayatta bunu bir veritabanından çekebilirsiniz, ancak demo için anonim nesnelerden oluşan bellek içi bir dizi kullanacağız. Her iki öğenin de aynı temel adı `"Detail"` kullandığına dikkat edin; işte **duplicate sheet names** (yinelenen sayfa adlarına) izin vermenin kritik olduğu senaryo. + +```csharp +// Step 3: Create a data source with two items that share the same base sheet name. +var dataSource = new[] +{ + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } +}; +``` + +Eğer bunu özel bir seçenek olmadan denerseniz, Aspose.Cells ikinci yinelemede “Detail” adlı bir sayfa zaten var olduğu için bir istisna fırlatır. Bu yüzden bir sonraki adım önemlidir. + +## Adım 4: Yinelenen sayfa adlarını etkinleştirme + +Aspose.Cells `SmartMarkerOptions.DetailSheetNewName` özelliğini sunar. Bunu `DetailSheetNewName.DuplicateAllowed` olarak ayarlamak, motorun bir isim çakışması olduğunda otomatik olarak sayısal bir sonek (ör. “Detail_1”) eklemesini sağlar. + +```csharp +// Step 4: Configure SmartMarker options to permit duplicate sheet names. +var smartMarkerOptions = new SmartMarkerOptions +{ + // This makes the library rename clashes to "Detail_1", "Detail_2", etc. + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed +}; +``` + +*Her satıra elle benzersiz bir ad vermek neden tercih edilmiyor?* +Çünkü kaynak veri genellikle benzersizliği garanti etmez, özellikle kullanıcılar serbest metin girdiğinde. Kütüphanenin soneki otomatik eklemesine izin vermek, birçok hatayı ortadan kaldırır. + +## Adım 5: Smart‑marker'ları işleme ve detay sayfalarını oluşturma + +Şimdi `SmartMarkers.Process` metodunu çağırıyoruz, veri kaynağını ve az önce yapılandırdığımız seçenekleri geçiriyoruz. Metot her öğeyi dolaşır, master sheet'i kopyalar ve kopyayı `DataSheetName` alanına göre (gerekirse sonek ekleyerek) yeniden adlandırır. + +```csharp +// Step 5: Run the smart‑marker processor – this creates the detail sheets. +masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); +``` + +Bu satır çalıştırıldıktan sonra çalışma kitabında üç sekme olacak: + +1. **Master** – orijinal şablon. +2. **Detail** – ilk oluşturulan sayfa (sonek gerekmez). +3. **Detail_1** – ikinci oluşturulan sayfa (sonek otomatik eklenir). + +Bunu Excel'de dosyayı açarak doğrulayabilirsiniz; iki detay sayfasını yan yana göreceksiniz. + +## Adım 6: Çalışma kitabını XLSX dosyası olarak kaydetme + +Son olarak, dosyayı diske kaydediyoruz. `.xlsx` uzantısı verdiğinizde `Save` metodu otomatik olarak XLSX formatını seçer. + +```csharp +// Step 6: Persist the workbook – this is the moment we finally “save workbook as XLSX”. +string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; +workbook.Save(outputPath); +``` + +**Pro ipucu:** Dosyayı doğrudan bir web yanıtına (ör. ASP.NET Core) akıtmanız gerekiyorsa, dosya yolunu kullanmak yerine `workbook.Save(stream, SaveFormat.Xlsx)` yöntemini tercih edin. + +## Tam Çalışan Örnek + +Aşağıda tam ve çalıştırılabilir program yer alıyor. Bir konsol uygulamasına kopyalayıp yapıştırın, F5'e basın ve oluşturulan dosyayı açarak sonucu görün. + +```csharp +using System; +using Aspose.Cells; + +namespace MasterSheetDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook and rename the default sheet to "Master" + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert a smart‑marker that will generate a detail sheet per data row + masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); + + // 3️⃣ Prepare a data source where two rows share the same sheet name + var dataSource = new[] + { + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } + }; + + // 4️⃣ Allow duplicate sheet names – the library will add "_1", "_2", … + var smartMarkerOptions = new SmartMarkerOptions + { + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed + }; + + // 5️⃣ Process the smart‑markers; this creates the detail sheets + masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); + + // 6️⃣ Save the workbook as an XLSX file + string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Beklenen sonuç:** `DuplicateDetailSheets.xlsx` dosyasını açın; üç çalışma sayfası göreceksiniz—`Master`, `Detail` ve `Detail_1`. Her detay sayfası, master'ın tam bir kopyasıdır ve daha sonra satır‑özel verilerle doldurmanız için hazırdır. + +## Sık Sorulan Sorular & Kenar Durumlar + +### Eğer iki'den fazla yinelenen sayfa gerekirse ne olur? + +Problem yok. Aynı `DuplicateAllowed` ayarı, her satırın kendi sekmesine sahip olana kadar artan sayılar (`Detail_2`, `Detail_3`, …) eklemeye devam eder. + +### Sonek formatını özelleştirebilir miyim? + +Varsayılan olarak, Aspose.Cells bir alt çizgi ve sayısal bir indeks kullanır. Farklı bir desen (ör. “Detail‑A”, “Detail‑B”) isterseniz, `Process` çalıştıktan sonra çalışma kitabını `workbook.Worksheets` üzerinde döngüyle gezerek istediğiniz gibi yeniden adlandırmanız gerekir. + +### Bu yöntem büyük veri setleri (yüzlerce satır) ile çalışır mı? + +Evet, ancak bellek kullanımına dikkat edin. Oluşturulan her sayfa, master'ın tam bir kopyasıdır; bu yüzden çok sayıda satır dosya boyutunu hızla artırabilir. Eğer sayfa başına sadece birkaç satıra ihtiyacınız varsa, fazla hücreleri temizlemek için `SmartMarkerOptions.RemoveEmptyRows = true` kullanmayı düşünün. + +### Oluşturulan dosya gerçekten bir XLSX dosyası mı? + +Kesinlikle. `Save` metodu, Excel'in beklediği Open XML paketini yazar. Dosyayı LibreOffice veya Google Sheets ile herhangi bir dönüşüm yapmadan bile açabilirsiniz. + +## Üretim‑Hazır Kod İçin İpuçları + +| İpucu | Neden önemli | +|-----|----------------| +| **Dispose `Workbook + +{{< /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/turkish/net/formulas-functions/_index.md b/cells/turkish/net/formulas-functions/_index.md index 1ed19ee143..091e6c38dd 100644 --- a/cells/turkish/net/formulas-functions/_index.md +++ b/cells/turkish/net/formulas-functions/_index.md @@ -40,67 +40,50 @@ Bu eğitimlerle şunları öğreneceksiniz: ## Formüller ve Fonksiyonlar Eğitimleri ### [Aspose.Cells Kullanarak .NET Çalışma Kitaplarında Formül Metnini Çıkarma](./aspose-cells-formula-text-net) -.NET'te Aspose.Cells kullanarak Excel dosyalarından formül metnini programlı olarak nasıl çıkaracağınızı öğrenin. Elektronik tablolara gömülü formül mantığının denetlenmesi ve belgelenmesi için mükemmeldir. ### [Aspose.Cells .NET Kullanarak Excel Görevlerini Otomatikleştirin: Formülleri Aralıklara Ayarlayın](./aspose-cells-net-set-formulas-ranges) -Aspose.Cells for .NET ile aralıklarda formül ayarlamayı otomatikleştirmeyi öğrenin. Aynı formülü aynı anda birden fazla hücreye uygulayarak C# kullanarak Excel iş akışlarınızı verimli bir şekilde kolaylaştırın. ### [Aspose.Cells .NET Kılavuzunu Kullanarak Formüllerle Verimli CSV İçe Aktarımları](./csv-imports-formulas-aspose-cells-net-guide) -Karmaşık formüller içeren CSV dosyalarının işlevselliğini kaybetmeden Aspose.Cells for .NET kullanarak Excel'e nasıl aktarılacağını öğrenin. Veri aktarımları sırasında formül mantığını koruma konusunda uzmanlaşın. ### [Aspose.Cells .NET'te Hücre Formüllerini Özelleştirme: Küreselleştirme Ayarları Kılavuzu](./custom-aspose-cells-net-globalization-settings) -Çok dilli uygulamalar için küreselleştirme ayarlarına odaklanarak Aspose.Cells .NET ile hücre formüllerini nasıl özelleştireceğinizi öğrenin. Uluslararası formül formatlarıyla çalışan geliştiriciler için kapsamlı bir kılavuz. ### [Aspose.Cells .NET Kullanarak Excel'de Formülleri Görüntüleme: Verimli Çalışma Kitabı Yönetimi İçin Kapsamlı Bir Kılavuz](./display-excel-formulas-aspose-cells-net) -Excel çalışma kitaplarında formülleri etkili bir şekilde görüntülemek için Aspose.Cells .NET'i nasıl kullanacağınızı öğrenin. Bu kılavuz, formül denetimi ve dokümantasyonu için kurulum, çalışma kitabı düzenleme ve pratik uygulamaları kapsar. ### [Aspose.Cells for .NET ile Dinamik Excel Formülleri ve ComboBox'ları Uygulama](./dynamic-excel-formulas-combobox-aspose-cells-net) -Aspose.Cells for .NET kullanarak dinamik Excel raporlarını nasıl otomatikleştireceğinizi öğrenin. Adlandırılmış aralıklar oluşturun, ComboBox denetimleri ekleyin ve kullanıcı seçimlerine göre güncellenen duyarlı formüller oluşturun. ### [Excel Otomasyonu: Formüller için Aspose.Cells .NET](./excel-automation-aspose-cells-net-formulas) -Aspose.Cells for .NET kullanarak Excel formül otomasyonunda ustalaşın. Bu eğitim, verimli elektronik tablo işlemleri için formülleri programatik olarak oluşturmayı, hesaplamayı ve optimize etmeyi kapsar. ### [Aspose.Cells .NET ile Excel Otomasyonu: Çalışma Kitabı ve Formül Hesaplamalarında Ustalaşma](./excel-automation-aspose-cells-net-workbook-formulas) -Aspose.Cells for .NET kullanarak Excel görevlerini nasıl otomatikleştireceğinizi öğrenin. Çalışma kitapları oluşturun, IFNA ve VLOOKUP gibi formüller uygulayın ve Excel kurulumu gerektirmeden veri süreçlerinizi verimli bir şekilde kolaylaştırın. ### [Aspose.Cells for .NET kullanarak Excel'de Doğrudan Hesaplama Formülleri: Kapsamlı Bir Kılavuz](./excel-direct-calculation-aspose-cells-dotnet) -Aspose.Cells for .NET ile Excel'de doğrudan hesaplamaları nasıl verimli bir şekilde gerçekleştireceğinizi öğrenin. Formül işlemelerinizi otomatikleştirin ve talep üzerine hesaplama yetenekleriyle veri yönetimini iyileştirin. ### [.NET için Aspose.Cells ile Excel Formül Arama](./excel-formula-search-aspose-cells-net) -Aspose.Cells for .NET kullanarak Excel çalışma kitaplarında belirli formülleri nasıl arayacağınızı öğrenin. Bu eğitim, çalışma sayfaları arasında formülleri bulmak için desen eşleştirme, formül konumu ve çıkarma tekniklerini kapsar. ### [.NET'te Aspose.Cells Geri Aramalarını Kullanarak Excel Uyarı İşleme: Kapsamlı Bir Kılavuz](./excel-warning-handling-net-aspose-cells-callbacks) -Aspose.Cells for .NET ile Excel uyarılarını nasıl yöneteceğinizi öğrenin. IWarningCallback'i uygulayın ve formül hesaplama sorunları ve diğer uyarı senaryoları için uygulamanızın hata işleme özelliğini geliştirin. ### [Excel'i Aspose.Cells ile Genişletin: .NET'te Kullanıcı Tanımlı Fonksiyonları (UDF'ler) Kaydedin ve Çağırın](./extend-excel-aspose-cells-register-call-udfs) -Aspose.Cells for .NET kullanarak UDF'leri kaydedip çağırarak Excel çalışma kitaplarını nasıl geliştireceğinizi öğrenin. Özel işlevlerde ustalaşın ve kendi hesaplama rutinlerinizle veri işleme verimliliğinizi artırın. ### [Aspose.Cells for .NET Kullanarak Excel'de Formül Hücrelerini Bulma ve Yönetme](./find-formula-cells-in-excel-using-aspose-cells-net) -Excel çalışma kitaplarında formül hücrelerini verimli bir şekilde bulmak için Aspose.Cells for .NET'i nasıl kullanacağınızı öğrenin. Bu kılavuz, formüller içeren hücreleri bulma ve yönetme için kurulum, kullanım ve performans optimizasyonunu kapsar. ### [Aspose.Cells for .NET'te Özel Hesaplamaları Uygulama: Kapsamlı Bir Kılavuz](./guide-implement-custom-calculations-aspose-cells-dotnet) -Aspose.Cells for .NET kullanarak Excel benzeri hesaplamalarınızı özel mantıkla nasıl geliştireceğinizi öğrenin. Bu kılavuz, formül yeteneklerini genişletmek için kurulum, uygulama ve pratik uygulamaları kapsar. ### [.NET için Aspose.Cells'te Özel Fonksiyonlar Nasıl Uygulanır: Adım Adım Kılavuz](./implement-custom-functions-aspose-cells-net) -Aspose.Cells for .NET kullanarak Excel'de özel işlevler oluşturmayı ve uygulamayı öğrenin. Excel'in yerleşik işlevlerinin ötesine geçen, özel hesaplamalarla elektronik tablolarınızı geliştirin. ### [Aspose.Cells for Excel Automation kullanarak .NET'te Adlandırılmış Aralık Formülleri Nasıl Uygulanır](./implement-named-range-formulas-net-aspose-cells) -Aspose.Cells for .NET ile yerelleştirilmiş Excel çözümlerinde adlandırılmış aralık formüllerini nasıl otomatikleştireceğinizi öğrenin. Adlandırılmış aralıkları kullanarak formül referanslarıyla iş akışlarınızı kolaylaştırın ve üretkenliği artırın. ### [Doğru Veri Analizi için Aspose.Cells .NET Kullanarak Excel Hücre Bağımlılığı İzlemeyi Ustalaştırın](./master-cell-dependency-tracking-aspose-cells-net) -Aspose.Cells .NET ile Excel'de hücre bağımlılıklarını nasıl izleyeceğinizi ve yöneteceğinizi öğrenin. Bu kılavuz, formül ilişkilerini anlayarak veri doğruluğunu ve verimliliğini artırmaya yönelik adım adım bir yaklaşım sunar. ### [.NET için Aspose.Cells'i Kullanarak Excel'de Paylaşımlı Formüllerde Ustalaşın: Kapsamlı Bir Kılavuz](./master-shared-formulas-excel-aspose-cells-net) -Aspose.Cells for .NET kullanarak Excel'de paylaşılan formüllerin nasıl uygulanacağını öğrenin. Bu kılavuz adım adım talimatlar sunar ve performans açısından optimize edilmiş formül uygulamasıyla Excel görevlerini otomatikleştirmenin avantajlarını vurgular. ### [Aspose.Cells ile .NET'te Dizi Formüllerinde Ustalaşma: Kapsamlı Bir Kılavuz](./mastering-aspose-cells-net-array-formulas) -Aspose.Cells for .NET kullanarak dizi formüllerinde ustalaşmayı öğrenin. Bu kılavuz, güçlü çok hücreli hesaplamaların kurulumunu, uygulamasını ve gerçek dünya uygulamalarını kapsar. ### [Çok Dilli Destek için Aspose.Cells .NET Kullanarak Excel Dosyalarında Dil Nasıl Ayarlanır](./specify-language-excel-aspose-cells-net) -Aspose.Cells .NET kullanarak Excel dosyalarınızın dilini nasıl belirleyeceğinizi öğrenin. Formül ayarlarını uluslararasılaştırmaya yönelik bu adım adım kılavuzla belge erişilebilirliğini ve uyumluluğunu geliştirin. ### [Excel Power Query Formüllerini Aspose.Cells .NET ile Güncelleyin](./update-power-query-formulas-aspose-cells-net) -Aspose.Cells for .NET kullanarak Excel çalışma kitaplarındaki Power Query formüllerini programlı olarak nasıl güncelleyeceğinizi öğrenin. Dinamik raporlama için ana veri kaynağı yönetimi. + +### [C#'ta WRAPCOLS Kullanımı – Wrap Fonksiyonlarıyla Excel Çalışma Kitabı Oluşturma](./how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/) + +### [Excel Çalışma Kitabı Oluşturma C# – Lambda, SEQUENCE ve EXPAND Kılavuzu](./create-excel-workbook-c-lambda-sequence-expand-guide/) ## Excel Formül Türlerini Anlama diff --git a/cells/turkish/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md b/cells/turkish/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md new file mode 100644 index 0000000000..a4350d327d --- /dev/null +++ b/cells/turkish/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-30 +description: Aspose.Cells kullanarak C# ile Excel çalışma kitabı oluşturun. Excel’de + lambda işlevi, sıra işlevi, dizi genişletme işlevini uygulamayı öğrenin ve çalışma + kitabını xlsx olarak kaydedin. +draft: false +keywords: +- create excel workbook c# +- lambda function excel +- save workbook as xlsx +- sequence function excel +- expand array excel +language: tr +og_description: C# ile Excel çalışma kitabını hızlıca oluşturun. Bu rehber, lambda + işlevi Excel, sıra işlevi Excel, dizi genişletme Excel ve çalışma kitabını xlsx + olarak kaydetmeyi gösterir. +og_title: Excel Çalışma Kitabı Oluşturma C# – Lambda, SEQUENCE ve EXPAND Kılavuzu +tags: +- Aspose.Cells +- C# +- Excel automation +title: Excel Çalışma Kitabı Oluşturma C# – Lambda, SEQUENCE ve EXPAND Rehberi +url: /tr/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Excel Çalışma Kitabı Oluşturma C# – Lambda, SEQUENCE & EXPAND Rehberi + +Otomatik bir rapor için **Excel çalışma kitabı C#** oluşturmanız gerektiğinde, hangi API çağrılarını kullanacağınızdan emin olmadınız mı? Tek başınıza değilsiniz—birçok geliştirici, programatik Excel oluşturma konusuna ilk adım attıklarında aynı engelle karşılaşıyor. Bu rehberde, yeni **SEQUENCE fonksiyonu Excel**'den güçlü **LAMBDA fonksiyonu Excel**'e ve hatta **expand array Excel** sonuçlarını nasıl genişleteceğinize kadar her şeyi kapsayan tam, çalıştırılabilir bir örnek göreceksiniz. + +Ayrıca **workbook as xlsx** kaydetme adımlarını da göstereceğiz, böylece dosyayı Excel kullanan herkesle paylaşabilirsiniz. Bu öğreticinin sonunda, herhangi bir .NET projesine ekleyebileceğiniz, üretim‑hazır bir kod parçacığına sahip olacaksınız. Belirsiz “belgelere bakın” linkleri yok—sadece bugün çalışan kod. + +## Gereksinimler + +- **.NET 6.0 veya daha yeni** – örnek .NET 6 hedefli, ancak herhangi bir yeni sürüm de çalışır. +- **Aspose.Cells for .NET** – NuGet üzerinden kurun (`Install-Package Aspose.Cells`). +- C# sözdizimi (değişkenler, nesneler ve lambda ifadeleri) hakkında temel bir anlayış. +- Rahat olduğunuz bir IDE (Visual Studio, Rider veya VS Code). + +Hepsi bu. Ek COM interop, sunucuda Office kurulumu gibi bir şey yok—Aspose.Cells her şeyi bellek içinde halleder. + +## Excel Çalışma Kitabı Oluşturma C# – Adım‑Adım Uygulama + +Aşağıda süreci küçük adımlara bölüyoruz. Her adım net bir başlık, kısa bir kod alıntısı ve **neden** yaptığımızı açıklayan bir metin içerir. Tam bloğu kopyalayıp bir console uygulaması olarak çalıştırabilirsiniz. + +### Adım 1 – Yeni Bir Workbook Başlatma + +İlk iş olarak, bellekte Excel dosyasını temsil eden boş bir workbook nesnesine ihtiyacımız var. + +```csharp +using Aspose.Cells; + +// Step 1: Create a new workbook and get the first worksheet +Workbook workbook = new Workbook(); // empty workbook +Worksheet sheet = workbook.Worksheets[0]; // default first sheet +``` + +*Bu neden önemli:* `Workbook`, tüm Aspose.Cells işlemlerinin giriş noktasıdır. İlk `Worksheet`'i alarak formüller, değerler veya biçimlendirme yazabileceğimiz bir tuval elde ederiz. + +> **İpucu:** Birden fazla sayfa gerekiyorsa, sadece `workbook.Worksheets.Add()` çağırın ve her birine referans tutun. + +### Adım 2 – SEQUENCE Fonksiyonu Excel ile Veri Oluşturma + +**sequence function excel**, VBA olmadan dinamik bir sayı dizisi oluşturur. Bunu `A1` hücresine yerleştirip Excel'in otomatik olarak genişlemesine izin vereceğiz. + +```csharp +// Step 2: Generate a 5‑row, 1‑column array from a SEQUENCE +sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; // 1..3 padded with blanks +``` + +*Bu neden önemli:* `SEQUENCE(3)` `[1,2,3]` dizisini üretir. `EXPAND` ile sarmalayarak sonucu 5‑satırlık bir aralığa zorlarız, ekstra satırlar boş bırakılır. Böylece **sequence function excel** ve **expand array excel** aynı anda gösterilmiş olur. + +### Adım 3 – LAMBDA Fonksiyonu Excel ile Sayıları Toplama + +Şimdi **lambda function excel** yeteneğini gösterelim. Yeni `REDUCE` fonksiyonunu kullanacağız; bu fonksiyon içinde bir lambda bulunur. + +```csharp +// Step 3: Aggregate a sequence (sum 1..5) using REDUCE/LAMBDA +sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; // result = 15 +``` + +*Bu neden önemli:* `REDUCE`, `SEQUENCE(5)` tarafından üretilen dizi üzerinde yineleme yapar, her elemanı (`b`) birikim değişkeni (`a`) ile birlikte lambda’ya gönderir. Lambda `a+b` onları toplar ve `B1` hücresine `15` yazar. Bu, C# içinde döngü kullanmadan sadece formüllerle azaltma yapmanın temiz bir yoludur. + +### Adım 4 – Trigonometrik Fonksiyonları Hücrelerde Doğrudan Kullanma + +Excel’in yerleşik matematik fonksiyonları hızlı hesaplamalar için kullanışlıdır. Yan yana hücrelere bir kotanj ve bir hiperbolik kotanj koyacağız. + +```csharp +// Step 4: Trigonometric functions directly in Excel cells +sheet["C1"].Formula = "COT(PI()/4)"; // evaluates to 1 +sheet["D1"].Formula = "COTH(1)"; // hyperbolic cotangent of 1 +``` + +*Bu neden önemli:* Klasik matematik fonksiyonlarını yeni dinamik‑dizi formülleriyle karıştırabileceğinizi gösterir. Performans açısından özel bir nedeniniz yoksa bu değerleri C# içinde hesaplamanıza gerek yok. + +### Adım 5 – Tüm Formülleri Hesaplama + +Aspose.Cells, formülleri ayarladığınızda otomatik olarak değerlendirme yapmaz. Bunu siz istemeniz gerekir. + +```csharp +// Step 5: Force calculation so that cells store the results +workbook.CalculateFormula(); +``` + +*Bu neden önemli:* Bu çağrıdan sonra her hücrenin `Value` özelliği değerlendirilmiş sonucu içerir; kaydetmek ya da geri okumak için hazırdır. + +### Adım 6 – Workbook’u Xlsx Olarak Kaydetme + +Son olarak, **save workbook as xlsx** desenini kullanarak workbook’u diske kalıcı hâle getiriyoruz. + +```csharp +// Step 6: Save the workbook to an Excel file (XLSX format) +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + +workbook.Save(outputPath); +Console.WriteLine($"Workbook saved to: {outputPath}"); +``` + +*Bu neden önemli:* `Save` metodu dosya uzantısını otomatik algılar. “.xlsx” kullanarak dosyanın modern Excel sürümleriyle uyumlu olmasını sağlarız. Yol, test sırasında kolay erişim için masaüstüne işaret eder. + +### Tam Çalışan Örnek + +Aşağıda, yeni bir console projesine yapıştırabileceğiniz tam program yer alıyor. Yukarıdaki tüm adımları ve hesaplanan değerleri konsola yazdıran küçük bir doğrulama bloğunu içerir. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialize workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + + // SEQUENCE + EXPAND + sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; + + // REDUCE with LAMBDA + sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; + + // Trig functions + sheet["C1"].Formula = "COT(PI()/4)"; + sheet["D1"].Formula = "COTH(1)"; + + // Calculate formulas + workbook.CalculateFormula(); + + // Verify results (optional) + Console.WriteLine("A1‑A5 (expanded SEQUENCE):"); + for (int i = 0; i < 5; i++) + { + Console.WriteLine($" Row {i + 1}: {sheet.Cells[i, 0].Value ?? "blank"}"); + } + Console.WriteLine($"B1 (sum 1‑5): {sheet["B1"].Value}"); + Console.WriteLine($"C1 (cot(π/4)): {sheet["C1"].Value}"); + Console.WriteLine($"D1 (coth(1)): {sheet["D1"].Value}"); + + // Save workbook + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + workbook.Save(outputPath); + Console.WriteLine($"Workbook saved to: {outputPath}"); + } +} +``` + +**Konsolda beklenen çıktı** + +``` +A1‑A5 (expanded SEQUENCE): + Row 1: 1 + Row 2: 2 + Row 3: 3 + Row 4: blank + Row 5: blank +B1 (sum 1‑5): 15 +C1 (cot(π/4)): 1 +D1 (coth(1)): 1.31303528549933 +Workbook saved to: C:\Users\YourName\Desktop\NewFunctions.xlsx +``` + +Ve *NewFunctions.xlsx* dosyasını açtığınızda aynı sayıların ilk dört sütunda yer aldığını göreceksiniz. + +![excel çalışma kitabı c# oluşturma sonucunda oluşan tablo ekran görüntüsü](/images/create-excel-workbook-csharp.png) + +## Kenar Durumları, İpuçları ve Yaygın Sorular + +- **Birden fazla sayfa gerekirse ne yapmalıyım?** + Sadece `workbook.Worksheets.Add()` çağırın ve her yeni `Worksheet` nesnesinde formül atamalarını tekrarlayın. + +- **Eski Excel sürümlerini kullanabilir miyim?** + Dinamik‑dizi fonksiyonları (`SEQUENCE`, `EXPAND`, `REDUCE`) Excel 365 veya Excel 2021+ gerektirir. Daha eski sürümler hedefleniyorsa, klasik formüller kullanın ya da değerleri C# içinde hesaplayıp yazın. + +- **Performans kaygıları?** + Binlerce satır için, bir aralığa formül atayıp ardından `CalculateFormula` çağırmak, tek tek değer atamaktan genellikle daha hızlıdır. + +- **Dosya yerine bir akışa (stream) kaydetmek?** + `work + +{{< /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/turkish/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md b/cells/turkish/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md new file mode 100644 index 0000000000..ab5fe4c6aa --- /dev/null +++ b/cells/turkish/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md @@ -0,0 +1,201 @@ +--- +category: general +date: 2026-03-30 +description: WRAPCOLS'i C#'ta nasıl kullanacağınızı öğrenin, bir Excel çalışma kitabı + oluşturun, Excel'e veri ekleyin ve formül hesaplamasını zorlayın; ayrıca WRAPROWS'u + da kullanın. +draft: false +keywords: +- how to use wrapcols +- create excel workbook c# +- add data to excel +- force formula calculation +- how to use wraprows +language: tr +og_description: WRAPCOLS'i C#'ta nasıl kullanarak bir Excel çalışma kitabı oluşturacağınızı, + veri ekleyeceğinizi, formül hesaplamasını zorlayacağınızı ve dizi formülleri için + WRAPROWS'i nasıl kullanacağınızı keşfedin. +og_title: C#'ta WRAPCOLS Nasıl Kullanılır – Tam Rehber +tags: +- Aspose.Cells +- C# +- Excel Automation +title: C#'de WRAPCOLS Nasıl Kullanılır – Wrap Fonksiyonlarıyla Excel Çalışma Kitabı + Oluşturma +url: /tr/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# WRAPCOLS'i C#'ta Nasıl Kullanılır – Wrap Fonksiyonlarıyla Excel Çalışma Kitabı Oluşturma + +Excel'i C# ile otomatikleştirirken **WRAPCOLS'i nasıl kullanacağınızı** hiç merak ettiniz mi? Tek başınıza değilsiniz—birçok geliştirici, yatay bir aralığı çok fazla kod yazmadan dikey bir diziye dönüştürmek zorunda kaldığında bir engelle karşılaşıyor. İyi haber, Aspose.Cells bunu çocuk oyuncağı haline getiriyor. + +Bu öğreticide, **WRAPCOLS'i nasıl kullanacağınızı**, **Excel workbook C#**‑stilinde nasıl **create Excel workbook C#** oluşturacağınızı, **add data to Excel** nasıl ekleyeceğinizi ve sonuçların anında görünmesi için **force formula calculation** nasıl zorlayacağınızı gösteren tam, çalıştırılabilir bir örnek üzerinden ilerleyeceğiz. Ayrıca ters dönüşüm için **how to use WRAPROWS** örneğini de ekleyeceğiz. Sonunda çalıştırmaya hazır bir program ve her adımın neden önemli olduğuna dair net bir anlayışa sahip olacaksınız. + +--- + +![C#'ta WRAPCOLS Kullanım Örneği](alt="Screenshot showing Excel workbook after using WRAPCOLS in C#") + +## Bu Kılavuzda Neler Kapsanıyor + +* Aspose.Cells ile yeni bir çalışma kitabı oluşturma. +* Hücreleri programlı olarak doldurma (**add data to Excel**). +* `WRAPCOLS` fonksiyonunu uygulayarak bir satırı sütuna dönüştürme. +* `WRAPROWS` kullanarak bir sütunu tekrar satıra çevirme (**how to use wraprows**). +* Motorun formülleri hemen değerlendirmesini zorlamak (**force formula calculation**). +* Dosyayı kaydetme ve çıktıyı kontrol etme. + +Harici bir dokümantasyona gerek yok—gereken her şey burada. + +--- + +## WRAPCOLS'i C#'ta Nasıl Kullanılır – Adım‑Adım Uygulama + +Aşağıda tam kaynak dosyası yer alıyor. Yeni bir console projesine kopyalayıp yapıştırın, Aspose.Cells NuGet paketini ekleyin ve **F5** tuşuna basın. + +```csharp +// ------------------------------------------------------------ +// How to Use WRAPCOLS in C# – Complete Example +// ------------------------------------------------------------ +using System; +using Aspose.Cells; + +namespace WrapFunctionsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a fresh workbook (this is how we **create excel workbook c#** style) + Workbook workbook = new Workbook(); + + // 2️⃣ Grab the first worksheet – it's created by default + Worksheet sheet = workbook.Worksheets[0]; + + // 3️⃣ **Add data to Excel**: place two numbers side‑by‑side + sheet.Cells["A1"].PutValue(1); // first value + sheet.Cells["B1"].PutValue(2); // second value + + // 4️⃣ **How to use WRAPCOLS** – turn the horizontal range A1:B1 into a vertical array + // The second argument (1) tells WRAPCOLS to create 1 column per element. + sheet["C1"].Formula = "WRAPCOLS(A1:B1, 1)"; + + // 5️⃣ **How to use WRAPROWS** – the opposite; turn the same range into a horizontal array + // Here we ask for 2 rows per element, which produces a single row with both values. + sheet["C2"].Formula = "WRAPROWS(A1:B1, 2)"; + + // 6️⃣ **Force formula calculation** so the workbook reflects the results immediately + workbook.CalculateFormula(); + + // 7️⃣ Save the workbook to disk – change the path to a folder you own + string outputPath = @"WrapFunctions.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + Console.WriteLine("Check cells C1 and C2 for the WRAPCOLS / WRAPROWS results."); + } + } +} +``` + +### Her Satırın Önemi + +| Step | Explanation | +|------|-------------| +| **1️⃣ Yeni bir çalışma kitabı oluşturun** | This is the foundation. Aspose.Cells treats a `Workbook` object as the entire Excel file, so you’re effectively **creating an Excel workbook C#** style. | +| **2️⃣ İlk çalışma sayfasını alın** | A new workbook always contains at least one worksheet (`Worksheets[0]`). Accessing it early avoids null‑reference surprises. | +| **3️⃣ Excel'e veri ekleyin** | By using `PutValue` we **add data to Excel** without worrying about cell formatting. The numbers `1` and `2` are our test data for the wrap functions. | +| **4️⃣ WRAPCOLS'i nasıl kullanılır** | `WRAPCOLS(A1:B1, 1)` Excel'e `A1:B1` aralığını alıp değerlerini dikey olarak, satır başına bir şekilde dökmesini söyler. Sonuç `C1` hücresine yerleşir ve aşağı doğru yayılır (`C1`, `C2`, …). | +| **5️⃣ WRAPROWS'i nasıl kullanılır** | `WRAPROWS(A1:B1, 2)` tersini yapar: yatay bir döküm oluşturur ve iki değeri `C2`'den başlayan tek bir satıra sığdırır. | +| **6️⃣ Formül hesaplamasını zorla** | By default, Aspose.Cells may defer calculation until the file is opened in Excel. Calling `CalculateFormula()` **forces formula calculation** so you can read the results immediately after saving. | +| **7️⃣ Çalışma kitabını kaydedin** | The final step writes everything to disk. Open the resulting `WrapFunctions.xlsx` to see the outcome. | + +--- + +## Excel Çalışma Kitabı C# Oluşturma – Ortamı Kurma + +Kodunuzu çalıştırmadan önce doğru araçlara sahip olduğunuzdan emin olun: + +1. **.NET 6.0+** – En yeni LTS sürümü en iyi çalışır. +2. **Visual Studio 2022** (veya C# uzantılı VS Code). +3. **Aspose.Cells for .NET** – NuGet üzerinden kurun: + ```bash + dotnet add package Aspose.Cells + ``` +4. Çıktı dosyası için yazılabilir bir klasör. + +Bu önkoşullar minimaldir; COM interop veya Office kurulumu gerekmez, bu yüzden Aspose.Cells sunucu‑tarafı Excel üretimi için popüler bir tercihtir. + +## Excel'e Veri Ekleme – En İyi Uygulamalar + +Programlı olarak **add data to Excel** yaparken şu ipuçlarını göz önünde bulundurun: + +* **Use `PutValue`** for raw numbers or strings; it automatically detects the data type. +* **Avoid hard‑coding cell addresses** in large projects—use loops or named ranges for scalability. +* **Set cell styles sparingly**; each style change incurs overhead. If you need formatting, create a single style object and apply it to multiple cells. + +Küçük örneğimizde sadece iki sayı ekliyoruz, ancak aynı desen binlerce satıra ölçeklenebilir. + +## WRAPROWS'i Nasıl Kullanılır – Yatay Dizi Örneği + +`WRAPCOLS`'in tersine ihtiyacınız varsa, `WRAPROWS` sizin gidilecek yerinizdir. Söz dizimi şu şekildedir: + +``` +WRAPROWS(source_range, [rows_per_item]) +``` + +* `source_range` – dönüştürmek istediğiniz aralık. +* `rows_per_item` – isteğe bağlı; Excel'e her öğenin kaç satır kaplayacağını söyler. Demo’da `2` kullanarak iki değeri tek bir satıra zorladık. + +İkinci argümanı değiştirerek deney yapabilirsiniz: + +```csharp +// Example: split each value into its own column, three rows per item +sheet["D1"].Formula = "WRAPROWS(A1:B1, 3)"; +``` + +Çalışma kitabını açtığınızda değerlerin üç sütun boyunca döküldüğünü, her sütunun orijinal sayıları gerektiği gibi tekrarladığını göreceksiniz. + +## Formül Hesaplamasını Zorlamak – Ne Zaman ve Neden + +“Gerçekten `CalculateFormula()` çağırmam gerekiyor mu?” diye merak edebilirsiniz. Cevap **evet**, eğer: + +* Kaydettikten sonra hesaplanmış değerleri **programmatically** okumayı planlıyorsanız. +* Dosyanın Excel'de açıldığında doğru sonuçları zaten göstermesini garanti etmek istiyorsanız. +* **Headless environment** (ör. bir web API) içinde çalışıyorsanız ve hiçbir kullanıcı manuel olarak yeniden hesaplama tetiklemeyecekse. + +Bu adımı atlamak çalışma kitabını bozmaz, ancak hücreler Excel yeniden hesaplayana kadar formül metnini (`=WRAPCOLS(...)`) gösterir. + +## Beklenen Çıktı – Ne Beklenir + +Programı çalıştırıp `WrapFunctions.xlsx` dosyasını açtıktan sonra: + +| Cell | Formula | Displayed Value | +|------|---------|-----------------| +| **C1** | `=WRAPCOLS(A1:B1, 1)` | `1` (C1'de) ve `2` (C2'de) – dikey bir liste | +| **C2** | `=WRAPROWS(A1:B1, 2)` | `1` C2'de ve `2` D2'de – yatay bir liste | + +Yani **C1**'den başlayan bir değer sütunu ve **C2**'den başlayan bir değer satırı göreceksiniz. Bu, her iki wrap fonksiyonunun da beklendiği gibi çalıştığını doğrular. + +## Kenar Durumları ve Varyasyonlar + +| Scenario | What changes? | Suggested tweak | +|----------|---------------|-----------------| +| **Large range (A1:Z1)** | More values to spill vertically | Increase the second argument of `WRAPCOLS` if you want multiple columns per group. | +| **Non‑numeric data** | Strings are handled the same way | No code change; `PutValue` accepts any object. | +| **Dynamic range** | You don’t know the size at compile time | Use `sheet.Cells.MaxDataColumn` and `MaxDataRow` to build the address string. | +| **Multiple worksheets** | Need to apply wrap functions on different sheets | Reference the correct worksheet (`workbook.Worksheets["Sheet2"]`). | + +## Saha İçinden Profesyonel İpuçları + +* **Pro tip:** .NET Core 3.1+ hedefliyorsanız, tüm kaynakların hızlıca serbest bırakılmasını sağlamak için çalışma kitabı oluşturmayı bir `using` bloğu içinde sarın. +* **Watch out for:** `CalculateFormula()` çağırmadan büyük bir aralıkta aynı formülü ayarlamak performans darboğazlarına yol açabilir. Mümkün olduğunda formülleri toplu işleyin. +* **Tip:** Kod içinde hesaplanmış değerleri geri okumak istiyorsanız, call ` + +{{< /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/turkish/net/tables-and-lists/_index.md b/cells/turkish/net/tables-and-lists/_index.md index 47b1974ae7..982328eaf6 100644 --- a/cells/turkish/net/tables-and-lists/_index.md +++ b/cells/turkish/net/tables-and-lists/_index.md @@ -51,6 +51,8 @@ Aspose.Cells for .NET'i kullanarak Excel'de tabloları aralıklara kolayca dön .NET için Aspose.Cells'in gücünü açığa çıkarın. Bu ayrıntılı adım adım kılavuzda sorgu veri kaynaklarıyla tabloları okumayı ve yazmayı öğrenin. ### [Excel'de Tablo veya Listenin Yorumunu Ayarlama](./setting-comment-of-table-or-list/) Kolay adım adım kılavuzumuzla Aspose.Cells for .NET kullanarak Excel'de tablolara yorum eklemeyi öğrenin. +### [C#'ta Aralıktan Tablo Oluşturma – Tam Aspose.Cells Eğitimi](./create-table-from-range-in-c-complete-aspose-cells-tutorial/) +Aspose.Cells for .NET kullanarak C# içinde bir aralıktan tablo oluşturmayı adım adım öğrenin. Veri yönetimini kolaylaştırın. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/turkish/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md b/cells/turkish/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md new file mode 100644 index 0000000000..c98ebc6835 --- /dev/null +++ b/cells/turkish/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md @@ -0,0 +1,230 @@ +--- +category: general +date: 2026-03-30 +description: Aspose.Cells ile C#'ta aralıktan tablo oluştur – hücrelere veri ekle, + aralığı ListObject'e dönüştür ve filtre olmadan Excel'i kaydet. +draft: false +keywords: +- create table from range +- create excel workbook c# +- add data to cells +- convert range to listobject +- save excel without filter +language: tr +og_description: Aspose.Cells ile C#'ta aralıktan tablo oluşturun. Hücrelere veri eklemeyi, + bir aralığı ListObject'e dönüştürmeyi ve Excel'i filtre olmadan kaydetmeyi öğrenin. +og_title: C#'de Aralıktan Tablo Oluşturma – Tam Aspose.Cells Öğreticisi +tags: +- Aspose.Cells +- C# +- Excel Automation +title: C#'da Aralıktan Tablo Oluşturma – Tam Aspose.Cells Eğitimi +url: /tr/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# C#'ta Aralıktan Tablo Oluşturma – Tam Aspose.Cells Öğreticisi + +C#'ta **create table from range** oluşturmanız gerektiğinde, düz bir veri bloğunu tam özellikli bir Excel tablosuna nasıl dönüştüreceğinizi bilemediğiniz oldu mu? Tek başınıza değilsiniz. Raporları otomatikleştiriyor, skor kartları oluşturuyor ya da sadece verileri sonraki analizler için temizliyor olun, bu küçük hileyi öğrenmek size çok fazla manuel işi tasarruf ettirebilir. + +Bu rehberde tüm süreci adım adım inceleyeceğiz: **create excel workbook c#**, **add data to cells**, **convert range to ListObject**, ve son olarak **save excel without filter**. Sonunda, Aspose.Cells'i referans alan herhangi bir .NET projesine ekleyebileceğiniz, çalıştırmaya hazır bir kod parçacığına sahip olacaksınız. + +--- + +## Önkoşullar + +- .NET 6+ (veya .NET Framework 4.7.2+) yüklü +- Aspose.Cells for .NET (NuGet paketi `Aspose.Cells`) – yazı yazıldığı sıradaki en yeni sürüm (23.10) sorunsuz çalışır. +- C# sözdizimi hakkında temel bir anlayış – derin Excel interop bilgisi gerektirmez. + +Eğer bunlara sahipseniz, başlayalım. + +--- + +## Adım 1: C#'ta Excel Çalışma Kitabı Oluşturma + +İlk olarak yeni bir çalışma kitabı nesnesine ihtiyacımız var. Bunu, sonunda tablomuzu tutacak boş Excel dosyası olarak düşünün. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is equivalent to opening a blank .xlsx file. +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (default) worksheet. +``` + +> **Pro tip:** Argümansız `Workbook()` bir varsayılan çalışma sayfası içeren bir çalışma kitabı oluşturur; bu hızlı demolar için mükemmeldir. Birden fazla sayfaya ihtiyacınız olursa, daha sonra `workbook.Worksheets.Add()` ile ekleyebilirsiniz. + +--- + +## Adım 2: Hücrelere Veri Ekleme + +Şimdi sayfayı küçük bir veri kümesiyle dolduracağız – iki sütun (Name, Score) ve üç satır değer. Bu, **add data to cells** işlemini temiz ve okunabilir bir şekilde gösterir. + +```csharp +// Header row +worksheet.Cells["A1"].PutValue("Name"); +worksheet.Cells["B1"].PutValue("Score"); + +// Data rows +worksheet.Cells["A2"].PutValue("Alice"); +worksheet.Cells["B2"].PutValue(85); +worksheet.Cells["A3"].PutValue("Bob"); +worksheet.Cells["B3"].PutValue(92); +``` + +`PutValue` neden kullanılır? Veri tipini (metin vs. sayısal) otomatik olarak algılar ve hücreyi buna göre biçimler, basit senaryolarda `Style` nesneleriyle uğraşmanızı önler. + +> **Beklenen çıktı:** Bu adımdan sonra, çalışma kitabını Excel'de açarsanız, “Name” ve “Score” başlıklı iki sütunlu bir ızgara ve ardından iki satır veri göreceksiniz. + +--- + +## Adım 3: Aralığı ListObject (Tablo) Olarak Dönüştürme + +İşte sihrin gerçekleştiği yer: bu düz aralığı bir Excel tablosuna (Aspose.Cells API'sinde **ListObject** olarak adlandırılır) dönüştürmek. Bu sadece görsel stil eklemekle kalmaz, aynı zamanda sıralama, filtreleme ve yapılandırılmış referanslar gibi yerleşik özellikleri de etkinleştirir. + +```csharp +// Define the range boundaries. +// startRow and startColumn are zero‑based indexes. +// rowCount includes the header row. +int startRow = 0; // Row 1 in Excel +int startColumn = 0; // Column A +int rowCount = 3; // Header + 2 data rows +int columnCount = 2; // Two columns: Name & Score + +// Add a ListObject to the worksheet and retrieve the object. +int listIndex = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); +ListObject table = worksheet.ListObjects[listIndex]; + +// Turn on the UI filter dropdowns so users can interact with the table. +table.ShowAutoFilter = true; +``` + +> **Neden ListObject kullanılır?** +> - **Yapılandırılmış referanslar**: Formüller sütunlara isimleriyle başvurabilir. +> - **Auto‑filter UI**: Kullanıcılar hızlı filtreleme için açılır oklar alır. +> - **Stil**: Daha sonra tek bir satırla yerleşik tablo stillerini uygulayabilirsiniz. + +--- + +## Adım 4: AutoFilter UI'yi Kaldırma (Filtre Olmadan Excel Kaydetme) + +Bazen filtre okları olmayan temiz bir sayfaya ihtiyaç duyarsınız – örneğin, çalışma kitabı son bir rapor olduğunda. Aspose.Cells 23.10, filtre UI'sini tamamen kaldırmak için basit bir yol sundu. + +```csharp +// Remove the filter UI completely. +table.AutoFilter = null; // Clears the underlying filter object. +table.ShowAutoFilter = false; // Hides the dropdown arrows. +``` + +Verileri silmediğimize dikkat edin; sadece görsel filtre kontrollerini kapatıyoruz. Bu, **save excel without filter** gereksinimini karşılar. + +--- + +## Adım 5: Çalışma Kitabını Kaydetme + +Son olarak, çalışma kitabını diske yazın. Dosya tabloyu içerecek ancak herhangi bir filtre UI'si olmayacak. + +```csharp +// Choose a folder you have write access to. +string outputPath = @"C:\Temp\NoAutoFilter.xlsx"; +workbook.Save(outputPath); +``` + +`NoAutoFilter.xlsx` dosyasını Excel'de açın – tablo varsayılan biçimlendirme ile stilize edilmiş, ancak filtre okları yok. Veri sağlamdır ve dosya dağıtıma hazır. + +--- + +![Aspose.Cells kullanarak Excel'de aralıktan tablo oluşturmayı gösteren ekran görüntüsü](image.png "Aralıktan tablo oluşturma ekran görüntüsü") + +*Image alt text:* **Aspose.Cells kullanarak Excel'de aralıktan tablo oluşturmayı gösteren ekran görüntüsü** – tablonun filtre açılır menüsü olmadan var olduğunun görsel kanıtı. + +--- + +## Tam, Çalıştırılabilir Örnek + +Aşağıda, bir konsol uygulamasına kopyalayıp yapıştırabileceğiniz tam program yer alıyor. Yukarıdaki tüm adımları ve açıklık için birkaç ekstra yorum içerir. + +```csharp +using System; +using Aspose.Cells; + +namespace AsposeTableDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add data to cells – this is the “add data to cells” part. + worksheet.Cells["A1"].PutValue("Name"); + worksheet.Cells["B1"].PutValue("Score"); + worksheet.Cells["A2"].PutValue("Alice"); + worksheet.Cells["B2"].PutValue(85); + worksheet.Cells["A3"].PutValue("Bob"); + worksheet.Cells["B3"].PutValue(92); + + // 3️⃣ Convert the range into a ListObject (i.e., create table from range). + int startRow = 0, startColumn = 0, rowCount = 3, columnCount = 2; + int listIdx = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); + ListObject table = worksheet.ListObjects[listIdx]; + table.ShowAutoFilter = true; // optional UI filter + + // 4️⃣ Remove the AutoFilter UI – “save excel without filter”. + table.AutoFilter = null; + table.ShowAutoFilter = false; + + // 5️⃣ Save the workbook. + string filePath = @"C:\Temp\NoAutoFilter.xlsx"; + workbook.Save(filePath); + + Console.WriteLine($"Workbook saved to {filePath}"); + } + } +} +``` + +Programı çalıştırın, ardından `C:\Temp\NoAutoFilter.xlsx` dosyasını açın. Güzel biçimlendirilmiş bir tablo, filtre okları yok ve girdiğimiz verileri göreceksiniz. Bu, **create excel workbook c#** iş akışının 60 satırdan az bir kodla tamamı. + +--- + +## Sık Sorulan Sorular & Kenar Durumları + +**Q: Veri aralığım bitişik değilse ne olur?** +A: Aspose.Cells, `ListObjects.Add` için dikdörtgen bir aralık gerektirir. Eğer bitişik olmayan veriniz varsa, önce geçici bir aralık oluşturun (ör. parçaları yeni bir çalışma sayfasına kopyalayın) ve ardından o aralığı dönüştürün. + +**Q: Özel bir tablo stili uygulayabilir miyim?** +A: Kesinlikle. `ListObject` oluşturduktan sonra, `table.TableStyleType = TableStyleType.TableStyleMedium9;` (veya 65 yerleşik stilden herhangi biri) ayarlayın. Bu, tablonun şirketinizin markasına uymasını sağlamanın güzel bir yoludur. + +**Q: Filtreyi koruyup okları nasıl gizlerim?** +A: Filtre mantığı `table.AutoFilter` içinde bulunur. `ShowAutoFilter = false` ayarı sadece UI'yı gizler; temel filtre kalır. Böylece daha sonra programatik olarak satırları filtrelemeye devam edebilirsiniz. + +**Q: Büyük veri setleri (10k+ satır) hakkında ne söyleyebilirsiniz?** +A: Aynı API çalışır, ancak performans için toplu eklemeden önce otomatik hesaplamaları (`workbook.CalcEngine = false`) kapatmayı, ardından sonrasında tekrar açmayı düşünün. + +--- + +## Özet + +Aspose.Cells kullanarak C#'ta **create table from range** nasıl yapılacağını adım adım ele aldık — **create excel workbook c#**, **add data to cells**, **convert range to ListObject** ve son olarak **save excel without filter**. Kod eksiksiz, çalıştırılabilir ve üretime hazır. + +Sonra keşfetmek isteyebileceğiniz şeyler: + +- En yüksek puanları vurgulamak için koşullu biçimlendirme ekleme. +- `workbook.Save("Report.pdf", SaveFormat.Pdf);` ile çalışma kitabını PDF olarak dışa aktarma. +- Tabloyu programatik olarak sıralamak için `table.Columns["Score"].DataBodyRange.Sort` kullanma. + +Farklı veri setleri, tablo stilleri veya hatta birden fazla çalışma sayfası ile denemeler yapmaktan çekinmeyin. API, küçük bir skor tahtasından devasa bir finansal deftere kadar her şeyi yönetebilecek kadar esnektir. + +Sorularınız mı var ya da bir sorunla mı karşılaştınız? Aşağıya yorum bırakın ya da GitHub'ta bana mesaj atın. Kodlamaktan keyif alın ve ham aralıkları şık Excel tablolarına dönüştürmenin tadını çıkarın! + +{{< /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/vietnamese/net/conversion-to-pdf/_index.md b/cells/vietnamese/net/conversion-to-pdf/_index.md index a03bdd9b1e..bd91dd5c9a 100644 --- a/cells/vietnamese/net/conversion-to-pdf/_index.md +++ b/cells/vietnamese/net/conversion-to-pdf/_index.md @@ -34,6 +34,8 @@ Nhưng hãy đợi đã, còn nhiều hơn thế nữa! Còn nếu bạn muốn Chuyển đổi bảng tính Excel sang PDF dễ dàng với Aspose.Cells cho .NET! Làm theo hướng dẫn từng bước của chúng tôi để có trải nghiệm liền mạch. ### [Chuyển đổi biểu đồ sang PDF trong .NET](./convert-chart-to-pdf/) Tìm hiểu cách chuyển đổi biểu đồ Excel sang PDF trong .NET bằng Aspose.Cells với hướng dẫn từng bước này! Hoàn hảo cho các lập trình viên ở mọi cấp độ. +### [Lưu sổ làm việc dưới dạng PDF với Aspose.Cells – Hướng dẫn chi tiết từng bước](./save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/) +Hướng dẫn lưu sổ làm việc Excel thành PDF bằng Aspose.Cells, chi tiết từng bước, phù hợp cho mọi lập trình viên. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/vietnamese/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md b/cells/vietnamese/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md new file mode 100644 index 0000000000..a5094ff154 --- /dev/null +++ b/cells/vietnamese/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/_index.md @@ -0,0 +1,248 @@ +--- +category: general +date: 2026-03-30 +description: Tìm hiểu cách lưu sổ làm việc dưới dạng PDF bằng Aspose.Cells. Bài hướng + dẫn này cũng đề cập đến việc xuất worksheet sang PDF, cách xuất Excel sang PDF và + tạo PDF từ worksheet. +draft: false +keywords: +- save workbook as pdf +- export worksheet to pdf +- how to export excel to pdf +- save excel as pdf +- create pdf from worksheet +language: vi +og_description: Lưu sổ làm việc dưới dạng PDF một cách dễ dàng. Hướng dẫn này chỉ + cách xuất worksheet sang PDF, cách xuất Excel sang PDF và tạo PDF từ worksheet bằng + C#. +og_title: Lưu sổ làm việc dưới dạng PDF với Aspose.Cells – Hướng dẫn toàn diện +tags: +- Aspose.Cells +- C# +- PDF generation +title: Lưu sổ làm việc dưới dạng PDF với Aspose.Cells – Hướng dẫn chi tiết từng bước +url: /vi/net/conversion-to-pdf/save-workbook-as-pdf-with-aspose-cells-complete-step-by-step/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Lưu workbook dưới dạng pdf – Hướng dẫn chi tiết từng bước + +Bạn đã bao giờ cần **save workbook as pdf** nhưng không chắc thư viện nào sẽ giữ nguyên số liệu của bạn? Bạn không đơn độc. Trong nhiều dự án chúng ta phải chuyển dữ liệu Excel thành một file PDF hoàn chỉnh, và làm đúng cách sẽ tiết kiệm hàng giờ gỡ lỗi. + +Trong tutorial này chúng ta sẽ đi qua đoạn code chính xác để **save workbook as pdf** bằng Aspose.Cells, và đồng thời sẽ chỉ cho bạn cách **export worksheet to pdf**, trả lời các câu hỏi *how to export excel to pdf*, và trình bày một cách sạch sẽ để **create pdf from worksheet** với các thiết lập độ chính xác tùy chỉnh. + +Kết thúc hướng dẫn, bạn sẽ có một ứng dụng console C# sẵn sàng chạy, tạo ra PDF chỉ chứa các chữ số có ý nghĩa mà bạn quan tâm. Không có phần thừa, chỉ có giải pháp sẵn sàng cho môi trường production. + +--- + +## Những gì bạn sẽ học + +- Cách thiết lập một `Workbook` mới và chỉ định worksheet đầu tiên. +- Phương pháp chính xác để **save workbook as pdf** đồng thời bảo toàn độ chính xác số học. +- Tại sao thuộc tính `SignificantDigits` quan trọng khi bạn **export worksheet to pdf**. +- Những bẫy thường gặp khi bạn cố **how to export excel to pdf** và cách tránh chúng. +- Các cách nhanh để **save excel as pdf** với các tùy chọn trang khác nhau, và cách **create pdf from worksheet** một cách lập trình. + +### Yêu cầu trước + +- .NET 6.0 trở lên (code cũng hoạt động với .NET Framework 4.5+). +- Giấy phép Aspose.Cells hợp lệ (hoặc giấy phép tạm thời miễn phí để thử). +- Visual Studio 2022 hoặc bất kỳ IDE nào hỗ trợ C#. + +Nếu bạn đã có những yếu tố cơ bản này, hãy bắt đầu. + +--- + +## Bước 1 – Cài đặt Aspose.Cells và Khởi tạo Workbook + +Điều đầu tiên cần làm: cài đặt gói NuGet Aspose.Cells. Mở terminal trong thư mục dự án và chạy: + +```bash +dotnet add package Aspose.Cells +``` + +Sau khi gói được cài đặt, tạo một đối tượng `Workbook` mới. Đây là đối tượng mà bạn sẽ **save workbook as pdf**. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialise a fresh workbook – think of it as a blank Excel file. + Workbook workbook = new Workbook(); + + // Grab the first worksheet (index 0). This is where we’ll put our data. + Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Tại sao cần bước này?* +Việc tạo workbook cung cấp một canvas sạch, và việc chọn worksheet đầu tiên đảm bảo bạn đang làm việc ở vị trí đã biết. Bỏ qua bước này có thể gây lỗi *null reference* khi bạn sau này cố **export worksheet to pdf**. + +--- + +## Bước 2 – Chèn Dữ liệu Độ chính xác Cao + +Bây giờ chúng ta sẽ đưa vào một số có nhiều chữ số thập phân hơn so với những gì chúng ta muốn hiển thị trong PDF. Điều này minh họa cách thiết lập `SignificantDigits` cắt bớt kết quả. + +```csharp + // Place a high‑precision number in cell A1. + worksheet.Cells["A1"].PutValue(1234.56789); +``` + +Nếu bạn chạy chương trình ngay bây giờ và chỉ gọi `workbook.Save("output.pdf")`, PDF sẽ hiển thị đầy đủ `1234.56789`. Điều này có thể chấp nhận trong một số trường hợp, nhưng thường bạn cần làm tròn đến một số chữ số có ý nghĩa nhất định — đặc biệt trong các báo cáo tài chính. + +--- + +## Bước 3 – Cấu hình PDF Save Options + +Aspose.Cells cung cấp kiểm soát chi tiết qua `PdfSaveOptions`. Thuộc tính chúng ta quan tâm là `SignificantDigits`. Đặt nó thành `4` sẽ yêu cầu engine chỉ giữ lại bốn chữ số có ý nghĩa khi **save workbook as pdf**. + +```csharp + // Configure PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 // This trims the number to 1235 in the PDF. + }; +``` + +*Tại sao dùng `SignificantDigits`?* +Khi bạn **create pdf from worksheet**, bạn thường phải tuân thủ các quy tắc làm tròn theo quy định. Tùy chọn này thực hiện việc làm tròn cho bạn, tránh việc phải định dạng từng ô một cách thủ công. + +--- + +## Bước 4 – Export Worksheet sang PDF với các Options + +Đây là thời khắc quyết định: chúng ta thực sự **save workbook as pdf** bằng các options vừa định nghĩa. + +```csharp + // Save the workbook as a PDF using the configured options. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + } +} +``` + +Chạy chương trình sẽ tạo ra một file có tên `SignificantDigits.pdf` trong thư mục output của dự án. Mở nó và bạn sẽ thấy `1235` ở ô A1 – số đã được làm tròn tới bốn chữ số có ý nghĩa. + +*Điểm quan trọng:* Phương thức `Save` nhận cả đường dẫn file và `PdfSaveOptions`. Nếu bạn bỏ qua options, sẽ sử dụng hành vi mặc định, có thể không đáp ứng yêu cầu độ chính xác của bạn. + +--- + +## Bước 5 – Kiểm tra Kết quả và Khắc phục Các Vấn đề Thông thường + +### Kết quả Mong đợi + +- Một file PDF một trang tên `SignificantDigits.pdf`. +- Ô A1 hiển thị `1235` (bốn chữ số có ý nghĩa). +- Không có worksheet phụ hoặc nội dung ẩn xuất hiện. + +### Câu hỏi Thường gặp + +| Question | Answer | +|----------|--------| +| **What if I need more than one worksheet?** | Loop through `workbook.Worksheets` and apply the same `PdfSaveOptions` when you save each sheet individually, or set `OnePagePerSheet = true` in the options. | +| **Can I keep the original number format?** | Yes – set `PdfSaveOptions.AllColumnsInOnePage = true` and let Excel’s formatting rules handle it, but remember that `SignificantDigits` will still override the numeric precision. | +| **Does this work with .xlsx files that already exist?** | Absolutely. Replace `new Workbook()` with `new Workbook("input.xlsx")` and the rest of the code stays the same. | +| **What if the PDF is blank?** | Verify that the workbook actually contains data and that you’re saving to a writable directory. Also, ensure the Aspose.Cells license is correctly applied; an unlicensed trial may limit output. | + +### Pro Tip + +Nếu bạn cần **save excel as pdf** với hướng trang cụ thể, đặt `pdfSaveOptions.PageSetup.Orientation = PageOrientation.Landscape;` trước khi gọi `Save`. Thao tác nhỏ này thường giúp bạn tránh phải chỉnh sửa PDF thủ công sau này. + +--- + +## Các Biến thể: Export Nhiều Sheet hoặc Cài đặt Trang Tùy chỉnh + +### Export Tất cả Sheets trong một Lệnh + +```csharp +PdfSaveOptions allSheetsOptions = new PdfSaveOptions +{ + SignificantDigits = 4, + OnePagePerSheet = true // Each worksheet gets its own page. +}; + +workbook.Save("AllSheets.pdf", allSheetsOptions); +``` + +### Export một Sheet duy nhất dưới dạng PDF + +Nếu bạn chỉ muốn **export worksheet to pdf** cho một sheet cụ thể, sử dụng phương thức `ToPdf` của đối tượng `Worksheet`: + +```csharp +Worksheet sheet = workbook.Worksheets["Sheet2"]; +sheet.ToPdf("Sheet2.pdf", pdfSaveOptions); +``` + +### Điều chỉnh Lề Trang + +```csharp +pdfSaveOptions.PageSetup.TopMargin = 20; +pdfSaveOptions.PageSetup.BottomMargin = 20; +``` + +Những tinh chỉnh này cho phép bạn tối ưu hoá tài liệu cuối cùng mà không cần xử lý sau. + +--- + +## Ví dụ Hoàn chỉnh + +Dưới đây là chương trình đầy đủ, sẵn sàng copy‑paste. Lưu lại dưới tên `Program.cs` và chạy `dotnet run`. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and select the first worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Insert a high‑precision number. + worksheet.Cells["A1"].PutValue(1234.56789); + + // 3️⃣ Set PDF options – keep only 4 significant digits. + PdfSaveOptions pdfSaveOptions = new PdfSaveOptions + { + SignificantDigits = 4 + }; + + // 4️⃣ Save the workbook as PDF. + workbook.Save("SignificantDigits.pdf", pdfSaveOptions); + + // Optional: Export another sheet with custom settings. + // Worksheet sheet2 = workbook.Worksheets.Add("Report"); + // sheet2.Cells["B2"].PutValue(9876.54321); + // sheet2.ToPdf("Report.pdf", pdfSaveOptions); + } +} +``` + +**Kết quả:** Mở `SignificantDigits.pdf` – bạn sẽ thấy giá trị đã làm tròn `1235`. Kích thước file nhỏ gọn, và bố cục khớp với sheet Excel gốc. + +--- + +## Kết luận + +Chúng ta vừa trình bày cách **save workbook as pdf** bằng Aspose.Cells, bao gồm mọi thứ từ thiết lập cơ bản đến các tùy chọn nâng cao như **export worksheet to pdf**, **how to export excel to pdf**, và **create pdf from worksheet** với kiểm soát số học chính xác. + +Cách tiếp cận này đơn giản, chỉ cần vài dòng C#, và hoạt động trên mọi phiên bản .NET. Tiếp theo, bạn có thể khám phá cách thêm header/footer, nhúng hình ảnh, hoặc tạo PDF từ template — mỗi phần đều dựa trên nền tảng bạn đã có. + +Có ý tưởng nào muốn thử? Có thể bạn muốn bảo mật PDF bằng mật khẩu hoặc gộp nhiều PDF lại với nhau. Đó là những mở rộng tự nhiên, và API của Aspose.Cells đã sẵn sàng hỗ trợ. Hãy khám phá, thử nghiệm, và để thư viện làm phần việc nặng. + +--- + +![save workbook as pdf screenshot](/images/save-workbook-as-pdf.png){alt="save workbook as pdf example showing the generated PDF file"} + +*Happy coding! If you ran into any snags, drop a comment below and we’ll troubleshoot together.* + +{{< /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/vietnamese/net/converting-excel-files-to-other-formats/_index.md b/cells/vietnamese/net/converting-excel-files-to-other-formats/_index.md index 4a064cfa75..72eeb02a2f 100644 --- a/cells/vietnamese/net/converting-excel-files-to-other-formats/_index.md +++ b/cells/vietnamese/net/converting-excel-files-to-other-formats/_index.md @@ -56,6 +56,8 @@ Tìm hiểu cách chuyển đổi tệp Excel sang PDF/A-1a cho mục đích lư Tìm hiểu cách chuyển đổi JSON sang CSV theo chương trình trong .NET bằng Aspose.Cells. Làm theo hướng dẫn từng bước của chúng tôi để đảm bảo chuyển đổi dữ liệu liền mạch. ### [Chuyển đổi tệp Excel sang PPTX theo chương trình trong .NET](./converting-excel-file-to-pptx/) Tìm hiểu cách chuyển đổi tệp Excel sang bản trình bày PowerPoint (PPTX) theo chương trình bằng Aspose.Cells cho .NET với hướng dẫn từng bước này. +### [Tạo PowerPoint từ Excel – Hướng dẫn từng bước C#](./create-powerpoint-from-excel-step-by-step-c-guide/) +Hướng dẫn chi tiết cách chuyển đổi dữ liệu Excel thành bản trình chiếu PowerPoint bằng C# và Aspose.Cells. ### [Chỉ định HTML CrossType trong chương trình HTML đầu ra trong .NET](./specifying-html-crosstype-in-output-html/) Tìm hiểu cách chỉ định HTML CrossType trong Aspose.Cells cho .NET. Làm theo hướng dẫn từng bước của chúng tôi để chuyển đổi tệp Excel sang HTML một cách chính xác. ### [Đọc bảng tính số theo chương trình trong .NET](./reading-numbers-spreadsheet/) diff --git a/cells/vietnamese/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md b/cells/vietnamese/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md new file mode 100644 index 0000000000..33767222e6 --- /dev/null +++ b/cells/vietnamese/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/_index.md @@ -0,0 +1,253 @@ +--- +category: general +date: 2026-03-30 +description: Tạo PowerPoint từ Excel nhanh chóng bằng Aspose.Cells và Aspose.Slides. + Tìm hiểu cách xuất worksheet dưới dạng hình ảnh và lưu bản trình chiếu dưới dạng + PPTX trong C#. +draft: false +keywords: +- create powerpoint from excel +- convert excel to powerpoint +- export worksheet as image +- save presentation as pptx +- export excel chart as picture +language: vi +og_description: Tạo PowerPoint từ Excel trong C# với Aspose. Xuất worksheet dưới dạng + hình ảnh, giữ các hình dạng có thể chỉnh sửa và lưu kết quả dưới dạng PPTX. +og_title: Tạo PowerPoint từ Excel – Hướng dẫn C# đầy đủ +tags: +- Aspose +- C# +- Office Automation +title: Tạo PowerPoint từ Excel – Hướng dẫn C# chi tiết từng bước +url: /vi/net/converting-excel-files-to-other-formats/create-powerpoint-from-excel-step-by-step-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tạo PowerPoint từ Excel – Hướng dẫn C# đầy đủ + +Bạn đã bao giờ cần **tạo PowerPoint từ Excel** nhưng không chắc thư viện nào có thể giữ cho biểu đồ của bạn vẫn có thể chỉnh sửa? Bạn không phải là người duy nhất. Trong nhiều kịch bản báo cáo, bạn sẽ muốn biến một bảng tính thành một bộ slide mà không mất khả năng tinh chỉnh các hộp văn bản sau này. Hướng dẫn này sẽ chỉ cho bạn cách **chuyển đổi Excel sang PowerPoint** bằng cách sử dụng Aspose.Cells và Aspose.Slides, đồng thời đề cập cách **xuất worksheet dưới dạng hình ảnh** và cuối cùng **lưu bản trình chiếu dưới dạng PPTX**. + +Chúng ta sẽ đi qua từng dòng mã, giải thích *tại sao* mỗi thiết lập quan trọng, và thậm chí thảo luận cách xử lý nếu workbook của bạn chứa các biểu đồ phức tạp mà bạn muốn xuất dưới dạng hình ảnh. Khi hoàn thành, bạn sẽ có một ứng dụng console C# sẵn sàng chạy, nhận `ShapesDemo.xlsx` và tạo ra `Result.pptx` – tất cả với các hộp văn bản có thể chỉnh sửa và hình ảnh sắc nét. + +## Những gì bạn cần + +- .NET 6.0 hoặc phiên bản mới hơn (API cũng hoạt động với .NET Framework, nhưng .NET 6 là lựa chọn tối ưu). +- Các gói NuGet **Aspose.Cells** và **Aspose.Slides** (giấy phép dùng thử miễn phí đủ cho việc thử nghiệm). +- Kiến thức cơ bản về cú pháp C# – nếu bạn có thể viết `Console.WriteLine`, bạn đã sẵn sàng. + +Không cần COM interop bổ sung, không cần cài Office trên máy chủ, và không cần sao chép‑dán thủ công các hình ảnh. Mọi thứ đều được xử lý bằng mã. + +--- + +## Tạo PowerPoint từ Excel – Tải Workbook và Đặt tùy chọn xuất + +Điều đầu tiên chúng ta làm là mở file Excel và chỉ cho Aspose.Cells cách chúng ta muốn sheet được render. Đối tượng `ImageOrPrintOptions` là nơi phép thuật diễn ra: chúng ta bật `ExportShapes` và `ExportEditableTextBoxes` để bất kỳ shape nào (bao gồm biểu đồ) trở thành một phần của slide **và** vẫn có thể chỉnh sửa sau khi chuyển đổi. + +```csharp +using Aspose.Cells; +using Aspose.Slides; + +// 1️⃣ Load the Excel workbook +string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; +Workbook workbook = new Workbook(excelPath); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first sheet + +// 2️⃣ Configure image export – keep shapes editable +ImageOrPrintOptions imageOptions = new ImageOrPrintOptions +{ + OnePagePerSheet = true, // Export the whole sheet as one slide + ExportShapes = true, // Include shapes (charts, drawings) + ExportEditableTextBoxes = true // Make text boxes editable in PPTX +}; +``` + +**Tại sao phải bật các flag này?** +- `OnePagePerSheet` ngăn sheet bị chia thành nhiều slide – bạn sẽ nhận được một hình ảnh duy nhất, kích thước đầy đủ. +- `ExportShapes` yêu cầu Aspose.Cells rasterize biểu đồ *và* các shape vector, giữ nguyên giao diện của chúng. +- `ExportEditableTextBoxes` là “sốt bí mật” cho phép bạn double‑click vào một textbox trong PowerPoint và chỉnh sửa nội dung mà không cần mở lại Excel. + +> **Mẹo chuyên nghiệp:** Nếu bạn chỉ cần một hình ảnh tĩnh của biểu đồ, hãy đặt `ExportShapes = false` và sử dụng phương thức `ExportExcelChartAsPicture` sau này (xem phần cuối). + +--- + +## Chuyển đổi Excel sang PowerPoint – Tạo hình ảnh từ Worksheet + +Khi các tùy chọn đã sẵn sàng, chúng ta chuyển worksheet thành một đối tượng `System.Drawing.Image`. Lớp `WorksheetToImageConverter` thực hiện công việc nặng, áp dụng các thiết lập mà chúng ta vừa định nghĩa. + +```csharp +// 3️⃣ Convert the worksheet to an image using the options above +WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); +System.Drawing.Image sheetImage = converter.ConvertToImage(0, imageOptions); +``` + +Tham số `0` chỉ ra trang đầu tiên (chỉ có một trang vì `OnePagePerSheet`). `sheetImage` kết quả giữ nguyên DPI gốc, vì vậy slide của bạn sẽ không bị mờ ngay cả trên màn hình độ phân giải cao. + +--- + +## Lưu bản trình chiếu dưới dạng PPTX – Chèn hình ảnh vào Slide + +Bây giờ chúng ta tạo một file PowerPoint mới, thêm một slide và đặt bitmap lên đó. Aspose.Slides coi hình ảnh này như một shape *picture frame*, bạn có thể sau này thay đổi kích thước hoặc di chuyển nó giống như bất kỳ đối tượng PowerPoint gốc nào. + +```csharp +// 4️⃣ Create a new PowerPoint presentation +Presentation presentation = new Presentation(); +ISlide slide = presentation.Slides[0]; // The default blank slide + +// Add the Excel‑derived image as a picture frame +slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, // Simple rectangle container + 0, 0, // Top‑left corner (0,0) + sheetImage.Width, // Width of the picture + sheetImage.Height, // Height of the picture + sheetImage); // The bitmap we generated +``` + +> **Nếu hình ảnh lớn hơn kích thước slide thì sao?** +> PowerPoint sẽ tự động cắt bỏ bất kỳ phần nào vượt quá kích thước slide. Một cách khắc phục nhanh là thu phóng hình ảnh trước khi chèn: + +```csharp +float scale = Math.Min(presentation.SlideSize.Size.Width / (float)sheetImage.Width, + presentation.SlideSize.Size.Height / (float)sheetImage.Height); +int newWidth = (int)(sheetImage.Width * scale); +int newHeight = (int)(sheetImage.Height * scale); +``` + +Sau đó bạn có thể truyền `newWidth` và `newHeight` vào `AddPictureFrame`. + +--- + +## Xuất Worksheet dưới dạng Hình ảnh – Lưu file PPTX + +Cuối cùng chúng ta ghi bản trình chiếu ra đĩa. Cờ `SaveFormat.Pptx` đảm bảo định dạng OpenXML hiện đại, hoạt động trên mọi phiên bản PowerPoint gần đây. + +```csharp +// 5️⃣ Save the presentation as a PPTX file +string pptxPath = "YOUR_DIRECTORY/Result.pptx"; +presentation.Save(pptxPath, SaveFormat.Pptx); +``` + +Khi bạn mở `Result.pptx` sẽ thấy một slide duy nhất trông giống hệt sheet Excel, nhưng vẫn có thể click vào bất kỳ textbox nào và chỉnh sửa nội dung trực tiếp trong PowerPoint. + +--- + +## Xuất biểu đồ Excel dưới dạng Hình ảnh – Khi hình raster được ưu tiên + +Đôi khi bạn không cần các shape có thể chỉnh sửa; một PNG chất lượng cao của biểu đồ là đủ. Aspose.Cells có thể xuất một biểu đồ cụ thể ra hình ảnh mà không cần chuyển đổi toàn bộ sheet: + +```csharp +// Example: Export the first chart on the sheet as a PNG +int chartIndex = 0; // Adjust if you have multiple charts +Chart chart = worksheet.Charts[chartIndex]; +ImageOrPrintOptions chartOptions = new ImageOrPrintOptions +{ + ImageFormat = ImageFormat.Png, + OnePagePerSheet = false +}; +chart.ToImage("chart.png", chartOptions); +``` + +Sau đó bạn có thể nhúng `chart.png` vào slide theo cách chúng ta đã chèn `sheetImage`. Cách này giảm kích thước file PPTX và hữu ích khi dữ liệu xung quanh không cần thiết trên slide. + +--- + +## Những lỗi thường gặp & Cách tránh + +| Vấn đề | Nguyên nhân | Giải pháp | +|-------|------------|-----------| +| **Văn bản bị mờ** | Xuất ở DPI thấp (mặc định 96). | Đặt `imageOptions.Dpi = 300;` trước khi chuyển đổi. | +| **Shape biến mất** | `ExportShapes` để `false`. | Đảm bảo `ExportShapes = true` khi bạn cần đồ họa có thể chỉnh sửa. | +| **Kích thước slide không khớp** | Hình ảnh lớn hơn kích thước slide. | Thu phóng hình ảnh (xem đoạn mã) hoặc thay đổi kích thước slide qua `presentation.SlideSize`. | +| **Lỗi giấy phép** | Sử dụng phiên bản dùng thử mà chưa kích hoạt đúng. | Gọi `License license = new License(); license.SetLicense("Aspose.Total.lic");` ngay trong `Main`. | + +--- + +## Ví dụ hoàn chỉnh (Sẵn sàng sao chép‑dán) + +Dưới đây là toàn bộ chương trình, sẵn sàng đưa vào một dự án console mới. Thay `YOUR_DIRECTORY` bằng thư mục chứa file Excel của bạn. + +```csharp +using System; +using Aspose.Cells; +using Aspose.Slides; +using System.Drawing; + +namespace ExcelToPowerPointDemo +{ + class Program + { + static void Main(string[] args) + { + // ----------------------------------------------------------------- + // 1️⃣ Load the Excel workbook + // ----------------------------------------------------------------- + string excelPath = "YOUR_DIRECTORY/ShapesDemo.xlsx"; + Workbook workbook = new Workbook(excelPath); + Worksheet worksheet = workbook.Worksheets[0]; + + // ----------------------------------------------------------------- + // 2️⃣ Set up export options – keep shapes editable + // ----------------------------------------------------------------- + ImageOrPrintOptions imageOptions = new ImageOrPrintOptions + { + OnePagePerSheet = true, + ExportShapes = true, + ExportEditableTextBoxes = true, + Dpi = 300 // High‑resolution output + }; + + // ----------------------------------------------------------------- + // 3️⃣ Convert worksheet to an image + // ----------------------------------------------------------------- + WorksheetToImageConverter converter = new WorksheetToImageConverter(worksheet); + Image sheetImage = converter.ConvertToImage(0, imageOptions); + + // ----------------------------------------------------------------- + // 4️⃣ Create PowerPoint and add the image as a slide + // ----------------------------------------------------------------- + Presentation presentation = new Presentation(); + ISlide slide = presentation.Slides[0]; + slide.Shapes.AddPictureFrame( + ShapeType.Rectangle, + 0, 0, + sheetImage.Width, + sheetImage.Height, + sheetImage); + + // ----------------------------------------------------------------- + // 5️⃣ Save the PPTX file + // ----------------------------------------------------------------- + string pptxPath = "YOUR_DIRECTORY/Result.pptx"; + presentation.Save(pptxPath, SaveFormat.Pptx); + + Console.WriteLine("✅ PowerPoint created successfully at: " + pptxPath); + } + } +} +``` + +**Kết quả mong đợi:** +Khi chạy chương trình sẽ in ra `✅ PowerPoint created successfully at: YOUR_DIRECTORY/Result.pptx`. Mở file PPTX sẽ thấy một slide duy nhất phản ánh đúng sheet Excel gốc, với các hộp văn bản có thể chỉnh sửa. + +--- + +## Tổng kết & Các bước tiếp theo + +Bạn đã biết cách **tạo PowerPoint từ Excel** bằng các API mạnh mẽ của Aspose, cách **xuất worksheet dưới dạng hình ảnh**, và cách **lưu bản trình chiếu dưới dạng PPTX** đồng thời giữ được khả năng chỉnh sửa. Mẫu này cũng áp dụng cho workbook đa sheet — chỉ cần lặp qua `workbook.Worksheets` và thêm một slide mới cho mỗi sheet. + +**Bạn có thể khám phá tiếp gì?** + +- **Chuyển đổi hàng loạt:** Duyệt qua một thư mục chứa các file Excel và tạo một bộ slide cho mỗi file. +- **Bố cục động:** Sử dụng `slide.LayoutSlide` để áp dụng các mẫu PowerPoint đã thiết kế sẵn. +- **Xuất chỉ biểu đồ:** Kết hợp đoạn mã “Export Excel chart as picture” với các placeholder trên slide để có bộ deck gọn hơn. +- **Tùy chỉnh nâng cao:** Áp dụng nền slide tùy chỉnh, chuyển động, hoặc animation qua Aspose.Slides. + +Hãy thoải mái thử nghiệm — thay đổi DPI, đổi `ShapeType.Ellipse` thành một picture frame dạng vòng tròn, hoặc thậm chí nhúng nhiều hình ảnh vào một slide. Bầu trời là giới hạn khi bạn có quyền kiểm soát lập trình + +{{< /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/vietnamese/net/document-properties/_index.md b/cells/vietnamese/net/document-properties/_index.md index 5116804311..42095f0a3a 100644 --- a/cells/vietnamese/net/document-properties/_index.md +++ b/cells/vietnamese/net/document-properties/_index.md @@ -20,7 +20,7 @@ Thuộc tính tài liệu trong Excel hoạt động giống như siêu dữ liệu về tệp của bạn. Hãy hình dung thế này: mỗi tệp Excel có thẻ nhận dạng riêng chứa thông tin quan trọng như tiêu đề, tác giả và từ khóa. Khi sử dụng Aspose.Cells cho .NET, việc truy cập và quản lý các thuộc tính này trở nên dễ dàng. Hãy nhớ rằng, các thuộc tính này không chỉ giúp bạn sắp xếp các tệp của mình mà còn có thể tăng cường khả năng tìm kiếm tài liệu của bạn. Bạn có tò mò không? Hãy cùng tìm hiểu hướng dẫn nhé! ## Truy cập Thuộc tính Tài liệu -Đầu tiên, chúng ta hãy nói về việc truy cập các thuộc tính tài liệu trong .NET. Đây là điểm khởi đầu của bạn. Hãy tưởng tượng bạn muốn biết ai là tác giả của một bảng tính cụ thể—sử dụng Aspose.Cells, bạn có thể lấy thông tin này một cách nhanh chóng. [Truy cập Thuộc tính Tài liệu trong .NET](./accessing-document-properties/) tutorial là hướng dẫn dành cho bạn, cung cấp hướng dẫn thân thiện với người dùng để tìm những viên ngọc ẩn này trong các tệp của bạn. Bạn sẽ học cách lấy các thuộc tính như ngày tạo và ngày sửa đổi cuối cùng, và tin tôi đi, nó đơn giản hơn cả sáng Chủ Nhật! +Đầu tiên, chúng ta hãy nói về việc truy cập các thuộc tính tài liệu trong .NET. Đây là điểm khởi đầu của bạn. Hãy tưởng tượng bạn muốn biết ai là tác giả của một bảng tính cụ thể—sử dụng Aspose.Cells, bạn có thể lấy thông tin này một cách nhanh chóng. [Truy cập Thuộc Tính Tài liệu trong .NET](./accessing-document-properties/) tutorial là hướng dẫn dành cho bạn, cung cấp hướng dẫn thân thiện với người dùng để tìm những viên ngọc ẩn này trong các tệp của bạn. Bạn sẽ học cách lấy các thuộc tính như ngày tạo và ngày sửa đổi cuối cùng, và tin tôi đi, nó đơn giản hơn cả sáng Chủ Nhật! ## Thêm Thuộc tính Tài liệu Bây giờ bạn có thể truy cập vào các thuộc tính hiện có, vậy nếu bạn muốn thêm thuộc tính của riêng mình thì sao? Đây chính là lúc sự sáng tạo xuất hiện! Bạn có thể muốn gắn thẻ các tệp Excel của mình bằng tên dự án hoặc các chi tiết có liên quan khác. Bằng cách làm theo [Thêm Thuộc tính Tài liệu trong .NET](./adding-document-properties/) hướng dẫn, bạn sẽ khám phá cách làm phong phú tài liệu của mình bằng các thuộc tính tùy chỉnh. Giống như việc mang đến cho các tệp của bạn một nét cá nhân! Hãy nghĩ về việc trang trí nhà của bạn; bạn càng thêm nhiều nét độc đáo, nó càng phản ánh rõ cá tính của bạn. @@ -29,12 +29,14 @@ Bây giờ bạn có thể truy cập vào các thuộc tính hiện có, vậy Bạn đã bao giờ cần thông tin cụ thể từ một tệp Excel và cảm thấy lạc lõng giữa vô số trang tính chưa? [Truy cập giá trị của thuộc tính tài liệu trong .NET](./accessing-value-of-document-properties/) hướng dẫn giải quyết vấn đề này bằng cách hướng dẫn bạn cách trích xuất hiệu quả những thông tin giá trị này. Bạn sẽ được hướng dẫn qua các phương pháp truy xuất các giá trị thuộc tính cụ thể để bạn không phải đào bới dữ liệu theo cách thủ công. Hướng dẫn này hoàn hảo cho những lúc bạn đang vội hoặc phải xử lý nhiều tệp—hãy nghĩ đến việc có một trợ lý cá nhân biết chính xác vị trí tìm dữ liệu trong tài liệu của bạn. ## Hướng dẫn Thuộc tính Tài liệu -### [Truy cập Thuộc tính Tài liệu trong .NET](./accessing-document-properties/) +### [Truy cập Thuộc Tính Tài liệu trong .NET](./accessing-document-properties/) Tìm hiểu cách truy cập các thuộc tính tài liệu trong Excel bằng Aspose.Cells cho .NET. Làm theo hướng dẫn từng bước của chúng tôi để thao tác Excel hiệu quả. ### [Truy cập giá trị của thuộc tính tài liệu trong .NET](./accessing-value-of-document-properties/) Tìm hiểu cách truy cập thuộc tính tài liệu trong Excel bằng Aspose.Cells cho .NET với hướng dẫn từng bước của chúng tôi. Quản lý bảng tính của bạn một cách hiệu quả. -### [Thêm Thuộc tính Tài liệu trong .NET](./adding-document-properties/) +### [Thêm Thuộc Tính Tài liệu trong .NET](./adding-document-properties/) Tìm hiểu cách thêm thuộc tính tài liệu vào Excel bằng Aspose.Cells cho .NET với hướng dẫn từng bước chi tiết này. +### [Cách Lưu XLSB với Thuộc Tính Tùy Chỉnh trong C# – Hướng Dẫn Từng Bước](./how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/) +Hướng dẫn chi tiết cách lưu tệp XLSB kèm thuộc tính tùy chỉnh bằng Aspose.Cells cho .NET trong C#. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/vietnamese/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md b/cells/vietnamese/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md new file mode 100644 index 0000000000..4de5053598 --- /dev/null +++ b/cells/vietnamese/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/_index.md @@ -0,0 +1,232 @@ +--- +category: general +date: 2026-03-30 +description: Học cách lưu tệp XLSB trong C# khi thêm thuộc tính tùy chỉnh, đọc lại + và thành thạo việc lưu workbook dưới dạng XLSB bằng Aspose.Cells. Bao gồm toàn bộ + mã nguồn. +draft: false +keywords: +- how to save xlsb +- add custom property +- how to add property +- how to read property +- save workbook as xlsb +language: vi +og_description: Cách lưu XLSB trong C#? Hướng dẫn này cho bạn biết cách thêm thuộc + tính tùy chỉnh, đọc lại và lưu sổ làm việc dưới dạng XLSB bằng Aspose.Cells. +og_title: Cách lưu XLSB với các thuộc tính tùy chỉnh trong C# – Hướng dẫn đầy đủ +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Cách Lưu XLSB với Thuộc Tính Tùy Chỉnh trong C# – Hướng Dẫn Từng Bước +url: /vi/net/document-properties/how-to-save-xlsb-with-custom-properties-in-c-step-by-step-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cách Lưu XLSB với Thuộc Tính Tùy Chỉnh trong C# – Hướng Dẫn Từng Bước + +Bạn đã bao giờ tự hỏi **cách lưu XLSB** trong khi vẫn giữ các siêu dữ liệu bổ sung gắn vào một worksheet chưa? Bạn không phải là người duy nhất. Trong nhiều kịch bản doanh nghiệp, bạn cần một tệp Excel nhị phân vẫn chứa các cặp key/value của riêng bạn — ví dụ như ID hợp đồng, cờ xử lý, hoặc thẻ phiên bản. + +Tin tốt là Aspose.Cells làm cho việc này trở nên đơn giản. Trong hướng dẫn này, bạn sẽ thấy cách thêm một thuộc tính tùy chỉnh, lưu lại, và sau đó đọc lại, tất cả trong khi **lưu workbook dưới dạng XLSB**. Không có những tham chiếu mơ hồ, chỉ có một ví dụ hoàn chỉnh, có thể chạy ngay mà bạn có thể đưa vào dự án ngay hôm nay. + +## Những Điều Bạn Sẽ Nhận Được + +- Một tệp `.xlsb` mới được tạo từ đầu. +- Khả năng **thêm thuộc tính tùy chỉnh** vào một worksheet. +- Mã minh họa **cách đọc thuộc tính** sau khi tệp được tải lại. +- Các mẹo về những khó khăn có thể gặp khi **lưu workbook dưới dạng XLSB**. + +> **Yêu cầu trước:** .NET 6+ (hoặc .NET Framework 4.6+), Visual Studio (hoặc bất kỳ IDE C# nào), và thư viện Aspose.Cells for .NET được cài đặt qua NuGet. Không cần gì khác. + +--- + +## Bước 1: Thiết Lập Dự Án và Tạo Workbook Mới + +Đầu tiên, hãy tạo một đối tượng workbook sạch sẽ. + +```csharp +using Aspose.Cells; +using System; + +// Initialize a new workbook; this will be an in‑memory Excel file. +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0) – it’s created automatically. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +*Lý do quan trọng:* `Workbook` là điểm vào cho mọi thao tác trong Aspose.Cells. Bắt đầu với một instance mới hoàn toàn giúp bạn tránh các trạng thái ẩn có thể làm hỏng siêu dữ liệu tùy chỉnh sau này. + +--- + +## Bước 2: **Thêm Thuộc Tính Tùy Chỉnh** vào Worksheet + +Bây giờ chúng ta sẽ gắn một cặp key/value chỉ tồn tại trên sheet này. + +```csharp +// Add a user‑defined property called "MyProperty" with the value "CustomValue". +worksheet.CustomProperties.Add("MyProperty", "CustomValue"); +``` + +> **Mẹo chuyên nghiệp:** Tên thuộc tính phân biệt chữ hoa/chữ thường. Nếu sau này bạn cố gắng lấy `"myproperty"` thì sẽ nhận được `KeyNotFoundException`. Hãy tuân theo một quy ước đặt tên — camelCase hoặc PascalCase — ngay từ đầu. + +--- + +## Bước 3: **Lưu Workbook dưới dạng XLSB** – Lưu Trữ Thuộc Tính + +Phép màu xảy ra khi bạn ghi workbook ra định dạng XLSB nhị phân. + +```csharp +// Define the output path. Adjust the folder to something writable on your machine. +string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + +// Save the workbook; the custom property travels with the file. +workbook.Save(outputPath, SaveFormat.Xlsb); +``` + +*Bạn đang thực sự làm gì:* Enum `SaveFormat.Xlsb` báo cho Aspose.Cells tạo ra một tệp Excel nhị phân (mở nhanh hơn, kích thước ổ đĩa nhỏ hơn). Tất cả các thuộc tính tùy chỉnh ở mức worksheet sẽ được tuần tự hoá tự động — không cần bước nào thêm. + +--- + +## Bước 4: Tải Lại Tệp và **Cách Đọc Thuộc Tính** + +Hãy chứng minh thuộc tính vẫn tồn tại sau vòng quay. + +```csharp +// Load the just‑saved XLSB file back into memory. +Workbook reloadedWorkbook = new Workbook(outputPath); + +// Access the same worksheet (index 0) and fetch the property value. +string customValue = reloadedWorkbook.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); +``` + +Nếu mọi thứ diễn ra suôn sẻ, `customValue` sẽ chứa `"CustomValue"`. + +--- + +## Bước 5: Xác Nhận Kết Quả – In Nhanh trên Console + +Một kiểm tra nhanh giúp trong quá trình phát triển. + +```csharp +Console.WriteLine($"Custom property value: {customValue}"); +``` + +Chạy chương trình sẽ in ra: + +``` +Custom property value: CustomValue +``` + +Nhìn thấy dòng này có nghĩa là bạn đã thành công trong việc **lưu XLSB**, **thêm thuộc tính tùy chỉnh**, và **đọc thuộc tính** — tất cả trong một luồng gọn gàng. + +--- + +## Ví Dụ Hoàn Chỉnh (Sẵn Sàng Sao Chép) + +Dưới đây là toàn bộ chương trình. Dán vào một Console App mới, nhấn **F5**, và quan sát console xác nhận giá trị thuộc tính. + +```csharp +using Aspose.Cells; +using System; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // 1️⃣ Create a new workbook and get its first sheet + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // 2️⃣ Add a custom property (key/value) to the sheet + // ------------------------------------------------- + worksheet.CustomProperties.Add("MyProperty", "CustomValue"); + + // ------------------------------------------------- + // 3️⃣ Save the workbook as XLSB – the property is kept + // ------------------------------------------------- + string outputPath = @"C:\Temp\WithCustomProp.xlsb"; + workbook.Save(outputPath, SaveFormat.Xlsb); + + // ------------------------------------------------- + // 4️⃣ Reload the saved file to demonstrate persistence + // ------------------------------------------------- + Workbook reloaded = new Workbook(outputPath); + + // ------------------------------------------------- + // 5️⃣ Retrieve the custom property's value + // ------------------------------------------------- + string customValue = reloaded.Worksheets[0] + .CustomProperties["MyProperty"].Value.ToString(); + + // ------------------------------------------------- + // 6️⃣ Display the retrieved value (optional) + // ------------------------------------------------- + Console.WriteLine($"Custom property value: {customValue}"); + } +} +``` + +> **Nhắc nhở:** Thay đổi `outputPath` thành thư mục mà bạn có quyền ghi. Nếu bạn đang dùng Linux/macOS, hãy dùng đường dẫn như `"/tmp/WithCustomProp.xlsb"`. + +--- + +## Câu Hỏi Thường Gặp & Các Trường Hợp Cạnh + +### Nếu thuộc tính đã tồn tại thì sao? +Gọi `Add` với một key đã có sẽ ném `ArgumentException`. Hãy dùng `ContainsKey` hoặc bọc lời gọi trong `try/catch` nếu bạn không chắc. + +```csharp +if (!worksheet.CustomProperties.ContainsKey("MyProperty")) +{ + worksheet.CustomProperties.Add("MyProperty", "AnotherValue"); +} +``` + +### Tôi có thể lưu giá trị không phải kiểu string không? +Chắc chắn rồi. Thuộc tính `Value` chấp nhận bất kỳ `object` nào. Đối với số, ngày tháng, hoặc boolean, chỉ cần truyền kiểu tương ứng — Aspose.Cells sẽ tự xử lý chuyển đổi khi bạn đọc lại. + +### Thuộc tính có tồn tại khi tôi chuyển sang XLSX không? +Có. Các thuộc tính tùy chỉnh là một phần của biểu diễn XML của worksheet, vì vậy chúng được giữ lại trong các định dạng XLSX, XLS và XLSB. + +### **Cách thêm thuộc tính** vào nhiều sheet? +Duyệt qua collection `Worksheets` và gọi `CustomProperties.Add` cho mỗi sheet bạn cần. + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + ws.CustomProperties.Add("ExportedBy", "MyApp"); +} +``` + +### Mẹo hiệu năng khi **lưu workbook dưới dạng XLSB** hàng loạt +Nếu bạn tạo hàng trăm tệp, hãy tái sử dụng cùng một instance `Workbook` và gọi `Clear` sau mỗi lần lưu để giải phóng bộ nhớ. Ngoài ra, đặt `Workbook.Settings.CalculateFormulaOnOpen = false` nếu bạn không cần tính toán công thức khi mở. + +--- + +## Kết Luận + +Bây giờ bạn đã biết **cách lưu XLSB** trong C# đồng thời nhúng và sau này truy xuất một thuộc tính tùy chỉnh bằng Aspose.Cells. Giải pháp hoàn chỉnh — tạo workbook, thêm thuộc tính, lưu lại bằng **save workbook as XLSB**, tải lại và đọc giá trị — chỉ dưới 50 dòng mã. + +Từ đây bạn có thể khám phá: + +- Thêm nhiều thuộc tính tùy chỉnh cho mỗi sheet. +- Lưu các đối tượng phức tạp dưới dạng chuỗi JSON. +- Mã hoá tệp XLSB để tăng bảo mật. + +Hãy thử các ý tưởng trên, và bạn sẽ nhanh chóng trở thành người chuyên trách tự động hoá Excel trong đội ngũ. Có câu hỏi hoặc tình huống khó khăn? Để lại bình luận bên dưới, và chúc bạn lập trình vui vẻ! + +![How to save XLSB with custom property](/images/how-to-save-xlsb.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/vietnamese/net/excel-copy-worksheet/_index.md b/cells/vietnamese/net/excel-copy-worksheet/_index.md index 308de0b4e8..bb3d6a0f75 100644 --- a/cells/vietnamese/net/excel-copy-worksheet/_index.md +++ b/cells/vietnamese/net/excel-copy-worksheet/_index.md @@ -42,6 +42,7 @@ Aspose.Cells for .NET cung cấp chức năng mạnh mẽ để thao tác các t | [Excel Sao chép bảng tính](./excel-copy-worksheet/) | Tìm hiểu cách sao chép bảng tính Excel bằng Aspose.Cells cho .NET với hướng dẫn từng bước dễ làm theo này. Lý tưởng cho các nhà phát triển .NET muốn tự động hóa các tác vụ Excel. | | [Excel Sao chép các trang tính giữa các sổ làm việc](./excel-copy-worksheets-between-workbooks/) | Tìm hiểu cách sao chép các bảng tính giữa các sổ làm việc Excel bằng Aspose.Cells cho .NET. Hướng dẫn từng bước với các ví dụ mã để hợp lý hóa việc quản lý bảng tính của bạn. | | [Bảng tính di chuyển Excel](./excel-move-worksheet/) | Học cách di chuyển các trang tính trong Excel bằng Aspose.Cells cho .NET trong hướng dẫn từng bước của chúng tôi. Làm chủ nghệ thuật lập trình Excel. | +| [Cách sao chép Worksheet trong C# với Aspose.Cells – Hướng dẫn đầy đủ](./how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/) | Tìm hiểu cách sao chép worksheet trong C# bằng Aspose.Cells qua hướng dẫn chi tiết, ví dụ thực tế và mẹo tối ưu. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/vietnamese/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md b/cells/vietnamese/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md new file mode 100644 index 0000000000..4d71a2762b --- /dev/null +++ b/cells/vietnamese/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/_index.md @@ -0,0 +1,288 @@ +--- +category: general +date: 2026-03-30 +description: Cách sao chép worksheet trong C# bằng Aspose.Cells – hướng dẫn từng bước + bao gồm sao chép phạm vi ô, sao chép cột giữa các sheet, sao chép bảng pivot của + worksheet và thêm mã tạo worksheet mới. +draft: false +keywords: +- how to copy worksheet +- copy cell range +- copy columns between sheets +- copy worksheet pivot table +- add new worksheet code +language: vi +og_description: Tìm hiểu cách sao chép worksheet trong C# với Aspose.Cells. Hướng + dẫn này chỉ ra cách sao chép phạm vi ô, bảo tồn bảng pivot, sao chép cột giữa các + sheet và thêm mã tạo worksheet mới. +og_title: Cách sao chép Worksheet trong C# – Hướng dẫn đầy đủ Aspose.Cells +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Cách sao chép Worksheet trong C# với Aspose.Cells – Hướng dẫn toàn diện +url: /vi/net/excel-copy-worksheet/how-to-copy-worksheet-in-c-with-aspose-cells-complete-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cách Sao Chép Worksheet trong C# với Aspose.Cells – Hướng Dẫn Toàn Diện + +Bạn đã bao giờ tự hỏi **cách sao chép worksheet** trong C# mà không mất bất kỳ pivot table hay công thức nào chưa? Bạn không phải là người duy nhất—nhiều nhà phát triển gặp khó khăn khi cần nhân bản một sheet mà vẫn giữ nguyên mọi thứ. Trong tutorial này, chúng ta sẽ đi qua một giải pháp thực tế, từ đầu đến cuối, không chỉ sao chép dữ liệu mà còn bảo tồn **copy worksheet pivot table**, xử lý **copy cell range**, và hiển thị **add new worksheet code** mà bạn cần. + +Chúng ta sẽ bao quát toàn bộ quá trình từ việc tải workbook nguồn tới lưu file đích, để bạn có thể sao chép cột giữa các sheet, bảo tồn các đối tượng, và giữ cho code của mình sạch sẽ. Không có những tham chiếu mơ hồ, chỉ có một ví dụ hoàn chỉnh, có thể chạy ngay trong dự án của bạn. + +## Những Điều Tutorial Này Bao Quát + +- Tải một file Excel hiện có bằng Aspose.Cells +- Sử dụng **add new worksheet code** để tạo sheet đích +- Định nghĩa một **copy cell range** bao gồm pivot table +- Cấu hình **CopyOptions** để giữ nguyên biểu đồ, công thức và pivot table +- Thực hiện **copy columns between sheets** với độ chính xác theo hàng +- Lưu kết quả và xác minh rằng worksheet đã được sao chép đúng cách + +Kết thúc hướng dẫn, bạn sẽ tự tin trả lời câu hỏi “cách sao chép worksheet” dù đang tự động hoá báo cáo hay xây dựng UI dựa trên bảng tính. + +--- + +## Cách Sao Chép Worksheet – Tổng Quan + +Trước khi đi vào code, hãy phác thảo luồng công việc ở mức cao. Nghĩ nó như một công thức nấu ăn: + +1. **Load** workbook nguồn (`Source.xlsx`). +2. **Add** một worksheet mới để chứa bản sao (`add new worksheet code`). +3. **Define** vùng bạn muốn nhân bản (`copy cell range`). +4. **Configure** các tùy chọn sao chép để pivot table vẫn tồn tại (`copy worksheet pivot table`). +5. **Copy** các hàng và cột (`copy columns between sheets`). +6. **Save** workbook mới (`Destination.xlsx`). + +Đó là tất cả—sáu bước, không có phép màu. Mỗi bước sẽ được giải thích dưới đây kèm theo đoạn code và lý do thực hiện. + +--- + +## Bước 1 – Tải Workbook Nguồn + +Điều đầu tiên cần làm: tạo một thể hiện `Workbook` trỏ tới file bạn muốn sao chép. Bước này quan trọng vì Aspose.Cells làm việc trực tiếp với hệ thống file, không phải giao diện Office. + +```csharp +using Aspose.Cells; + +// Path to the original file +string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; +string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + +// Load the workbook – this is the starting point for how to copy worksheet +Workbook workbook = new Workbook(sourcePath); +``` + +*Lý do quan trọng:* Việc tải file tạo ra một biểu diễn trong bộ nhớ của mọi sheet, ô và đối tượng. Nếu không có bước này, sẽ không có gì để sao chép và bất kỳ cố gắng `add new worksheet code` nào sau này sẽ thất bại vì dữ liệu nguồn không tồn tại. + +--- + +## Bước 2 – Thêm Worksheet Mới (add new worksheet code) + +Bây giờ chúng ta cần một nơi để dán dữ liệu đã sao chép. Đây là lúc **add new worksheet code** tỏa sáng. Bạn có thể đặt tên sheet tùy ý; ở đây chúng ta gọi nó là `"Copy"`. + +```csharp +// Grab the first worksheet (the one we want to copy) +Worksheet sourceSheet = workbook.Worksheets[0]; + +// Add a fresh worksheet to receive the copy +Worksheet copySheet = workbook.Worksheets.Add("Copy"); +``` + +*Mẹo chuyên nghiệp:* Nếu bạn dự định sao chép nhiều sheet, hãy gọi `Worksheets.Add` trong một vòng lặp và đặt tên duy nhất cho mỗi sheet. Như vậy bạn tránh được xung đột tên và giữ workbook gọn gàng. + +--- + +## Bước 3 – Định Nghĩa Copy Cell Range + +Một **copy cell range** cho Aspose.Cells biết chính xác những hàng và cột nào cần nhân bản. Trong nhiều trường hợp thực tế, phạm vi này bao gồm một pivot table, vì vậy chúng ta phải rất chính xác. + +```csharp +// Define the area that contains the pivot table (A1:G20) +CellArea sourceRange = new CellArea +{ + StartRow = 0, // Row 1 (zero‑based) + StartColumn = 0, // Column A + EndRow = 19, // Row 20 + EndColumn = 6 // Column G +}; + +// Destination range – we start at the same top‑left corner +CellArea destinationRange = new CellArea +{ + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 +}; +``` + +*Tại sao cần bước này:* Bằng cách chỉ định rõ phạm vi, bạn tránh việc sao chép toàn bộ sheet (điều này có thể lãng phí) và đảm bảo pivot table nằm trong khu vực đã sao chép. Đây là cốt lõi của **how to copy worksheet** khi bạn chỉ cần một phần của sheet. + +--- + +## Bước 4 – Cài Đặt Copy Options (preserve copy worksheet pivot table) + +Aspose.Cells cung cấp một đối tượng `CopyOptions` để kiểm soát những gì sẽ được dán. Để giữ pivot table, biểu đồ và công thức, chúng ta đặt `PasteType.All` và bật `PasteSpecial`. + +```csharp +CopyOptions copyOptions = new CopyOptions +{ + PasteType = PasteType.All, // Copy everything: values, formats, objects + PasteSpecial = true // Enable special paste to retain pivot tables +}; +``` + +*Giải thích:* `PasteType.All` là tùy chọn bao quát nhất, trong khi `PasteSpecial` yêu cầu engine xử lý đúng các đối tượng phức tạp—như pivot table. Bỏ qua bước này là một sai lầm phổ biến; sheet sao chép sẽ mất các tính năng tương tác. + +--- + +## Bước 5 – Sao Chép Hàng và Cột (copy columns between sheets) + +Tiếp theo là công việc nặng: thực sự di chuyển dữ liệu. Chúng ta sẽ dùng `CopyRows` và `CopyColumns` để thực hiện **copy columns between sheets**. Thực hiện cả hai đảm bảo rằng các ô hợp nhất và độ rộng cột được bảo tồn. + +```csharp +// Copy rows from the source to the destination sheet +sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + +// Copy columns from the source to the destination sheet +sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); +``` + +*Điều đang xảy ra:* `CopyRows` di chuyển dữ liệu theo hàng, trong khi `CopyColumns` làm tương tự theo cột. Chạy cả hai đảm bảo khối hình chữ nhật đầy đủ được sao chép, điều này rất quan trọng khi bạn cần **copy columns between sheets** có độ rộng cột khác nhau hoặc có cột ẩn. + +--- + +## Bước 6 – Lưu Workbook + +Cuối cùng, ghi các thay đổi ra đĩa. Bước này hoàn thiện quy trình **how to copy worksheet**. + +```csharp +// Save the workbook with the newly copied sheet +workbook.Save(destinationPath); +``` + +*Mẹo kiểm tra:* Mở `Destination.xlsx` và xác nhận rằng sheet `"Copy"` trông giống hệt bản gốc, pivot table hoạt động, và độ rộng cột khớp. Nếu có gì không ổn, hãy xem lại cài đặt `CopyOptions`. + +--- + +## Các Trường Hợp Đặc Biệt & Biến Thể Thông Thường + +### Sao Chép Nhiều Worksheet + +Nếu cần nhân bản nhiều sheet, hãy bao bọc logic trên trong một vòng `foreach`: + +```csharp +foreach (Worksheet ws in workbook.Worksheets) +{ + Worksheet newWs = workbook.Worksheets.Add(ws.Name + "_Copy"); + // Re‑use sourceRange/destinationRange or calculate per sheet + // Then call CopyRows/CopyColumns as shown earlier +} +``` + +### Bảo Tồn Công Thức Khi Đổi Workbook + +Khi workbook nguồn và đích có các named range khác nhau, đặt `copyOptions` thành `PasteType.Formulas` cộng với `All`: + +```csharp +copyOptions.PasteType = PasteType.All | PasteType.Formulas; +``` + +### Phạm Vi Lớn và Hiệu Suất + +Đối với dữ liệu khổng lồ (hàng hàng trăm ngàn), cân nhắc chỉ dùng `CopyRows` và bỏ qua `CopyColumns` nếu độ rộng cột không quan trọng. Điều này có thể tiết kiệm vài giây. + +--- + +## Ví Dụ Hoàn Chỉnh + +Dưới đây là chương trình đầy đủ, sẵn sàng chạy, thể hiện mọi gì chúng ta đã thảo luận. Dán vào một console app, điều chỉnh đường dẫn file, và nhấn **F5**. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // ---------- Step 1: Load the source workbook ---------- + string sourcePath = "YOUR_DIRECTORY/Source.xlsx"; + string destinationPath = "YOUR_DIRECTORY/Destination.xlsx"; + Workbook workbook = new Workbook(sourcePath); + + // ---------- Step 2: Add a new worksheet (add new worksheet code) ---------- + Worksheet sourceSheet = workbook.Worksheets[0]; + Worksheet copySheet = workbook.Worksheets.Add("Copy"); + + // ---------- Step 3: Define the copy cell range ---------- + CellArea sourceRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + CellArea destinationRange = new CellArea + { + StartRow = 0, + StartColumn = 0, + EndRow = 19, + EndColumn = 6 + }; + + // ---------- Step 4: Set copy options (preserve copy worksheet pivot table) ---------- + CopyOptions copyOptions = new CopyOptions + { + PasteType = PasteType.All, + PasteSpecial = true + }; + + // ---------- Step 5: Copy rows and columns (copy columns between sheets) ---------- + sourceSheet.Cells.CopyRows( + sourceRange.StartRow, + sourceRange.EndRow, + copySheet.Cells, + destinationRange.StartRow, + copyOptions); + + sourceSheet.Cells.CopyColumns( + sourceRange.StartColumn, + sourceRange.EndColumn, + copySheet.Cells, + destinationRange.StartColumn, + copyOptions); + + // ---------- Step 6: Save the workbook ---------- + workbook.Save(destinationPath); + } +} +``` + +**Kết quả mong đợi:** Mở `Destination.xlsx` sẽ hiển thị một sheet tên **Copy** phản chiếu sheet đầu tiên của `Source.xlsx`—bao gồm mọi pivot table, định dạng và độ rộng cột. File gốc vẫn không bị thay đổi. + +--- + +## Câu Hỏi Thường Gặp + +**Q: Điều này có hoạt động với file .xlsx được tạo bằng Excel 2019 không?** +A: Hoàn toàn có. Aspose.Cells hỗ trợ tất cả các định dạng Excel hiện đại, vì vậy cùng một đoạn code hoạt động cho `.xlsx`, `.xlsm`, và thậm chí các file `.xls` cũ hơn. + +{{< /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/vietnamese/net/excel-custom-number-date-formatting/_index.md b/cells/vietnamese/net/excel-custom-number-date-formatting/_index.md index cedb7cc248..dc6802c756 100644 --- a/cells/vietnamese/net/excel-custom-number-date-formatting/_index.md +++ b/cells/vietnamese/net/excel-custom-number-date-formatting/_index.md @@ -36,6 +36,10 @@ Hướng dẫn này sẽ trang bị cho bạn các kỹ năng để nhập tập Tìm hiểu cách kiểm tra giá trị ô Excel theo định dạng số tùy chỉnh bằng Aspose.Cells cho .NET với hướng dẫn từng bước này. ### [Chỉ định các trường công thức khi nhập dữ liệu vào bảng tính Excel](./specify-formula-fields-while-importing-data-to-worksheet-in-excel/) Tìm hiểu cách nhập dữ liệu vào các trang tính Excel có trường công thức được chỉ định bằng Aspose.Cells cho .NET trong hướng dẫn chi tiết này. +### [Định dạng số có dấu phân cách trong C# – Hướng dẫn đầy đủ Aspose.Cells](./format-number-with-separator-in-c-complete-aspose-cells-guid/) +Tìm hiểu cách định dạng số có dấu phân cách trong C# bằng Aspose.Cells cho .NET với hướng dẫn chi tiết. +### [Định dạng ngày ISO từ Excel – Hướng dẫn đầy đủ C#](./format-date-iso-from-excel-complete-c-guide/) +Hướng dẫn chi tiết cách định dạng ngày theo chuẩn ISO trong Excel bằng C# với Aspose.Cells. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/vietnamese/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md b/cells/vietnamese/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md new file mode 100644 index 0000000000..a34c8e49f2 --- /dev/null +++ b/cells/vietnamese/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/_index.md @@ -0,0 +1,218 @@ +--- +category: general +date: 2026-03-30 +description: Tìm hiểu cách định dạng ngày theo chuẩn ISO khi đọc các giá trị ngày‑giờ + trong Excel và trích xuất dữ liệu ngày‑giờ từ Excel bằng Aspose.Cells trong C#. +draft: false +keywords: +- format date iso +- read excel datetime +- extract datetime excel +- Aspose.Cells date parsing +- Japanese era dates +language: vi +og_description: Định dạng ngày ISO từ dữ liệu Excel bằng Aspose.Cells. Hướng dẫn này + chỉ cách đọc ngày giờ trong Excel, trích xuất giá trị ngày giờ Excel và xuất ra + ngày ISO. +og_title: Định dạng ngày ISO từ Excel – Hướng dẫn C# từng bước +tags: +- C# +- Excel +- DateTime +- Aspose.Cells +title: Định dạng ngày ISO từ Excel – Hướng dẫn C# đầy đủ +url: /vi/net/excel-custom-number-date-formatting/format-date-iso-from-excel-complete-c-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Định dạng ngày iso từ Excel – Hướng dẫn đầy đủ C# + +Bạn đã bao giờ cần **định dạng ngày iso** khi lấy ngày từ một bảng Excel chưa? Có thể bạn đang xử lý các ngày theo niên hiệu Nhật Bản, hoặc bạn chỉ muốn một chuỗi `yyyy‑MM‑dd` sạch sẽ cho payload API. Trong tutorial này, bạn sẽ thấy chính xác cách **đọc Excel datetime** từ các ô, **trích xuất datetime Excel**, và chuyển chúng thành định dạng ISO‑8601 — không cần đoán mò. + +Chúng ta sẽ đi qua một ví dụ thực tế sử dụng Aspose.Cells, giải thích lý do mỗi dòng code quan trọng, và cho bạn kết quả cuối cùng để sao chép‑dán vào dự án. Khi hoàn thành, bạn sẽ có thể xử lý các chuỗi niên hiệu lạ như “令和3年5月1日” và tạo ra một ngày ISO chuẩn, sẵn sàng cho cơ sở dữ liệu, JSON, hoặc bất kỳ nơi nào bạn cần. + +## Yêu cầu trước + +- .NET 6.0 hoặc mới hơn (code cũng chạy được với .NET Framework) +- Aspose.Cells for .NET (bản dùng thử miễn phí hoặc bản có giấy phép) +- Kiến thức cơ bản về C# và Excel +- Visual Studio hoặc bất kỳ trình soạn thảo C# nào bạn thích + +Không cần thêm bất kỳ gói NuGet nào ngoài Aspose.Cells, vì vậy việc thiết lập rất đơn giản. + +--- + +## Bước 1: Tạo Workbook và Nhắm tới Worksheet Đầu Tiên + +Điều đầu tiên bạn làm là khởi tạo một đối tượng `Workbook` mới. Điều này cung cấp cho bạn một biểu diễn trong bộ nhớ của file Excel, mà bạn có thể thao tác hoặc đọc từ đó. + +```csharp +using Aspose.Cells; +using System.Globalization; + +// Step 1: Initialize a new workbook and grab the first worksheet +Workbook workbook = new Workbook(); // creates an empty .xlsx +Worksheet worksheet = workbook.Worksheets[0]; // the default sheet is "Sheet1" +``` + +*Lý do quan trọng:* +Tạo workbook bằng code giúp bạn tránh phải làm việc với các file vật lý trong quá trình thử nghiệm. Nó cũng đảm bảo tham chiếu worksheet luôn hợp lệ — không có bất ngờ null‑reference khi bạn cố **đọc Excel datetime**. + +--- + +## Bước 2: Ghi Chuỗi Ngày Niên Hiệu Nhật Bản vào Ô + +Mục tiêu của chúng ta là minh họa cách phân tích một ngày không phải Gregorian. Chúng ta sẽ đặt chuỗi niên hiệu trực tiếp vào ô **A1**. + +```csharp +// Step 2: Insert a Japanese era date string into cell A1 +worksheet.Cells["A1"].PutValue("令和3年5月1日"); +``` + +*Mẹo:* Nếu bạn lấy dữ liệu từ một workbook đã tồn tại, bạn sẽ bỏ qua lệnh `PutValue` và chỉ cần tham chiếu tới ô đã chứa ngày. Điều quan trọng là ô phải chứa một **chuỗi** đại diện cho ngày trong lịch Nhật Bản lunisolar. + +--- + +## Bước 3: Cấu Hình Culture Hiểu Lịch Nhật Bản Lunisolar + +Lớp `CultureInfo` của .NET cho phép bạn chỉ định cách ngày tháng được diễn giải. Bằng cách thay thế lịch Gregorian mặc định bằng `JapaneseLunisolarCalendar`, bạn cung cấp cho parser ngữ cảnh cần thiết. + +```csharp +// Step 3: Set up a culture using the Japanese lunisolar calendar +CultureInfo japaneseCulture = new CultureInfo("ja-JP"); +japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); +``` + +*Tại sao chúng ta làm điều này:* +Nếu bạn cố gắng phân tích “令和3年5月1日” với culture mặc định, .NET sẽ ném `FormatException`. Thay thế bằng lịch lunisolar cho runtime biết cách ánh xạ “令和3年” (năm thứ 3 của niên hiệu Reiwa) sang năm Gregorian 2021. + +--- + +## Bước 4: Phân Tích Giá Trị Ô Thành `DateTime` Bằng Culture Đã Cấu Hình + +Bây giờ là phần cốt lõi — chuyển chuỗi niên hiệu thành một đối tượng `DateTime` thực thụ. Aspose.Cells cung cấp overload `GetDateTime` tiện lợi, chấp nhận một `CultureInfo`. + +```csharp +// Step 4: Retrieve the cell value as a DateTime, respecting the Japanese culture +DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); +``` + +*Điều gì đang diễn ra phía sau:* +`GetDateTime` đọc chuỗi thô, áp dụng quy tắc lịch của culture đã cung cấp, và trả về một `DateTime` đại diện cho cùng một thời điểm trong lịch Gregorian. Đây là bước mà bạn **trích xuất datetime Excel** dưới dạng có thể làm việc trong .NET. + +--- + +## Bước 5: Xuất Ngày Đã Phân Tích Dưới Định Dạng ISO 8601 + +Cuối cùng, chúng ta định dạng `DateTime` thành chuỗi ISO — `yyyy‑MM‑dd` — được mọi API, cơ sở dữ liệu và framework front‑end chấp nhận. + +```csharp +// Step 5: Print the date in ISO format (e.g., 2021-05-01) +Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // Output: 2021-05-01 +``` + +*Tại sao lại là ISO?* +ISO 8601 loại bỏ sự mơ hồ. “05/01/2021” có thể là 1‑5‑2021 hoặc 5‑1‑2021 tùy locale. `2021-05-01` rõ ràng tuyệt đối, vì vậy chúng tôi **định dạng ngày iso** trong hầu hết các kịch bản tích hợp. + +--- + +## Ví Dụ Hoàn Chỉnh + +Dưới đây là chương trình hoàn chỉnh, sẵn sàng chạy. Sao chép vào một dự án console app, thêm tham chiếu Aspose.Cells, và nhấn **F5**. + +```csharp +using Aspose.Cells; +using System; +using System.Globalization; + +class Program +{ + static void Main() + { + // 1️⃣ Create workbook and select the first worksheet + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write a Japanese era date string into cell A1 + worksheet.Cells["A1"].PutValue("令和3年5月1日"); + + // 3️⃣ Set up Japanese lunisolar culture + CultureInfo japaneseCulture = new CultureInfo("ja-JP"); + japaneseCulture.DateTimeFormat.Calendar = new JapaneseLunisolarCalendar(); + + // 4️⃣ Parse the cell value as DateTime using the culture + DateTime parsedDate = worksheet.Cells["A1"].GetDateTime(japaneseCulture); + + // 5️⃣ Output the date in ISO format + Console.WriteLine(parsedDate.ToString("yyyy-MM-dd")); // 2021-05-01 + } +} +``` + +**Kết quả mong đợi** + +``` +2021-05-01 +``` + +Chạy một lần, bạn sẽ thấy ngày đã được định dạng ISO được in ra console. Đó là toàn bộ quy trình từ **đọc Excel datetime** tới **định dạng ngày iso**. + +--- + +## Xử Lý Các Trường Hợp Đặc Biệt Thông Thường + +### 1. Ô Chứa Số Ngày Excel Thực + +Đôi khi Excel lưu ngày dưới dạng số serial (ví dụ, `44204`). Trong trường hợp này, bạn không cần culture; chỉ cần gọi `GetDateTime()` mà không có tham số: + +```csharp +DateTime serialDate = worksheet.Cells["B2"].GetDateTime(); // B2 holds a numeric date +Console.WriteLine(serialDate.ToString("yyyy-MM-dd")); +``` + +### 2. Ô Trống Hoặc Không Hợp Lệ + +Nếu ô rỗng hoặc chứa chuỗi không thể phân tích, `GetDateTime` sẽ ném lỗi. Bao quanh lời gọi bằng `try/catch` hoặc kiểm tra `IsDateTime` trước: + +```csharp +if (worksheet.Cells["C3"].Type == CellValueType.IsDateTime) +{ + DateTime safeDate = worksheet.Cells["C3"].GetDateTime(); + Console.WriteLine(safeDate.ToString("yyyy-MM-dd")); +} +else +{ + Console.WriteLine("Cell C3 does not contain a valid date."); +} +``` + +### 3. Định Dạng Niên Hiệu Khác + +Các niên hiệu Nhật Bản khác (Heisei, Showa) cũng tuân theo cùng mẫu. `JapaneseLunisolarCalendar` sẽ tự động xử lý chúng, vì vậy bạn không cần logic thêm — chỉ cần đưa chuỗi vào. + +--- + +## Mẹo Nâng Cao & Những Điều Cần Lưu Ý + +- **Hiệu năng:** Khi xử lý bảng tính lớn, tái sử dụng một instance `CultureInfo` duy nhất thay vì tạo mới trong vòng lặp. +- **An toàn đa luồng:** Các đối tượng `CultureInfo` trở nên chỉ‑đọc sau khi bạn đặt lịch, nên chúng an toàn để chia sẻ giữa các thread. +- **Giấy phép Aspose.Cells:** Nếu bạn dùng bản dùng thử, nhớ rằng một số tính năng có thể bị giới hạn sau khi thời gian dùng thử hết. Việc phân tích ngày ở đây hoạt động tốt cả trong chế độ dùng thử và có giấy phép. +- **Múi giờ:** `DateTime` nhận được có **kiểu không xác định** (không có múi giờ). Nếu bạn cần UTC, gọi `DateTime.SpecifyKind(parsedDate, DateTimeKind.Utc)` hoặc chuyển đổi bằng `TimeZoneInfo`. + +--- + +## Kết Luận + +Chúng ta đã bao quát mọi thứ cần thiết để **định dạng ngày iso** từ một workbook Excel bằng C#. Bắt đầu từ một chuỗi niên hiệu Nhật Bản thô, chúng ta **đọc Excel datetime**, thiết lập culture phù hợp, **trích xuất datetime excel**, và cuối cùng xuất ra chuỗi ISO‑8601 sạch sẽ. Cách tiếp cận này hoạt động với bất kỳ dạng biểu diễn ngày nào Excel có thể đưa ra, dù là số serial, chuỗi theo locale, hay định dạng niên hiệu truyền thống. + +Bước tiếp theo? Thử lặp qua toàn bộ cột ngày, ghi lại kết quả ISO vào một sheet mới, hoặc đưa chúng trực tiếp vào payload JSON cho một web service. Nếu bạn muốn khám phá các hệ thống lịch khác (Do Thái, Hồi giáo), Aspose.Cells và `CultureInfo` của .NET cũng hỗ trợ dễ dàng. + +Có câu hỏi hoặc định dạng ngày khó khăn mà bạn chưa giải quyết? Để lại bình luận bên dưới, và chúc bạn lập trình vui vẻ! + +{{< /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/vietnamese/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md b/cells/vietnamese/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md new file mode 100644 index 0000000000..7a1e9ffbc0 --- /dev/null +++ b/cells/vietnamese/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/_index.md @@ -0,0 +1,237 @@ +--- +category: general +date: 2026-03-30 +description: Học cách định dạng số với dấu phân cách bằng Aspose.Cells trong C#. Bao + gồm thiết lập định dạng số tùy chỉnh, thêm dấu phân cách hàng nghìn, định dạng số + thập phân và cách định dạng ô. +draft: false +keywords: +- format number with separator +- set custom number format +- add thousands separator +- format decimal places +- how to format cell +language: vi +og_description: Định dạng số với dấu phân cách trong C#. Hướng dẫn này chỉ cách thiết + lập định dạng số tùy chỉnh, thêm dấu phân cách hàng nghìn, định dạng số thập phân + và cách định dạng ô bằng Aspose.Cells. +og_title: Định dạng số với dấu phân cách trong C# – Hướng dẫn Aspose.Cells +tags: +- C# +- Aspose.Cells +- Number Formatting +title: Định dạng số với dấu phân cách trong C# – Hướng dẫn đầy đủ Aspose.Cells +url: /vi/net/excel-custom-number-date-formatting/format-number-with-separator-in-c-complete-aspose-cells-guid/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Định dạng số có dấu phân cách trong C# – Hướng dẫn đầy đủ Aspose.Cells + +Bạn đã bao giờ cần **format number with separator** trong một bảng tính nhưng không chắc nên gọi API nào không? Bạn không phải là người duy nhất—các nhà phát triển luôn phải vật lộn với dấu phân cách hàng nghìn, số thập phân và các mẫu tùy chỉnh khi xuất dữ liệu. + +Tin tốt: Aspose.Cells làm cho việc này trở nên dễ dàng. Trong hướng dẫn này, chúng tôi sẽ đi qua một ví dụ thực tế mà **sets a custom number format**, **adds a thousands separator**, **formats decimal places**, và cho thấy **how to format cell** output as a string. Khi hoàn thành, bạn sẽ có một đoạn mã sẵn sàng chạy mà bạn có thể chèn vào bất kỳ dự án .NET nào. + +## Những gì hướng dẫn này bao gồm + +* Gói NuGet chính xác bạn cần và cách cài đặt nó. +* Mã từng bước tạo workbook, ghi giá trị số và áp dụng định dạng tùy chỉnh. +* Tại sao `ExportTableOptions.ExportAsString` là cách ưu tiên để lấy giá trị đã định dạng. +* Các lỗi thường gặp—như quên bật `ExportAsString` hoặc sử dụng mask định dạng sai. +* Cách điều chỉnh mask định dạng nếu bạn cần số chữ số thập phân khác hoặc kiểu dấu phân cách khác. + +Không cần liên kết tài liệu bên ngoài; mọi thứ bạn cần đều có ở đây. Hãy bắt đầu. + +--- + +## Prerequisites + +| Yêu cầu | Lý do | +|-------------|--------| +| .NET 6.0 hoặc sau này | Aspose.Cells 23.10+ nhắm tới .NET Standard 2.0+, vì vậy .NET 6 là an toàn và hiện tại. | +| Visual Studio 2022 (hoặc bất kỳ IDE C# nào) | Giúp việc gỡ lỗi và quản lý gói dễ dàng. | +| Gói NuGet Aspose.Cells cho .NET | Cung cấp các lớp `Workbook`, `Worksheet`, và `ExportTableOptions` mà chúng ta sẽ sử dụng. | + +Bạn có thể cài đặt gói qua Package Manager Console: + +```powershell +Install-Package Aspose.Cells +``` + +Xong—không cần DLL bổ sung, không cần COM interop, chỉ một tham chiếu NuGet duy nhất. + +## Bước 1: Khởi tạo Workbook mới (How to Format Cell) + +Điều đầu tiên chúng ta làm là tạo một thể hiện `Workbook` mới. Hãy nghĩ nó như một tệp Excel trống sẵn sàng nhận dữ liệu. + +```csharp +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Create a new workbook – this is where we’ll format the cell. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Tại sao điều này quan trọng:** `Workbook` là điểm vào cho mọi thao tác trong Aspose.Cells. Bằng cách lấy worksheet đầu tiên (`Worksheets[0]`) chúng ta có một canvas sạch sẽ mà không cần đặt tên cho sheet. + +## Bước 2: Ghi giá trị số vào ô mục tiêu + +Tiếp theo, chúng ta đặt một số thô vào ô **A1**. Giá trị này chưa được định dạng—nó chỉ là một kiểu double. + +```csharp + // Step 2: Insert a raw numeric value. + worksheet.Cells["A1"].PutValue(12345.6789); +``` + +> **Mẹo chuyên nghiệp:** Sử dụng `PutValue` thay vì `PutString` khi bạn dự định áp dụng định dạng số sau này. Điều này giữ nguyên kiểu dữ liệu gốc, cho phép các phép tính tương thích với Excel. + +## Bước 3: Đặt định dạng số tùy chỉnh (Thêm dấu phân cách hàng nghìn & Định dạng chữ số thập phân) + +Bây giờ là phần cốt lõi của hướng dẫn: định nghĩa mask định dạng cho Aspose.Cells biết cách hiển thị số. Mask `#,##0.00` thực hiện ba việc: + +1. **`#,##0`** – thêm dấu phân cách hàng nghìn (mặc định là dấu phẩy). +2. **`.00`** – buộc luôn có đúng hai chữ số thập phân. + +Nếu bạn cần số chữ số thập phân khác, chỉ cần thay đổi số lượng `0` sau dấu thập phân. + +```csharp + // Step 3: Configure the custom number format. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, // Return the value as a formatted string. + NumberFormat = "#,##0.00" // Add thousands separator and fix to 2 decimals. + }; +``` + +> **Tại sao chúng ta dùng `ExportAsString`:** Mặc định, `ExportString` trả về giá trị thô. Đặt `ExportAsString = true` buộc API áp dụng mask `NumberFormat` trước khi chuyển sang văn bản. Điều này rất cần thiết khi bạn cần biểu diễn chuỗi chính xác cho báo cáo, payload JSON, hoặc hiển thị UI. + +## Bước 4: Xuất văn bản đã định dạng (How to Format Cell) + +Với các tùy chọn đã sẵn sàng, chúng ta gọi `ExportString` trên cùng một ô. Phương thức này tuân theo mask vừa định nghĩa và trả về một chuỗi đã được định dạng đẹp mắt. + +```csharp + // Step 4: Export the formatted value. + string formattedCellText = worksheet.Cells["A1"].ExportString(exportOptions); + + // Step 5: Show the result. + Console.WriteLine(formattedCellText); // Expected output: 12,345.68 + } +} +``` + +Chạy chương trình sẽ in **`12,345.68`** ra console—đúng như định dạng chúng ta yêu cầu. + +> **Trường hợp đặc biệt:** Nếu số nguồn có hơn hai chữ số thập phân, mask sẽ làm tròn. Nếu bạn cần cắt bớt thay vì làm tròn, bạn phải tiền xử lý giá trị bằng `Math.Truncate` trước khi gọi `PutValue`. + +## Bước 5: Điều chỉnh định dạng – Các biến thể thường gặp + +### 5.1 Thay đổi độ chính xác thập phân + +Muốn ba chữ số thập phân? Chỉ cần thay đổi mask: + +```csharp +NumberFormat = "#,##0.000" // → 12,345.679 +``` + +### 5.2 Sử dụng dấu phân cách hàng nghìn khác + +Một số địa phương thích dấu cách hoặc dấu chấm. Bạn có thể nhúng ký tự trực tiếp: + +```csharp +NumberFormat = "# ##0.00" // Uses a non‑breaking space as separator. +``` + +Hoặc dựa vào cài đặt ngôn ngữ của workbook: + +```csharp +workbook.Settings.CultureInfo = new System.Globalization.CultureInfo("de-DE"); +NumberFormat = "#.##0,00"; // German style: 12.345,68 +``` + +### 5.3 Tiền tố hoặc Hậu tố (Tiền tệ, Phần trăm) + +Thêm dấu đô la hoặc dấu phần trăm ngay trong mask: + +```csharp +NumberFormat = "$#,##0.00"; // → $12,345.68 +NumberFormat = "0.00%"; // → 1,234,568.00% +``` + +> **Lưu ý:** Mask phân biệt chữ hoa và chữ thường. `$` và `%` là ký hiệu nguyên văn; chúng không ảnh hưởng tới giá trị số gốc. + +## Bước 6: Ví dụ hoàn chỉnh (Sẵn sàng sao chép‑dán) + +Dưới đây là chương trình đầy đủ mà bạn có thể sao chép vào một ứng dụng console mới. Nó bao gồm tất cả các bước, chú thích và xác minh đầu ra cuối cùng. + +```csharp +using System; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // 1️⃣ Initialise workbook and worksheet. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Write raw numeric value to A1. + worksheet.Cells["A1"].PutValue(12345.6789); + + // 3️⃣ Define custom format: thousands separator + two decimals. + ExportTableOptions exportOptions = new ExportTableOptions + { + ExportAsString = true, + NumberFormat = "#,##0.00" + }; + + // 4️⃣ Export the formatted string. + string result = worksheet.Cells["A1"].ExportString(exportOptions); + + // 5️⃣ Display the outcome. + Console.WriteLine(result); // Output: 12,345.68 + + // Optional: keep console open. + Console.WriteLine("Press any key to exit..."); + Console.ReadKey(); + } +} +``` + +Chạy chương trình (`dotnet run` từ terminal hoặc nhấn F5 trong Visual Studio) và bạn sẽ thấy số đã định dạng được in ra chính xác như hình. + +## Câu hỏi thường gặp (FAQ) + +**Q: Điều này có hoạt động với các phiên bản Excel cũ không?** +A: Có. Mask định dạng tuân theo cú pháp định dạng số gốc của Excel, vì vậy bất kỳ phiên bản nào hiểu `#,##0.00` sẽ hiển thị cùng một chuỗi. + +**Q: Nếu tôi cần định dạng một phạm vi ô thì sao?** +A: Lặp qua phạm vi mong muốn và áp dụng cùng một `ExportTableOptions` cho mỗi ô, hoặc đặt thuộc tính `Style.Custom` trên phạm vi và sau đó gọi `ExportString` trên một ô duy nhất. + +**Q: Tôi có thể xuất trực tiếp sang CSV với các định dạng này không?** +A: Chắc chắn. Sử dụng `Workbook.Save("output.csv", SaveFormat.CSV);` sau khi đặt định dạng cho mỗi ô. Aspose.Cells tôn trọng `Style` của ô khi tạo CSV. + +## Kết luận + +Chúng tôi vừa trình bày cách **format number with separator** trong C# bằng Aspose.Cells, bao gồm mọi thứ từ **set custom number format** đến **add thousands separator**, **format decimal places**, và phần quan trọng **how to format cell** để xuất chuỗi. Mã hoàn toàn tự chứa, hoạt động với .NET 6+, và có thể điều chỉnh cho bất kỳ địa phương hay yêu cầu độ chính xác nào. + +Tiếp theo, bạn có thể khám phá: + +* Áp dụng kỹ thuật tương tự cho ngày và giờ (`NumberFormat = "dd‑MMM‑yyyy"`). +* Tự động xuất hàng loạt khi mỗi cột cần một mask khác nhau. +* Tích hợp các chuỗi đã định dạng vào báo cáo PDF với Aspose.Words. + +Hãy thử những điều trên, và bạn sẽ nhanh chóng trở thành người được tin cậy cho việc định dạng bảng tính trong nhóm của mình. Chúc lập trình vui vẻ! + +![Ảnh chụp màn hình hiển thị số đã định dạng có dấu phân cách trong Aspose.Cells](image-placeholder.png){alt="Số đã định dạng có dấu phân cách hiển thị trong đầu ra của 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/vietnamese/net/excel-data-import-export/_index.md b/cells/vietnamese/net/excel-data-import-export/_index.md index a6bbf94597..c51f030661 100644 --- a/cells/vietnamese/net/excel-data-import-export/_index.md +++ b/cells/vietnamese/net/excel-data-import-export/_index.md @@ -32,6 +32,10 @@ Tiếp theo là một thách thức phổ biến khác: chèn các hàng DataTab Tìm hiểu cách nhập dữ liệu vào Excel với định dạng DB Num tùy chỉnh bằng Aspose.Cells cho .NET trong hướng dẫn dễ làm theo này. ### [Chuyển hàng đầu tiên xuống dưới khi chèn hàng DataTable trong Excel](./shift-first-row-down-when-inserting-cells-datatable-rows-in-excel/) Học cách chèn các hàng DataTable vào Excel mà không dịch chuyển hàng đầu tiên xuống dưới bằng Aspose.Cells cho .NET. Hướng dẫn từng bước để tự động hóa dễ dàng. +### [Tạo Workbook Excel C# – Chèn JSON và Lưu dưới dạng XLSX](./create-excel-workbook-c-insert-json-and-save-as-xlsx/) +Hướng dẫn tạo workbook Excel bằng C#, chèn dữ liệu JSON và lưu dưới dạng tệp XLSX bằng Aspose.Cells. +### [Tạo Workbook Excel C# – Áp dụng Định dạng Tiền tệ và Nhập DataTable](./create-excel-workbook-c-apply-currency-format-and-import-dat/) +Hướng dẫn tạo workbook Excel bằng C#, áp dụng định dạng tiền tệ và nhập DataTable bằng Aspose.Cells. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/vietnamese/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md b/cells/vietnamese/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md new file mode 100644 index 0000000000..bccdc4f50b --- /dev/null +++ b/cells/vietnamese/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/_index.md @@ -0,0 +1,283 @@ +--- +category: general +date: 2026-03-30 +description: Tạo workbook Excel bằng C# với định dạng tiền tệ. Học cách nhập DataTable, + thêm định dạng số trong Excel và áp dụng định dạng tiền tệ cho cột trong vài phút. +draft: false +keywords: +- create excel workbook c# +- format cells currency +- import datatable to excel +- add number format excel +- apply currency format column +language: vi +og_description: Tạo workbook Excel bằng C# và ngay lập tức định dạng ô thành tiền + tệ. Hướng dẫn từng bước này cho thấy cách nhập DataTable vào Excel và thêm định + dạng số cho một cột. +og_title: Tạo Workbook Excel bằng C# – Hướng dẫn định dạng tiền tệ +tags: +- Aspose.Cells +- C# +- Excel automation +title: Tạo Workbook Excel bằng C# – Áp dụng định dạng tiền tệ và nhập DataTable +url: /vi/net/excel-data-import-export/create-excel-workbook-c-apply-currency-format-and-import-dat/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tạo Workbook Excel C# – Áp Dụng Định Dạng Tiền Tệ và Nhập DataTable + +Ever needed to **create Excel workbook C#** that already looks like a polished report? Maybe you’re pulling sales numbers from a database and you want the price column to show as dollars without fiddling with Excel manually. Sound familiar? You’re not alone—most developers hit this snag when they first automate Excel exports. + +Trong hướng dẫn này, chúng tôi sẽ đi qua một giải pháp hoàn chỉnh, sẵn sàng chạy mà **creates an Excel workbook C#**, nhập một `DataTable`, và **formats the Price column as currency**. Khi kết thúc, bạn sẽ có một tệp có tên `StyledTable.xlsx` mà bạn có thể mở và thấy các số được định dạng đẹp mắt. Không cần xử lý hậu kỳ nào thêm. + +> **Bạn sẽ học được gì** +> - Cách thiết lập Aspose.Cells trong dự án .NET +> - Cách **import datatable to excel** với một mảng style +> - Cách **add number format excel** cho một cột cụ thể +> - Mẹo xử lý nhiều cột hơn hoặc các locale khác nhau + +> **Yêu cầu trước** +> - .NET 6+ (hoặc .NET Framework 4.6+) đã được cài đặt +> - Gói NuGet Aspose.Cells cho .NET (`Install-Package Aspose.Cells`) +> - Kiến thức cơ bản về C# và DataTables + +--- + +## Bước 1: Chuẩn bị DataTable (import datatable to excel) + +Đầu tiên, chúng ta cần một số dữ liệu mẫu. Trong một ứng dụng thực tế, bạn có thể sẽ điền bảng này từ truy vấn DB, nhưng một ví dụ được mã hoá cứng giúp mọi thứ đơn giản hơn. + +```csharp +using System.Data; + +// Create a DataTable with two columns: Product (string) and Price (double) +DataTable dataTable = new DataTable(); +dataTable.Columns.Add("Product", typeof(string)); +dataTable.Columns.Add("Price", typeof(double)); + +// Add a few rows – you can add as many as you like +dataTable.Rows.Add("Apple", 1.23); +dataTable.Rows.Add("Banana", 0.78); +dataTable.Rows.Add("Cherry", 2.50); +``` + +*Tại sao điều này quan trọng*: `DataTable` là cầu nối giữa dữ liệu kinh doanh của bạn và tệp Excel. Aspose.Cells có thể nhập trực tiếp, giữ nguyên tên cột và kiểu dữ liệu. + +--- + +## Bước 2: Tạo một Workbook mới (create excel workbook c#) + +Bây giờ chúng ta tạo đối tượng tệp Excel thực tế. Hãy nghĩ nó như một tấm canvas trống mà bạn sẽ vẽ lên. + +```csharp +using Aspose.Cells; + +// Instantiate a fresh workbook – this is the core of create excel workbook c# +Workbook workbook = new Workbook(); + +// Grab the first worksheet (index 0). You could also add more sheets later. +Worksheet worksheet = workbook.Worksheets[0]; +``` + +> **Mẹo chuyên nghiệp:** Nếu bạn cần nhiều sheet, gọi `workbook.Worksheets.Add()` và đặt tên có ý nghĩa cho mỗi sheet. + +--- + +## Bước 3: Định nghĩa Style Tiền Tệ (format cells currency) + +Aspose.Cells cho phép bạn tạo một đối tượng `Style` mô tả cách các ô sẽ hiển thị. Đối với tiền tệ, chúng ta sử dụng ID định dạng số tích hợp sẵn 164 (`"$#,##0.00"`). + +```csharp +// Create a new style object for the price column +Style priceStyle = workbook.CreateStyle(); +priceStyle.Number = 164; // Built‑in currency format "$#,##0.00" +``` + +*Tại sao không chỉ đặt chuỗi định dạng?* Sử dụng ID tích hợp sẵn đảm bảo tính tương thích giữa các phiên bản Excel và tránh các vấn đề đặc thù của locale. + +--- + +## Bước 4: Xây dựng Mảng Style (apply currency format column) + +Khi nhập một `DataTable`, bạn có thể truyền một mảng các đối tượng `Style` — một cho mỗi cột. `null` có nghĩa là “sử dụng style mặc định”. Ở đây chúng ta áp dụng `priceStyle` chỉ cho cột thứ hai. + +```csharp +// Column 0 (Product) gets the default style, Column 1 (Price) gets the currency style +Style[] columnStyles = { null, priceStyle }; +``` + +Nếu sau này bạn thêm nhiều cột hơn, chỉ cần mở rộng mảng tương ứng. Độ dài của `columnStyles` phải khớp với số cột bạn đang nhập, nếu không Aspose sẽ ném ra một ngoại lệ. + +--- + +## Bước 5: Nhập DataTable với Style (import datatable to excel) + +Bây giờ phép màu xảy ra — `DataTable` của chúng ta được đưa vào worksheet, và cột giá ngay lập tức hiển thị dưới dạng tiền tệ. + +```csharp +// Parameters: +// - dataTable: source data +// - true: include column headers +// - startRow: 0 (top of sheet) +// - startColumn: 0 (first column) +// - columnStyles: style array defined above +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); +``` + +*Nếu bạn có nhiều hơn hai cột thì sao?* Chỉ cần mở rộng `columnStyles` để mỗi cột nhận được style phù hợp (hoặc `null` cho mặc định). Đây là cách sạch nhất để **add number format excel** một cách chọn lọc. + +--- + +## Bước 6: Lưu Workbook (create excel workbook c#) + +Cuối cùng, chúng ta ghi tệp ra đĩa. Chọn bất kỳ thư mục nào bạn có quyền ghi. + +```csharp +// Save the workbook as an XLSX file +workbook.Save("YOUR_DIRECTORY/StyledTable.xlsx"); +``` + +Mở `StyledTable.xlsx` trong Excel và bạn sẽ thấy: + +| Product | Price | +|---------|-------| +| Apple | $1.23 | +| Banana | $0.78 | +| Cherry | $2.50 | + +Cột **Price** đã được định dạng là tiền tệ — không cần bước nào thêm. + +--- + +## Các Trường Hợp Đặc Biệt & Biến Thể + +### Nhiều Cột, Định Dạng Khác + +Nếu bạn cần **format cells currency** cho nhiều cột (ví dụ: Cost, Tax, Total), tạo một `Style` riêng cho mỗi cột và điền `columnStyles` cho phù hợp: + +```csharp +Style costStyle = workbook.CreateStyle(); +costStyle.Number = 164; // currency + +Style taxStyle = workbook.CreateStyle(); +taxStyle.Number = 164; + +// Assuming columns: Product, Cost, Tax, Total +Style[] styles = { null, costStyle, taxStyle, priceStyle }; +worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, styles); +``` + +### Tiền Tệ Đặc Thù Theo Locale + +Đối với Euro hoặc Bảng Anh, sử dụng các ID tích hợp khác (ví dụ, 165 cho `€#,##0.00`). Hoặc, đặt một chuỗi định dạng tùy chỉnh: + +```csharp +priceStyle.Custom = "€#,##0.00"; +``` + +### Tập Dữ Liệu Lớn + +Aspose.Cells có thể xử lý hàng triệu dòng, nhưng việc tiêu thụ bộ nhớ tăng lên với các đối tượng style. Hãy tái sử dụng một thể hiện `Style` duy nhất cho tất cả các cột tiền tệ để giảm footprint. + +### Thiếu Style + +Nếu `columnStyles` ngắn hơn số cột, Aspose sẽ áp dụng style mặc định cho các cột còn lại. Điều này hữu ích khi bạn chỉ quan tâm đến một vài cột. + +--- + +## Ví Dụ Hoàn Chỉnh (Tất Cả Các Bước Kết Hợp) + +Dưới đây là chương trình hoàn chỉnh bạn có thể sao chép‑dán vào một ứng dụng console. Nó bao gồm tất cả các phần chúng ta đã thảo luận, cộng thêm một vài chú thích hữu ích. + +```csharp +using Aspose.Cells; +using System; +using System.Data; + +class Program +{ + static void Main() + { + // ------------------------------------------------- + // Step 1: Build sample DataTable (import datatable to excel) + // ------------------------------------------------- + DataTable dataTable = new DataTable(); + dataTable.Columns.Add("Product", typeof(string)); + dataTable.Columns.Add("Price", typeof(double)); + dataTable.Rows.Add("Apple", 1.23); + dataTable.Rows.Add("Banana", 0.78); + dataTable.Rows.Add("Cherry", 2.50); + // You can add as many rows as you like here. + + // ------------------------------------------------- + // Step 2: Create a new workbook (create excel workbook c#) + // ------------------------------------------------- + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // ------------------------------------------------- + // Step 3: Define a currency style (format cells currency) + // ------------------------------------------------- + Style priceStyle = workbook.CreateStyle(); + priceStyle.Number = 164; // "$#,##0.00" – built‑in currency format + + // ------------------------------------------------- + // Step 4: Build the style array (apply currency format column) + // ------------------------------------------------- + // First column gets default style (null), second column uses priceStyle. + Style[] columnStyles = { null, priceStyle }; + + // ------------------------------------------------- + // Step 5: Import the DataTable with the style array + // ------------------------------------------------- + worksheet.Cells.ImportDataTable(dataTable, true, 0, 0, columnStyles); + + // ------------------------------------------------- + // Step 6: Save the workbook to disk + // ------------------------------------------------- + string outputPath = @"YOUR_DIRECTORY\StyledTable.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } +} +``` + +**Kết quả mong đợi:** Khi mở `StyledTable.xlsx` sẽ hiển thị cột `Price` với dấu đô la và hai chữ số thập phân, chính xác như hướng dẫn `format cells currency` yêu cầu. + +--- + +## Câu Hỏi Thường Gặp + +**Q: Điều này có hoạt động với .NET Core không?** +A: Hoàn toàn có. Aspose.Cells tuân thủ .NET‑standard, vì vậy bạn có thể nhắm tới .NET 5, .NET 6 hoặc các phiên bản sau mà không cần thay đổi. + +**Q: Nếu DataTable của tôi có 10 cột nhưng tôi chỉ muốn định dạng cột 5 thì sao?** +A: Tạo một `Style[]` độ dài 10, điền các vị trí 0‑4 và 6‑9 bằng `null`, và đặt style tùy chỉnh của bạn ở chỉ mục 4 (đánh số từ 0). Aspose sẽ tôn trọng mỗi mục nhập. + +**Q: Tôi có thể ẩn hàng tiêu đề không?** +A: Sau khi nhập, đặt `worksheet.Cells.Rows[0].Hidden = true;` hoặc đơn giản truyền `false` cho tham số `includeColumnNames` trong `ImportDataTable`. + +--- + +## Kết Luận + +Chúng ta vừa **created an Excel workbook C#**, nhập một `DataTable`, và **applied a currency format column** bằng Aspose.Cells. Các bước chính — chuẩn bị dữ liệu, định nghĩa style, xây dựng mảng style, nhập bằng `ImportDataTable`, và lưu — bao phủ phần cốt lõi của hầu hết các tác vụ tự động hóa Excel. + +Từ đây bạn có thể khám phá: +- **add number format excel** cho ngày tháng hoặc phần trăm +- Xuất nhiều worksheet trong một tệp duy nhất +- Sử dụng **format cells currency** với ký hiệu đặc thù theo locale +- Tự động tạo biểu đồ dựa trên cùng một dữ liệu + +Hãy thử những điều trên, và bạn sẽ nhanh chóng trở thành người được mọi người nhờ tới cho báo cáo Excel trong đội. Có cách tiếp cận nào bạn muốn chia sẻ? Để lại bình luận bên dưới — chúc lập trình vui! + +![ảnh chụp màn hình tạo workbook Excel C#](image.png "tạo workbook excel c#") + +{{< /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/vietnamese/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md b/cells/vietnamese/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md new file mode 100644 index 0000000000..01e6dfdc94 --- /dev/null +++ b/cells/vietnamese/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/_index.md @@ -0,0 +1,232 @@ +--- +category: general +date: 2026-03-30 +description: Tạo nhanh workbook Excel bằng C# bằng cách chèn dữ liệu JSON và lưu workbook + dưới dạng XLSX. Tìm hiểu cách tạo Excel từ JSON, ghi JSON vào Excel và chèn JSON + vào Excel. +draft: false +keywords: +- create excel workbook c# +- save workbook as xlsx +- generate excel from json +- write json to excel +- insert json into excel +language: vi +og_description: Tạo nhanh workbook Excel bằng C# bằng cách chèn dữ liệu JSON và lưu + workbook dưới dạng XLSX. Hãy làm theo hướng dẫn từng bước này để tạo Excel từ JSON. +og_title: Tạo Workbook Excel bằng C# – Chèn JSON và Lưu dưới dạng XLSX +tags: +- Aspose.Cells +- C# +- Excel automation +title: Tạo Workbook Excel bằng C# – Chèn JSON và Lưu dưới dạng XLSX +url: /vi/net/excel-data-import-export/create-excel-workbook-c-insert-json-and-save-as-xlsx/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tạo Excel Workbook C# – Chèn JSON và Lưu dưới dạng XLSX + +Bạn đã bao giờ cần **create Excel workbook C#** và đưa một số JSON trực tiếp vào một ô chưa? Bạn không phải là người duy nhất—các nhà phát triển thường gặp cùng một vấn đề khi họ có payload API hoặc tệp cấu hình cần đưa vào bảng tính để báo cáo hoặc chia sẻ. + +Tin tốt là với Aspose.Cells bạn có thể thực hiện trong vài dòng code, **save workbook as XLSX**, và giữ toàn bộ quá trình an toàn kiểu dữ liệu. Trong hướng dẫn này, chúng tôi sẽ **generate Excel from JSON**, **write JSON to Excel**, và chỉ cho bạn các bước chính xác để **insert JSON into Excel** mà không cần các phép nối chuỗi rắc rối. + +## Những gì hướng dẫn này bao gồm + +1. Thiết lập một workbook mới. +2. Thêm một Smart Marker mà mong đợi JSON. +3. Cung cấp một mảng JSON cho marker. +4. Điều chỉnh `SmartMarkerOptions` để JSON ở lại trong một ô. +5. Lưu tệp dưới dạng workbook XLSX. + +Khi kết thúc, bạn sẽ có tệp `JsonSingleCell.xlsx` sẵn sàng sử dụng và một mẫu vững chắc mà bạn có thể tái sử dụng cho bất kỳ kịch bản JSON‑to‑Excel nào. Không cần dịch vụ bên ngoài, chỉ cần C# thuần và thư viện Aspose.Cells. + +**Yêu cầu trước** + +- .NET 6+ (hoặc .NET Framework 4.6+). +- Visual Studio 2022 hoặc bất kỳ IDE nào hỗ trợ C#. +- Gói NuGet `Aspose.Cells` (bản dùng thử miễn phí hoặc phiên bản có giấy phép). + +Nếu bạn đã có những thứ này, hãy bắt đầu—không cần cài đặt thêm. + +--- + +## Bước 1: Tạo một Workbook mới trong C# + +Điều đầu tiên bạn cần là một đối tượng workbook trống. Hãy nghĩ nó như một tệp Excel mới đang chờ dữ liệu. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is your empty Excel file +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; +``` + +**Tại sao điều này quan trọng:** +`Workbook` là điểm vào cho tất cả các thao tác Excel. Bằng cách tạo nó trước, bạn đảm bảo rằng lời gọi **save workbook as xlsx** tiếp theo có một đối tượng cụ thể để tuần tự hoá. + +> **Mẹo chuyên nghiệp:** Nếu bạn dự định làm việc với nhiều sheet, bạn có thể thêm chúng ngay bây giờ bằng `workbook.Worksheets.Add()`. + +## Bước 2: Đặt một Smart Marker mà mong đợi JSON + +Smart Markers là các placeholder mà Aspose.Cells thay thế tại thời gian chạy. Ở đây chúng ta yêu cầu nó tìm một chuỗi JSON có tên `data`. + +```csharp +// Put a Smart Marker in cell A1 – {{data:json}} tells Aspose to expect JSON +worksheet.Cells["A1"].PutValue("{{data:json}}"); +``` + +**Tại sao điều này quan trọng:** +Hậu tố `:json` cho engine biết rằng giá trị đầu vào là JSON, không phải văn bản thuần. Đây là chìa khóa để **write json to excel** mà không cần phân tích thủ công. + +## Bước 3: Định nghĩa mảng JSON + +Bây giờ chúng ta tạo JSON mà muốn chèn. Để minh họa, chúng ta sẽ sử dụng một danh sách đơn giản các người. + +```csharp +// Sample JSON array – could come from an API, file, or DB +string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; +``` + +**Trường hợp đặc biệt:** +Nếu JSON của bạn chứa dấu ngoặc kép, hãy chắc chắn chúng được escape (như đã minh họa) hoặc sử dụng chuỗi verbatim (`@\"...\"`) để tránh lỗi biên dịch. + +## Bước 4: Cấu hình Smart Marker Options – Giữ nguyên toàn bộ mảng + +Mặc định, Aspose sẽ cố gắng mở rộng mảng qua các hàng. Chúng ta muốn toàn bộ chuỗi JSON ở lại trong một ô duy nhất, điều này hoàn hảo cho các kịch bản **insert json into excel** nơi người tiêu dùng sẽ phân tích JSON sau này. + +```csharp +SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions +{ + // Treat the whole array as a single cell value + ArrayAsSingle = true +}; +``` + +**Tại sao điều này quan trọng:** +`ArrayAsSingle = true` ngăn việc mở rộng hàng, cung cấp cho bạn một khối JSON sạch trong một ô duy nhất. Điều này quan trọng khi bảng tính là định dạng truyền tải thay vì báo cáo. + +## Bước 5: Xử lý Smart Marker với dữ liệu JSON + +Bây giờ chúng ta gắn JSON vào marker và để Aspose thực hiện phần công việc nặng. + +```csharp +// Process the marker – the anonymous object maps "data" to our JSON string +worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); +``` + +**Điều gì xảy ra bên trong:** +Aspose đánh giá placeholder `{{data:json}}`, tuần tự hoá chuỗi `jsonData`, và ghi nó vào ô A1 theo các tùy chọn mà chúng ta đã đặt. + +## Bước 6: Lưu Workbook dưới dạng tệp XLSX + +Cuối cùng, chúng ta ghi workbook ra đĩa. Đây là nơi **save workbook as xlsx** được áp dụng. + +```csharp +// Save the workbook – the extension determines the format (XLSX here) +workbook.Save("JsonSingleCell.xlsx"); +``` + +**Kết quả:** +Mở `JsonSingleCell.xlsx` trong Excel, và bạn sẽ thấy mảng JSON chính xác như chúng ta đã định nghĩa, nằm gọn trong ô A1. + +## Ví dụ đầy đủ, có thể chạy + +Dưới đây là chương trình hoàn chỉnh bạn có thể sao chép‑dán vào một ứng dụng console. Nó bao gồm tất cả các bước trên và chạy ngay (giả sử gói NuGet Aspose.Cells đã được cài đặt). + +```csharp +using System; +using Aspose.Cells; + +namespace JsonToExcelDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add a Smart Marker that expects JSON + worksheet.Cells["A1"].PutValue("{{data:json}}"); + + // 3️⃣ Define the JSON array + string jsonData = "[{\"Name\":\"John\",\"Age\":30},{\"Name\":\"Jane\",\"Age\":28}]"; + + // 4️⃣ Configure options – keep array as a single cell value + SmartMarkerOptions smartMarkerOptions = new SmartMarkerOptions + { + ArrayAsSingle = true + }; + + // 5️⃣ Process the marker with the JSON payload + worksheet.SmartMarkers.Process(new { data = jsonData }, smartMarkerOptions); + + // 6️⃣ Save the workbook as XLSX + workbook.Save("JsonSingleCell.xlsx"); + + Console.WriteLine("Excel file created successfully! Check JsonSingleCell.xlsx."); + } + } +} +``` + +**Kết quả mong đợi trong Excel** + +| A | +|---| +| `[{"Name":"John","Age":30},{"Name":"Jane","Age":28}]` | + +Ô duy nhất đó hiện chứa một mảng JSON hoàn toàn hợp lệ, sẵn sàng cho quá trình xử lý tiếp theo. + +## Câu hỏi thường gặp & Trường hợp đặc biệt + +### Nếu tôi cần JSON được trải ra nhiều hàng? + +Đặt `ArrayAsSingle = false` (mặc định). Aspose sẽ tạo một hàng cho mỗi phần tử của mảng, ánh xạ các thuộc tính đối tượng vào các cột. Điều này hữu ích khi bạn muốn một dạng bảng thay vì chuỗi JSON thô. + +### Tôi có thể dùng tệp JSON thay vì chuỗi được mã hoá cứng không? + +Chắc chắn. Đọc tệp vào một chuỗi: + +```csharp +string jsonData = File.ReadAllText("people.json"); +``` + +Sau đó truyền `jsonData` vào cùng một lời gọi `Process`. Phần còn lại của pipeline vẫn không thay đổi. + +### Điều này có hoạt động với payload JSON lớn không? + +Có, nhưng hãy chú ý đến việc sử dụng bộ nhớ. Đối với các mảng khổng lồ, hãy cân nhắc streaming dữ liệu hoặc ghi trực tiếp vào các hàng (`ArrayAsSingle = false`) để tránh một ô duy nhất quá lớn mà Excel có thể gặp khó khăn. + +### Tệp XLSX được tạo có tương thích với các phiên bản Excel cũ không? + +Định dạng `.xlsx` dựa trên Office Open XML và hoạt động với Excel 2007 trở lên. Nếu bạn cần định dạng legacy `.xls`, hãy thay đổi lời gọi lưu: + +```csharp +workbook.Save("JsonSingleCell.xls", SaveFormat.Excel97To2003); +``` + +## Mẹo chuyên nghiệp khi làm việc với JSON và Excel + +- **Validate JSON first** – sử dụng `System.Text.Json.JsonDocument.Parse(jsonData)` để phát hiện đầu vào không hợp lệ sớm. +- **Escape special characters** – nếu JSON của bạn chứa dấu xuống dòng, chúng sẽ xuất hiện dưới dạng `\n` trong ô; bạn có thể thay thế chúng bằng `Environment.NewLine` trước khi xử lý. +- **Reuse Smart Markers** – bạn có thể đặt nhiều marker trong cùng một sheet, mỗi marker trỏ tới một thuộc tính JSON khác. +- **Combine with formulas** – một khi JSON đã ở trong ô, bạn có thể dùng hàm `FILTERXML` của Excel (trong các phiên bản mới) để phân tích nó ngay lập tức. + +## Kết luận + +Bạn đã biết cách **create excel workbook c#**, nhúng payload JSON, và **save workbook as xlsx** bằng Aspose.Cells. Mẫu này cho phép bạn **generate excel from json**, **write json to excel**, và **insert json into excel** chỉ với vài dòng code, giúp việc trao đổi dữ liệu giữa các dịch vụ và nhà phân tích trở nên dễ dàng. + +Sẵn sàng cho bước tiếp theo? Hãy thử chuyển đổi mảng JSON thành một bảng đúng (đặt `ArrayAsSingle = false`) hoặc khám phá việc tạo kiểu cho sheet sau khi chèn. Cùng một cách tiếp cận cũng hoạt động cho CSV, XML, hoặc thậm chí các đối tượng tùy chỉnh—chỉ cần điều chỉnh loại Smart Marker. + +Chúc lập trình vui vẻ, và hãy thoải mái thử nghiệm! Nếu gặp bất kỳ khó khăn nào, hãy để lại bình luận bên dưới hoặc xem tài liệu chính thức của Aspose để tìm hiểu sâu hơn về Smart Markers. + +{{< /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/vietnamese/net/excel-workbook/_index.md b/cells/vietnamese/net/excel-workbook/_index.md index 47dec1a4b3..6e5077400d 100644 --- a/cells/vietnamese/net/excel-workbook/_index.md +++ b/cells/vietnamese/net/excel-workbook/_index.md @@ -86,6 +86,7 @@ Vậy tại sao không nắm bắt cơ hội này để nâng cao kỹ năng Exc | [Bản xem trước khi in của sổ làm việc](./workbook-print-preview/) | Tìm hiểu cách tạo bản xem trước khi in cho các tệp Excel bằng Aspose.Cells cho .NET. Tìm hiểu các bước lập trình trong hướng dẫn chi tiết, dễ làm theo. | | [Làm việc với Thuộc tính Kiểu Nội dung](./working-with-content-type-properties/) | Tìm hiểu cách sử dụng Aspose.Cells cho .NET để làm việc với các thuộc tính kiểu nội dung nhằm nâng cao khả năng quản lý siêu dữ liệu Excel. Thực hiện theo hướng dẫn từng bước đơn giản này. | | [Hỗ trợ chữ ký Xades](./xades-signature-support/) | Tìm hiểu cách thêm chữ ký Xades vào tệp Excel bằng Aspose.Cells cho .NET với hướng dẫn từng bước này. Bảo mật tài liệu của bạn. | +| [Tạo sheet chính trong C# – Hướng dẫn đầy đủ Aspose.Cells](./create-master-sheet-in-c-complete-aspose-cells-guide/) | Hướng dẫn chi tiết cách tạo sheet chính trong C# bằng Aspose.Cells, bao gồm các bước thực hiện và ví dụ mã. | {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/vietnamese/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md b/cells/vietnamese/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md new file mode 100644 index 0000000000..42036b7eeb --- /dev/null +++ b/cells/vietnamese/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/_index.md @@ -0,0 +1,245 @@ +--- +category: general +date: 2026-03-30 +description: Tạo sheet master bằng Aspose.Cells trong C#. Tìm hiểu cách tạo workbook + Excel bằng C#, cho phép trùng tên sheet và lưu workbook dưới dạng XLSX trong vài + bước. +draft: false +keywords: +- create master sheet +- create excel workbook c# +- save workbook as xlsx +- allow duplicate sheet names +language: vi +og_description: Tạo sheet chính với Aspose.Cells trong C#. Hướng dẫn này chỉ cách + tạo workbook Excel bằng C#, cho phép trùng tên sheet và lưu workbook dưới dạng XLSX. +og_title: Tạo sheet chính trong C# – Hướng dẫn đầy đủ Aspose.Cells +tags: +- Aspose.Cells +- C# +- Excel automation +title: Tạo bảng chính trong C# – Hướng dẫn đầy đủ Aspose.Cells +url: /vi/net/excel-workbook/create-master-sheet-in-c-complete-aspose-cells-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tạo sheet master trong C# – Hướng dẫn đầy đủ Aspose.Cells + +Bạn đã bao giờ cần **tạo sheet master** trong một tệp Excel nhưng không chắc cách xử lý một loạt các sheet chi tiết có cùng tên gốc? Bạn không đơn độc. Trong nhiều trường hợp báo cáo, bạn sẽ có hàng chục tab chi tiết, và hành vi mặc định của hầu hết các thư viện là ném ngoại lệ khi hai sheet có cùng tên. + +May mắn là Aspose.Cells giúp bạn **tạo sheet master** một cách dễ dàng, cấu hình engine để **cho phép trùng tên sheet**, và sau đó **lưu workbook dưới dạng XLSX**—tất cả chỉ bằng mã C# sạch sẽ. Trong tutorial này, chúng ta sẽ đi qua một ví dụ có thể chạy được đầy đủ, giải thích lý do mỗi dòng quan trọng, và cung cấp cho bạn một vài mẹo bạn có thể sao chép ngay vào dự án của mình. + +> **Bạn sẽ nhận được gì** +> * Cách **tạo Excel workbook C#**‑style bằng Aspose.Cells. +> * Cách nhúng một smart‑marker để tạo sheet chi tiết cho mỗi dòng dữ liệu. +> * Cách thiết lập `DetailSheetNewName = DuplicateAllowed` để thư viện tự động thêm hậu tố số. +> * Cách **lưu workbook dưới dạng XLSX** lên đĩa mà không cần bước nào thêm. + +Không cần tài liệu bên ngoài—mọi thứ bạn cần đều có ở đây. + +--- + +## Yêu cầu trước + +Trước khi bắt đầu, hãy chắc chắn bạn có: + +| Yêu cầu | Lý do quan trọng | +|-------------|----------------| +| .NET 6.0 hoặc mới hơn (hoặc .NET Framework 4.7+) | Aspose.Cells 23.x+ nhắm tới các runtime này. | +| Visual Studio 2022 (hoặc bất kỳ IDE C# nào) | Để tạo dự án và gỡ lỗi dễ dàng. | +| Gói NuGet Aspose.Cells for .NET (`Install-Package Aspose.Cells`) | Thư viện cung cấp mọi phép màu smart‑marker. | +| Kiến thức cơ bản về C# | Bạn sẽ hiểu cú pháp mà không cần khóa học nhanh. | + +Nếu bạn thiếu bất kỳ mục nào ở trên, hãy thêm chúng ngay—không có lý do gì để tiếp tục với môi trường chưa đầy đủ. + +--- + +## Bước 1: Tạo sheet master với Aspose.Cells + +Điều đầu tiên chúng ta làm là **tạo Excel workbook C#** bằng cách khởi tạo một đối tượng `Workbook`. Đối tượng này đã chứa sẵn một worksheet mặc định, chúng ta sẽ đổi tên nó thành “Master” và dùng làm mẫu cho tất cả các trang chi tiết. + +```csharp +using Aspose.Cells; + +// Step 1: Initialise a new workbook – this automatically gives us one sheet +Workbook workbook = new Workbook(); + +// Grab the first (and only) worksheet that comes with a fresh workbook +Worksheet masterSheet = workbook.Worksheets[0]; + +// Give it a meaningful name – this will be our master sheet +masterSheet.Name = "Master"; +``` + +*Tại sao phải đổi tên sheet?* +Tên mặc định như “Sheet1” không truyền đạt ý định, và khi bạn quét file sau này, bạn sẽ muốn tab master được nhận diện ngay lập tức. Đặt tên còn ngăn ngừa va chạm không mong muốn khi bạn thêm các sheet khác. + +--- + +## Bước 2: Chuẩn bị smart‑marker sẽ tạo sheet chi tiết + +Smart‑marker là các placeholder mà Aspose.Cells thay thế bằng dữ liệu tại thời gian chạy. Bằng cách đặt `{{#detail:DataSheetName}}` vào ô **A1**, chúng ta nói với engine: “Với mỗi bản ghi trong nguồn dữ liệu, tạo một sheet mới có tên lấy từ trường `DataSheetName`.” + +```csharp +// Step 2: Insert a smart‑marker into cell A1. +// The marker #detail tells Aspose.Cells to generate a new sheet per data row. +masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); +``` + +Hãy nghĩ marker như một tấm thẻ hướng dẫn nhỏ dán trên worksheet. Khi bộ xử lý chạy, nó đọc thẻ, lấy giá trị tương ứng từ nguồn dữ liệu, rồi sao chép sheet master thành một tab mới. + +--- + +## Bước 3: Xây dựng nguồn dữ liệu – tạo trùng tên sheet cố ý + +Trong thực tế bạn có thể lấy dữ liệu này từ cơ sở dữ liệu, nhưng trong demo chúng ta sẽ dùng một mảng trong bộ nhớ gồm các đối tượng ẩn danh. Lưu ý cả hai mục đều sử dụng cùng một tên gốc `"Detail"`; đây là trường hợp mà **cho phép trùng tên sheet** trở nên quan trọng. + +```csharp +// Step 3: Create a data source with two items that share the same base sheet name. +var dataSource = new[] +{ + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } +}; +``` + +Nếu bạn thử chạy mà không có tùy chọn đặc biệt, Aspose.Cells sẽ ném ngoại lệ ở lần lặp thứ hai vì đã tồn tại một sheet tên “Detail”. Đó là lý do bước tiếp theo quan trọng. + +--- + +## Bước 4: Bật cho phép trùng tên sheet + +Aspose.Cells cung cấp `SmartMarkerOptions.DetailSheetNewName`. Đặt nó thành `DetailSheetNewName.DuplicateAllowed` sẽ khiến engine tự động thêm hậu tố số (ví dụ: “Detail_1”) mỗi khi xảy ra xung đột tên. + +```csharp +// Step 4: Configure SmartMarker options to permit duplicate sheet names. +var smartMarkerOptions = new SmartMarkerOptions +{ + // This makes the library rename clashes to "Detail_1", "Detail_2", etc. + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed +}; +``` + +*Tại sao không tự mình đặt tên duy nhất cho mỗi dòng?* +Bởi vì dữ liệu nguồn thường không đảm bảo tính duy nhất, đặc biệt khi người dùng nhập văn bản tự do. Để thư viện xử lý hậu tố sẽ loại bỏ một lớp lỗi hoàn toàn. + +--- + +## Bước 5: Xử lý smart‑marker và tạo các sheet chi tiết + +Bây giờ chúng ta gọi `SmartMarkers.Process`, truyền cả nguồn dữ liệu và các tùy chọn vừa cấu hình. Phương thức sẽ duyệt qua từng mục, sao chép sheet master, và đổi tên bản sao theo trường `DataSheetName` (cộng thêm hậu tố nếu cần). + +```csharp +// Step 5: Run the smart‑marker processor – this creates the detail sheets. +masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); +``` + +Sau khi dòng này thực thi, workbook của bạn sẽ có ba tab: + +1. **Master** – mẫu gốc. +2. **Detail** – sheet chi tiết đầu tiên (không cần hậu tố). +3. **Detail_1** – sheet chi tiết thứ hai (hậu tố được thêm tự động). + +Bạn có thể kiểm tra bằng cách mở file trong Excel; hai sheet chi tiết sẽ hiển thị cạnh nhau. + +--- + +## Bước 6: Lưu workbook dưới dạng tệp XLSX + +Cuối cùng, chúng ta ghi file ra đĩa. Phương thức `Save` sẽ tự động chọn định dạng XLSX khi bạn cung cấp phần mở rộng `.xlsx`. + +```csharp +// Step 6: Persist the workbook – this is the moment we finally “save workbook as XLSX”. +string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; +workbook.Save(outputPath); +``` + +**Mẹo chuyên nghiệp:** Nếu bạn cần stream file trực tiếp tới phản hồi web (ví dụ, ASP.NET Core), hãy dùng `workbook.Save(stream, SaveFormat.Xlsx)` thay vì đường dẫn file. + +--- + +## Ví dụ hoàn chỉnh có thể chạy + +Dưới đây là chương trình đầy đủ, sẵn sàng để chạy. Sao chép‑dán vào một ứng dụng console, nhấn F5, và mở file đã tạo để xem kết quả. + +```csharp +using System; +using Aspose.Cells; + +namespace MasterSheetDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook and rename the default sheet to "Master" + Workbook workbook = new Workbook(); + Worksheet masterSheet = workbook.Worksheets[0]; + masterSheet.Name = "Master"; + + // 2️⃣ Insert a smart‑marker that will generate a detail sheet per data row + masterSheet.Cells["A1"].PutValue("{{#detail:DataSheetName}}"); + + // 3️⃣ Prepare a data source where two rows share the same sheet name + var dataSource = new[] + { + new { DataSheetName = "Detail" }, + new { DataSheetName = "Detail" } + }; + + // 4️⃣ Allow duplicate sheet names – the library will add "_1", "_2", … + var smartMarkerOptions = new SmartMarkerOptions + { + DetailSheetNewName = DetailSheetNewName.DuplicateAllowed + }; + + // 5️⃣ Process the smart‑markers; this creates the detail sheets + masterSheet.SmartMarkers.Process(dataSource, smartMarkerOptions); + + // 6️⃣ Save the workbook as an XLSX file + string outputPath = @"C:\Temp\DuplicateDetailSheets.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + } + } +} +``` + +**Kết quả mong đợi:** Mở `DuplicateDetailSheets.xlsx` và bạn sẽ thấy ba worksheet—`Master`, `Detail`, và `Detail_1`. Mỗi sheet chi tiết là bản sao chính xác của master, sẵn sàng để bạn điền dữ liệu theo từng dòng sau này. + +--- + +## Câu hỏi thường gặp & Trường hợp đặc biệt + +### Nếu tôi cần hơn hai sheet trùng tên thì sao? + +Không vấn đề gì. Cài đặt `DuplicateAllowed` sẽ tiếp tục thêm các số tăng dần (`Detail_2`, `Detail_3`, …) cho đến khi mỗi dòng có một tab riêng. + +### Tôi có thể tùy chỉnh định dạng hậu tố không? + +Mặc định, Aspose.Cells dùng dấu gạch dưới + chỉ số số. Nếu bạn muốn mẫu khác (ví dụ “Detail‑A”, “Detail‑B”), bạn sẽ phải xử lý sau khi `Process` chạy, duyệt `workbook.Worksheets` và đổi tên theo ý muốn. + +### Phương pháp này có hoạt động với bộ dữ liệu lớn (hàng trăm dòng) không? + +Có, nhưng hãy chú ý tới việc sử dụng bộ nhớ. Mỗi sheet được tạo là một bản sao đầy đủ của master, vì vậy số lượng lớn sẽ làm tăng kích thước file nhanh chóng. Nếu bạn chỉ cần vài dòng dữ liệu trên mỗi sheet, cân nhắc dùng `SmartMarkerOptions.RemoveEmptyRows = true` để loại bỏ các ô thừa. + +### File được tạo thực sự là tệp XLSX phải không? + +Chắc chắn rồi. Phương thức `Save` ghi ra gói Open XML mà Excel mong đợi. Bạn thậm chí có thể mở file bằng LibreOffice hoặc Google Sheets mà không cần chuyển đổi. + +--- + +## Mẹo cho mã sẵn sàng sản xuất + +| Mẹo | Lý do quan trọng | +|-----|----------------| +| **Dispose `Workbook + +{{< /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/vietnamese/net/formulas-functions/_index.md b/cells/vietnamese/net/formulas-functions/_index.md index 97c3f52dbd..cd9546eb51 100644 --- a/cells/vietnamese/net/formulas-functions/_index.md +++ b/cells/vietnamese/net/formulas-functions/_index.md @@ -102,6 +102,10 @@ Tìm hiểu cách chỉ định ngôn ngữ cho tệp Excel của bạn bằng A ### [Cập nhật công thức Excel Power Query bằng Aspose.Cells .NET](./update-power-query-formulas-aspose-cells-net) Tìm hiểu cách cập nhật công thức Power Query theo chương trình trong sổ làm việc Excel bằng Aspose.Cells cho .NET. Quản lý nguồn dữ liệu chính để báo cáo động. +### [Cách sử dụng WRAPCOLS trong C# – Tạo Workbook Excel với các hàm Wrap](./how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/) + +### [Tạo Workbook Excel C# – Hướng dẫn Lambda, SEQUENCE & EXPAND](./create-excel-workbook-c-lambda-sequence-expand-guide/) + ## Hiểu về các loại công thức Excel Công thức Excel có nhiều dạng khác nhau, mỗi dạng có những đặc điểm riêng mà Aspose.Cells có thể quản lý: diff --git a/cells/vietnamese/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md b/cells/vietnamese/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md new file mode 100644 index 0000000000..cc65af4bcd --- /dev/null +++ b/cells/vietnamese/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-03-30 +description: Tạo workbook Excel bằng C# sử dụng Aspose.Cells. Học cách áp dụng hàm + lambda trong Excel, hàm sequence trong Excel, mở rộng mảng trong Excel và lưu workbook + dưới dạng xlsx. +draft: false +keywords: +- create excel workbook c# +- lambda function excel +- save workbook as xlsx +- sequence function excel +- expand array excel +language: vi +og_description: Tạo nhanh workbook Excel bằng C#. Hướng dẫn này cho thấy cách sử dụng + hàm lambda trong Excel, hàm sequence trong Excel, mở rộng mảng trong Excel và lưu + workbook dưới dạng xlsx. +og_title: Tạo Workbook Excel bằng C# – Hướng dẫn Lambda, SEQUENCE & EXPAND +tags: +- Aspose.Cells +- C# +- Excel automation +title: Tạo Sổ làm việc Excel bằng C# – Hướng dẫn Lambda, SEQUENCE & EXPAND +url: /vi/net/formulas-functions/create-excel-workbook-c-lambda-sequence-expand-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tạo Workbook Excel C# – Hướng dẫn Lambda, SEQUENCE & EXPAND + +Bạn đã bao giờ cần **tạo workbook Excel C#** cho một báo cáo tự động, nhưng không chắc nên dùng API nào? Bạn không phải là người duy nhất—nhiều nhà phát triển gặp khó khăn tương tự khi lần đầu tiếp cận việc tạo Excel bằng mã. Trong hướng dẫn này, bạn sẽ thấy một ví dụ hoàn chỉnh, có thể chạy được, bao gồm mọi thứ từ **hàm SEQUENCE mới của Excel** đến **hàm LAMBDA mạnh mẽ của Excel**, và ngay cả cách **mở rộng mảng Excel**. + +Chúng tôi cũng sẽ chỉ cho bạn các bước chính xác để **lưu workbook dưới dạng xlsx** để bạn có thể chia sẻ file cho bất kỳ ai dùng Excel. Khi kết thúc tutorial, bạn sẽ có một đoạn mã sẵn sàng cho môi trường production mà có thể chèn vào bất kỳ dự án .NET nào. Không có liên kết “xem tài liệu” mơ hồ—chỉ có mã hoạt động ngay hôm nay. + +## Những gì bạn cần + +- **.NET 6.0 trở lên** – ví dụ này nhắm tới .NET 6, nhưng bất kỳ phiên bản gần đây nào cũng được. +- **Aspose.Cells for .NET** – cài đặt qua NuGet (`Install-Package Aspose.Cells`). +- Kiến thức cơ bản về cú pháp C# (biến, đối tượng, và biểu thức lambda). +- Một IDE mà bạn cảm thấy thoải mái (Visual Studio, Rider, hoặc VS Code). + +Đó là tất cả. Không cần COM interop, không cần cài Office trên server—Aspose.Cells xử lý mọi thứ trong bộ nhớ. + +## Tạo Workbook Excel C# – Triển khai từng bước + +Dưới đây chúng tôi chia quá trình thành các bước nhỏ gọn. Mỗi bước có tiêu đề rõ ràng, một đoạn mã ngắn, và giải thích **tại sao** chúng ta làm như vậy. Bạn có thể sao chép toàn bộ khối mã ở cuối và chạy như một ứng dụng console. + +### Bước 1 – Khởi tạo Workbook mới + +Đầu tiên, chúng ta cần một đối tượng workbook trống đại diện cho file Excel trong bộ nhớ. + +```csharp +using Aspose.Cells; + +// Step 1: Create a new workbook and get the first worksheet +Workbook workbook = new Workbook(); // empty workbook +Worksheet sheet = workbook.Worksheets[0]; // default first sheet +``` + +*Lý do quan trọng:* `Workbook` là điểm khởi đầu cho mọi thao tác Aspose.Cells. Khi lấy `Worksheet` đầu tiên, chúng ta có một “canvas” để ghi công thức, giá trị, hoặc định dạng. + +> **Mẹo:** Nếu cần nhiều sheet, chỉ cần gọi `workbook.Worksheets.Add()` và giữ tham chiếu tới mỗi sheet. + +### Bước 2 – Sử dụng hàm SEQUENCE Excel để tạo dữ liệu + +**Hàm sequence excel** tạo một mảng động các số mà không cần VBA. Chúng ta sẽ đặt nó vào ô `A1` và để Excel tự động mở rộng. + +```csharp +// Step 2: Generate a 5‑row, 1‑column array from a SEQUENCE +sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; // 1..3 padded with blanks +``` + +*Lý do quan trọng:* `SEQUENCE(3)` cho ra `[1,2,3]`. Bao bọc nó bằng `EXPAND` buộc kết quả vào một vùng 5 hàng, lấp đầy các hàng còn lại bằng ô trống. Điều này đồng thời minh họa **sequence function excel** và **expand array excel**. + +### Bước 3 – Tổng hợp số bằng hàm LAMBDA Excel + +Bây giờ chúng ta sẽ trình diễn khả năng của **lambda function excel**. Chúng ta sẽ cộng các số 1‑5 bằng hàm `REDUCE` mới, hàm này nội bộ dựa vào một lambda. + +```csharp +// Step 3: Aggregate a sequence (sum 1..5) using REDUCE/LAMBDA +sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; // result = 15 +``` + +*Lý do quan trọng:* `REDUCE` lặp qua mảng được tạo bởi `SEQUENCE(5)`, đưa mỗi phần tử (`b`) vào lambda cùng với bộ tích lũy (`a`). Lambda `a+b` cộng chúng lại, cho kết quả `15` ở `B1`. Đây là cách sạch sẽ, chỉ dùng công thức để thực hiện giảm tổng mà không cần vòng lặp trong C#. + +### Bước 4 – Áp dụng các hàm lượng giác trực tiếp trong ô + +Các hàm toán học tích hợp sẵn của Excel rất tiện cho các phép tính nhanh. Chúng ta sẽ đặt một cotangent và một hyperbolic cotangent vào các ô liền kề. + +```csharp +// Step 4: Trigonometric functions directly in Excel cells +sheet["C1"].Formula = "COT(PI()/4)"; // evaluates to 1 +sheet["D1"].Formula = "COTH(1)"; // hyperbolic cotangent of 1 +``` + +*Lý do quan trọng:* Minh họa rằng bạn có thể kết hợp các hàm toán học cổ điển với các công thức mảng động mới. Không cần tính các giá trị này trong C# trừ khi bạn có lý do về hiệu năng. + +### Bước 5 – Tính toán tất cả công thức + +Aspose.Cells không tự động tính công thức khi bạn đặt chúng. Bạn phải yêu cầu nó thực hiện tính toán. + +```csharp +// Step 5: Force calculation so that cells store the results +workbook.CalculateFormula(); +``` + +*Lý do quan trọng:* Sau lệnh này, thuộc tính `Value` của mỗi ô chứa kết quả đã được đánh giá, sẵn sàng để lưu hoặc đọc lại. + +### Bước 6 – Lưu Workbook dưới dạng Xlsx + +Cuối cùng, chúng ta ghi workbook ra đĩa bằng mẫu **save workbook as xlsx**. + +```csharp +// Step 6: Save the workbook to an Excel file (XLSX format) +string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + +workbook.Save(outputPath); +Console.WriteLine($"Workbook saved to: {outputPath}"); +``` + +*Lý do quan trọng:* Phương thức `Save` tự động nhận diện phần mở rộng file. Khi dùng “.xlsx”, chúng ta đảm bảo file tương thích với các phiên bản Excel hiện đại. Đường dẫn được đặt tới desktop để dễ truy cập trong quá trình thử nghiệm. + +### Ví dụ đầy đủ hoạt động + +Dưới đây là chương trình hoàn chỉnh mà bạn có thể dán vào một dự án console mới. Nó bao gồm tất cả các bước ở trên, cộng với một khối kiểm tra nhỏ in các giá trị đã tính ra console. + +```csharp +using System; +using System.IO; +using Aspose.Cells; + +class Program +{ + static void Main() + { + // Initialize workbook + Workbook workbook = new Workbook(); + Worksheet sheet = workbook.Worksheets[0]; + + // SEQUENCE + EXPAND + sheet["A1"].Formula = "EXPAND(SEQUENCE(3),5,1)"; + + // REDUCE with LAMBDA + sheet["B1"].Formula = "REDUCE(0, SEQUENCE(5), LAMBDA(a,b, a+b))"; + + // Trig functions + sheet["C1"].Formula = "COT(PI()/4)"; + sheet["D1"].Formula = "COTH(1)"; + + // Calculate formulas + workbook.CalculateFormula(); + + // Verify results (optional) + Console.WriteLine("A1‑A5 (expanded SEQUENCE):"); + for (int i = 0; i < 5; i++) + { + Console.WriteLine($" Row {i + 1}: {sheet.Cells[i, 0].Value ?? "blank"}"); + } + Console.WriteLine($"B1 (sum 1‑5): {sheet["B1"].Value}"); + Console.WriteLine($"C1 (cot(π/4)): {sheet["C1"].Value}"); + Console.WriteLine($"D1 (coth(1)): {sheet["D1"].Value}"); + + // Save workbook + string outputPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + "NewFunctions.xlsx"); + workbook.Save(outputPath); + Console.WriteLine($"Workbook saved to: {outputPath}"); + } +} +``` + +**Kết quả mong đợi trên console** + +``` +A1‑A5 (expanded SEQUENCE): + Row 1: 1 + Row 2: 2 + Row 3: 3 + Row 4: blank + Row 5: blank +B1 (sum 1‑5): 15 +C1 (cot(π/4)): 1 +D1 (coth(1)): 1.31303528549933 +Workbook saved to: C:\Users\YourName\Desktop\NewFunctions.xlsx +``` + +Và khi mở *NewFunctions.xlsx* bạn sẽ thấy các số giống nhau được sắp xếp trong bốn cột đầu tiên. + +![tạo workbook excel c# ảnh chụp màn hình của bảng tính kết quả](/images/create-excel-workbook-csharp.png) + +## Trường hợp đặc biệt, Mẹo và Câu hỏi thường gặp + +- **Nếu tôi cần nhiều hơn một sheet thì sao?** + Chỉ cần gọi `workbook.Worksheets.Add()` và lặp lại việc gán công thức trên mỗi đối tượng `Worksheet` mới. + +- **Có thể dùng các phiên bản Excel cũ hơn không?** + Các hàm mảng động (`SEQUENCE`, `EXPAND`, `REDUCE`) yêu cầu Excel 365 hoặc Excel 2021+. Nếu bạn nhắm tới các phiên bản cũ hơn, hãy dùng công thức cổ điển hoặc tính giá trị trong C# trước khi ghi vào. + +- **Lo ngại về hiệu năng?** + Đối với hàng ngàn dòng, việc đặt công thức trên một vùng và sau đó gọi `CalculateFormula` thường nhanh hơn so với việc lặp và gán giá trị từng ô một. + +- **Lưu vào stream thay vì file?** + `work + +{{< /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/vietnamese/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md b/cells/vietnamese/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md new file mode 100644 index 0000000000..249e1491ee --- /dev/null +++ b/cells/vietnamese/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/_index.md @@ -0,0 +1,210 @@ +--- +category: general +date: 2026-03-30 +description: Tìm hiểu cách sử dụng WRAPCOLS trong C# để tạo một workbook Excel, thêm + dữ liệu vào Excel và buộc tính toán công thức đồng thời sử dụng WRAPROWS. +draft: false +keywords: +- how to use wrapcols +- create excel workbook c# +- add data to excel +- force formula calculation +- how to use wraprows +language: vi +og_description: Khám phá cách sử dụng WRAPCOLS trong C# để tạo một workbook Excel, + thêm dữ liệu, buộc tính toán công thức và tận dụng WRAPROWS cho các công thức mảng. +og_title: Cách sử dụng WRAPCOLS trong C# – Hướng dẫn đầy đủ +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Cách sử dụng WRAPCOLS trong C# – Tạo sổ làm việc Excel với các hàm Wrap +url: /vi/net/formulas-functions/how-to-use-wrapcols-in-c-create-excel-workbook-with-wrap-fun/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cách sử dụng WRAPCOLS trong C# – Tạo Excel Workbook với các hàm Wrap + +Bạn đã bao giờ tự hỏi **cách sử dụng WRAPCOLS** khi tự động hoá Excel bằng C# chưa? Bạn không phải là người duy nhất—nhiều nhà phát triển gặp khó khăn khi cần chuyển một dải ngang thành một mảng dọc mà không phải viết quá nhiều mã. Tin tốt là Aspose.Cells làm cho việc này trở nên dễ dàng. + +Trong hướng dẫn này, chúng tôi sẽ đi qua một ví dụ đầy đủ, có thể chạy được, cho thấy **cách sử dụng WRAPCOLS**, cách **tạo Excel workbook C#**‑style, cách **thêm dữ liệu vào Excel**, và thậm chí cách **buộc tính toán công thức** để kết quả xuất hiện ngay lập tức. Chúng tôi cũng sẽ giới thiệu **cách sử dụng WRAPROWS** cho phép chuyển đổi ngược lại. Khi kết thúc, bạn sẽ có một chương trình sẵn sàng chạy và hiểu rõ lý do mỗi bước quan trọng. + +--- + +![How to use WRAPCOLS in C# example](alt="Screenshot showing Excel workbook after using WRAPCOLS in C#") + +## Những gì hướng dẫn này bao gồm + +* Cài đặt một workbook mới với Aspose.Cells. +* Điền dữ liệu vào các ô bằng chương trình (**add data to Excel**). +* Áp dụng hàm `WRAPCOLS` để chuyển một hàng thành một cột. +* Sử dụng `WRAPROWS` để chuyển ngược lại một cột thành một hàng (**how to use wraprows**). +* Buộc engine tính toán công thức ngay lập tức (**force formula calculation**). +* Lưu tệp và kiểm tra kết quả. + +Không cần tài liệu bên ngoài—mọi thứ bạn cần đều có ở đây. + +--- + +## Cách sử dụng WRAPCOLS trong C# – Triển khai từng bước + +Dưới đây là toàn bộ file nguồn. Bạn có thể sao chép‑dán nó vào một dự án console mới, thêm gói NuGet Aspose.Cells, và nhấn **F5**. + +```csharp +// ------------------------------------------------------------ +// How to Use WRAPCOLS in C# – Complete Example +// ------------------------------------------------------------ +using System; +using Aspose.Cells; + +namespace WrapFunctionsDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a fresh workbook (this is how we **create excel workbook c#** style) + Workbook workbook = new Workbook(); + + // 2️⃣ Grab the first worksheet – it's created by default + Worksheet sheet = workbook.Worksheets[0]; + + // 3️⃣ **Add data to Excel**: place two numbers side‑by‑side + sheet.Cells["A1"].PutValue(1); // first value + sheet.Cells["B1"].PutValue(2); // second value + + // 4️⃣ **How to use WRAPCOLS** – turn the horizontal range A1:B1 into a vertical array + // The second argument (1) tells WRAPCOLS to create 1 column per element. + sheet["C1"].Formula = "WRAPCOLS(A1:B1, 1)"; + + // 5️⃣ **How to use WRAPROWS** – the opposite; turn the same range into a horizontal array + // Here we ask for 2 rows per element, which produces a single row with both values. + sheet["C2"].Formula = "WRAPROWS(A1:B1, 2)"; + + // 6️⃣ **Force formula calculation** so the workbook reflects the results immediately + workbook.CalculateFormula(); + + // 7️⃣ Save the workbook to disk – change the path to a folder you own + string outputPath = @"WrapFunctions.xlsx"; + workbook.Save(outputPath); + + Console.WriteLine($"Workbook saved to {outputPath}"); + Console.WriteLine("Check cells C1 and C2 for the WRAPCOLS / WRAPROWS results."); + } + } +} +``` + +### Tại sao mỗi dòng lại quan trọng + +| Step | Explanation | +|------|-------------| +| **1️⃣ Create a fresh workbook** | Đây là nền tảng. Aspose.Cells coi đối tượng `Workbook` là toàn bộ tệp Excel, vì vậy bạn thực sự đang **tạo một Excel workbook C#** kiểu. | +| **2️⃣ Grab the first worksheet** | Một workbook mới luôn chứa ít nhất một worksheet (`Worksheets[0]`). Truy cập nó sớm giúp tránh các lỗi tham chiếu null. | +| **3️⃣ Add data to Excel** | Bằng cách sử dụng `PutValue` chúng ta **add data to Excel** mà không lo về định dạng ô. Các số `1` và `2` là dữ liệu thử nghiệm cho các hàm wrap. | +| **4️⃣ How to use WRAPCOLS** | `WRAPCOLS(A1:B1, 1)` yêu cầu Excel lấy dải `A1:B1` và trải các giá trị theo chiều dọc, một giá trị mỗi hàng. Kết quả được đặt vào `C1` và lan xuống (`C1`, `C2`, …). | +| **5️⃣ How to use WRAPROWS** | `WRAPROWS(A1:B1, 2)` thực hiện ngược lại: tạo một dải ngang, đặt hai giá trị vào một hàng duy nhất bắt đầu tại `C2`. | +| **6️⃣ Force formula calculation** | Mặc định, Aspose.Cells có thể hoãn việc tính toán cho đến khi tệp được mở trong Excel. Gọi `CalculateFormula()` **forces formula calculation** giúp bạn đọc kết quả ngay sau khi lưu. | +| **7️⃣ Save the workbook** | Bước cuối cùng ghi mọi thứ vào đĩa. Mở tệp `WrapFunctions.xlsx` đã tạo để xem kết quả. | + +--- + +## Tạo Excel Workbook C# – Cài đặt môi trường + +Trước khi chạy mã, hãy chắc chắn bạn có các công cụ cần thiết: + +1. **.NET 6.0+** – Phiên bản LTS mới nhất hoạt động tốt nhất. +2. **Visual Studio 2022** (hoặc VS Code với extension C#). +3. **Aspose.Cells for .NET** – Cài đặt qua NuGet: + ```bash + dotnet add package Aspose.Cells + ``` +4. Một thư mục có quyền ghi cho tệp đầu ra. + +Các yêu cầu này rất tối thiểu; không cần COM interop hay cài đặt Office, vì vậy Aspose.Cells là lựa chọn phổ biến cho việc tạo Excel phía máy chủ. + +--- + +## Thêm dữ liệu vào Excel – Các thực tiễn tốt nhất + +Khi bạn **add data to Excel** bằng chương trình, hãy cân nhắc các mẹo sau: + +* **Use `PutValue`** cho số nguyên hoặc chuỗi; nó tự động phát hiện kiểu dữ liệu. +* **Avoid hard‑coding cell addresses** trong các dự án lớn—sử dụng vòng lặp hoặc named ranges để mở rộng. +* **Set cell styles sparingly**; mỗi thay đổi kiểu gây tốn tài nguyên. Nếu cần định dạng, tạo một đối tượng style duy nhất và áp dụng cho nhiều ô. + +Trong ví dụ nhỏ của chúng tôi chỉ chèn hai số, nhưng mẫu này có thể mở rộng lên hàng ngàn dòng. + +--- + +## Cách sử dụng WRAPROWS – Ví dụ mảng ngang + +Nếu bạn cần ngược lại của `WRAPCOLS`, `WRAPROWS` là lựa chọn. Cú pháp là: + +``` +WRAPROWS(source_range, [rows_per_item]) +``` + +* `source_range` – dải mà bạn muốn chuyển đổi. +* `rows_per_item` – tùy chọn; cho biết Excel bao nhiêu hàng mỗi phần tử chiếm. Trong demo chúng tôi dùng `2` để buộc cả hai giá trị nằm trên một hàng. + +Bạn có thể thử nghiệm bằng cách thay đổi đối số thứ hai: + +```csharp +// Example: split each value into its own column, three rows per item +sheet["D1"].Formula = "WRAPROWS(A1:B1, 3)"; +``` + +Mở workbook và bạn sẽ thấy các giá trị lan ra ba cột, mỗi cột chứa các số gốc được lặp lại theo nhu cầu. + +--- + +## Buộc tính toán công thức – Khi nào và Tại sao + +Bạn có thể tự hỏi, “Tôi có thực sự cần gọi `CalculateFormula()` không?” Câu trả lời là **có**, nếu: + +* Bạn dự định đọc các giá trị đã tính **programmatically** sau khi lưu. +* Bạn muốn đảm bảo tệp mở trong Excel đã hiển thị kết quả đúng. +* Bạn đang chạy trong một **headless environment** (ví dụ, một web API) nơi không có người dùng nào kích hoạt tính toán lại thủ công. + +Bỏ qua bước này sẽ không làm hỏng workbook, nhưng các ô sẽ hiển thị công thức (`=WRAPCOLS(...)`) thay vì giá trị đã tính cho đến khi Excel tính lại. + +--- + +## Kết quả mong đợi – Những gì cần kiểm tra + +Sau khi chạy chương trình và mở `WrapFunctions.xlsx`: + +| Cell | Formula | Displayed Value | +|------|---------|-----------------| +| **C1** | `=WRAPCOLS(A1:B1, 1)` | `1` (ở C1) và `2` (ở C2) – danh sách dọc | +| **C2** | `=WRAPROWS(A1:B1, 2)` | `1` ở C2 và `2` ở D2 – danh sách ngang | + +Vì vậy bạn sẽ thấy một cột giá trị bắt đầu từ **C1** và một hàng giá trị bắt đầu từ **C2**. Điều này xác nhận cả hai hàm wrap hoạt động như mong đợi. + +--- + +## Các trường hợp đặc biệt & Biến thể + +| Scenario | What changes? | Suggested tweak | +|----------|---------------|-----------------| +| **Large range (A1:Z1)** | Nhiều giá trị hơn để trải dọc | Tăng đối số thứ hai của `WRAPCOLS` nếu bạn muốn nhiều cột cho mỗi nhóm. | +| **Non‑numeric data** | Chuỗi được xử lý tương tự | Không cần thay đổi mã; `PutValue` chấp nhận bất kỳ đối tượng nào. | +| **Dynamic range** | Bạn không biết kích thước tại thời gian biên dịch | Sử dụng `sheet.Cells.MaxDataColumn` và `MaxDataRow` để xây dựng chuỗi địa chỉ. | +| **Multiple worksheets** | Cần áp dụng hàm wrap trên các sheet khác | Tham chiếu đúng worksheet (`workbook.Worksheets["Sheet2"]`). | + +--- + +## Mẹo chuyên nghiệp từ thực tiễn + +* **Pro tip:** Đặt việc tạo workbook trong một khối `using` nếu bạn đang nhắm tới .NET Core 3.1+ để đảm bảo tất cả tài nguyên được giải phóng kịp thời. +* **Watch out for:** Đặt cùng một công thức trên một dải lớn mà không gọi `CalculateFormula()` có thể gây tắc nghẽn hiệu năng. Hãy batch‑process các công thức khi có thể. +* **Tip:** Nếu bạn cần đọc lại các giá trị đã tính trong code, gọi ` + +{{< /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/vietnamese/net/tables-and-lists/_index.md b/cells/vietnamese/net/tables-and-lists/_index.md index aace5f09b5..520b83d968 100644 --- a/cells/vietnamese/net/tables-and-lists/_index.md +++ b/cells/vietnamese/net/tables-and-lists/_index.md @@ -51,6 +51,8 @@ Dễ dàng chuyển đổi bảng thành phạm vi trong Excel bằng Aspose.Cel Mở khóa sức mạnh của Aspose.Cells cho .NET. Học cách đọc và viết bảng với nguồn dữ liệu truy vấn trong hướng dẫn từng bước chi tiết này. ### [Đặt chú thích cho bảng hoặc danh sách trong Excel](./setting-comment-of-table-or-list/) Tìm hiểu cách đặt chú thích cho bảng trong Excel bằng Aspose.Cells cho .NET với hướng dẫn từng bước dễ dàng của chúng tôi. +### [Tạo bảng từ phạm vi trong C# bằng Aspose.Cells](./create-table-from-range-in-c-complete-aspose-cells-tutorial/) +Hướng dẫn chi tiết cách tạo bảng từ một phạm vi trong Excel bằng C# và Aspose.Cells cho .NET. {{< /blocks/products/pf/tutorial-page-section >}} diff --git a/cells/vietnamese/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md b/cells/vietnamese/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md new file mode 100644 index 0000000000..133716e34f --- /dev/null +++ b/cells/vietnamese/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/_index.md @@ -0,0 +1,230 @@ +--- +category: general +date: 2026-03-30 +description: Tạo bảng từ phạm vi trong C# với Aspose.Cells – thêm dữ liệu vào các + ô, chuyển phạm vi thành ListObject và lưu Excel mà không có bộ lọc. +draft: false +keywords: +- create table from range +- create excel workbook c# +- add data to cells +- convert range to listobject +- save excel without filter +language: vi +og_description: Tạo bảng từ phạm vi trong C# với Aspose.Cells. Tìm hiểu cách thêm + dữ liệu vào ô, chuyển đổi phạm vi thành ListObject và lưu Excel mà không có bộ lọc. +og_title: Tạo Bảng từ Phạm vi trong C# – Hướng Dẫn Đầy Đủ Aspose.Cells +tags: +- Aspose.Cells +- C# +- Excel Automation +title: Tạo bảng từ phạm vi trong C# – Hướng dẫn đầy đủ Aspose.Cells +url: /vi/net/tables-and-lists/create-table-from-range-in-c-complete-aspose-cells-tutorial/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tạo Bảng Từ Dải Ô trong C# – Hướng Dẫn Đầy Đủ Aspose.Cells + +Bạn đã bao giờ cần **tạo bảng từ dải ô** trong C# nhưng không chắc làm sao biến một khối dữ liệu đơn giản thành một bảng Excel đầy đủ tính năng? Bạn không phải là người duy nhất. Dù bạn đang tự động hoá báo cáo, tạo bảng điểm, hay chỉ đơn giản là làm sạch dữ liệu cho việc phân tích sau này, việc nắm vững thủ thuật này có thể giúp bạn tiết kiệm rất nhiều công việc thủ công. + +Trong hướng dẫn này, chúng ta sẽ đi qua toàn bộ quy trình: **create excel workbook c#**, **add data to cells**, **convert range to ListObject**, và cuối cùng là **save excel without filter**. Khi hoàn thành, bạn sẽ có một đoạn mã sẵn sàng chạy mà có thể chèn vào bất kỳ dự án .NET nào đã tham chiếu Aspose.Cells. + +--- + +## Các Điều Kiện Cần Thiết + +- .NET 6+ (hoặc .NET Framework 4.7.2+) đã được cài đặt +- Aspose.Cells for .NET (gói NuGet `Aspose.Cells`) – phiên bản mới nhất tại thời điểm viết (23.10) hoạt động hoàn hảo. +- Kiến thức cơ bản về cú pháp C# – không cần hiểu sâu về Excel interop. + +Nếu bạn đã có những thứ trên, hãy bắt đầu. + +--- + +## Bước 1: Tạo Một Workbook Excel trong C# + +Đầu tiên chúng ta cần một đối tượng workbook mới. Hãy nghĩ đây là file Excel trống sẽ chứa bảng của chúng ta. + +```csharp +using Aspose.Cells; + +// Initialize a new workbook – this is equivalent to opening a blank .xlsx file. +Workbook workbook = new Workbook(); +Worksheet worksheet = workbook.Worksheets[0]; // Grab the first (default) worksheet. +``` + +> **Mẹo:** `Workbook()` không có đối số sẽ tạo một workbook với một worksheet mặc định, rất thích hợp cho các demo nhanh. Nếu bạn cần nhiều sheet, có thể thêm chúng sau bằng `workbook.Worksheets.Add()`. + +--- + +## Bước 2: Thêm Dữ Liệu Vào Các Ô + +Bây giờ chúng ta sẽ điền dữ liệu mẫu vào sheet – hai cột (Name, Score) và ba hàng giá trị. Điều này minh họa **add data to cells** một cách sạch sẽ và dễ đọc. + +```csharp +// Header row +worksheet.Cells["A1"].PutValue("Name"); +worksheet.Cells["B1"].PutValue("Score"); + +// Data rows +worksheet.Cells["A2"].PutValue("Alice"); +worksheet.Cells["B2"].PutValue(85); +worksheet.Cells["A3"].PutValue("Bob"); +worksheet.Cells["B3"].PutValue(92); +``` + +Tại sao lại dùng `PutValue`? Nó tự động phát hiện kiểu dữ liệu (chuỗi hay số) và định dạng ô tương ứng, giúp bạn không phải loay hoay với các đối tượng `Style` trong các trường hợp đơn giản. + +> **Kết quả mong đợi:** Sau bước này, nếu bạn mở workbook trong Excel sẽ thấy một lưới hai cột với tiêu đề “Name” và “Score”, tiếp theo là hai hàng dữ liệu. + +--- + +## Bước 3: Chuyển Dải Ô Thành ListObject (Bảng) + +Đây là phần “ma thuật”: biến dải ô đơn giản thành một bảng Excel (được gọi là **ListObject** trong API Aspose.Cells). Điều này không chỉ thêm kiểu dáng trực quan mà còn kích hoạt các tính năng tích hợp như sắp xếp, lọc và tham chiếu có cấu trúc. + +```csharp +// Define the range boundaries. +// startRow and startColumn are zero‑based indexes. +// rowCount includes the header row. +int startRow = 0; // Row 1 in Excel +int startColumn = 0; // Column A +int rowCount = 3; // Header + 2 data rows +int columnCount = 2; // Two columns: Name & Score + +// Add a ListObject to the worksheet and retrieve the object. +int listIndex = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); +ListObject table = worksheet.ListObjects[listIndex]; + +// Turn on the UI filter dropdowns so users can interact with the table. +table.ShowAutoFilter = true; +``` + +> **Tại sao nên dùng ListObject?** +> - **Tham chiếu có cấu trúc**: Công thức có thể tham chiếu đến các cột bằng tên. +> - **Giao diện Auto‑filter**: Người dùng nhận được các mũi tên thả xuống để lọc nhanh. +> - **Styling**: Bạn có thể áp dụng các style bảng có sẵn chỉ với một dòng lệnh sau này. + +--- + +## Bước 4: Loại Bỏ Giao Diện AutoFilter (Lưu Excel Không Có Filter) + +Đôi khi bạn cần một sheet sạch sẽ không có mũi tên lọc – ví dụ, khi workbook là báo cáo cuối cùng. Aspose.Cells 23.10 đã giới thiệu cách đơn giản để tắt hoàn toàn giao diện filter. + +```csharp +// Remove the filter UI completely. +table.AutoFilter = null; // Clears the underlying filter object. +table.ShowAutoFilter = false; // Hides the dropdown arrows. +``` + +Lưu ý chúng ta không xóa dữ liệu; chỉ tắt các điều khiển filter hiển thị. Điều này đáp ứng yêu cầu **save excel without filter**. + +--- + +## Bước 5: Lưu Workbook + +Cuối cùng, ghi workbook ra đĩa. File sẽ chứa bảng nhưng không có bất kỳ giao diện filter nào. + +```csharp +// Choose a folder you have write access to. +string outputPath = @"C:\Temp\NoAutoFilter.xlsx"; +workbook.Save(outputPath); +``` + +Mở `NoAutoFilter.xlsx` trong Excel – bạn sẽ thấy bảng được định dạng mặc định, nhưng không có mũi tên filter. Dữ liệu vẫn nguyên vẹn và file sẵn sàng để phân phối. + +--- + +![Screenshot showing create table from range in Excel using Aspose.Cells](image.png "Create table from range screenshot") + +*Văn bản thay thế hình ảnh:* **Ảnh chụp màn hình cho thấy việc tạo bảng từ dải ô trong Excel bằng Aspose.Cells** – bằng chứng trực quan rằng bảng tồn tại mà không có dropdown filter. + +--- + +## Ví Dụ Đầy Đủ, Có Thể Chạy Ngay + +Dưới đây là chương trình hoàn chỉnh bạn có thể sao chép‑dán vào một console app. Nó bao gồm tất cả các bước trên, cùng một vài chú thích bổ sung để dễ hiểu hơn. + +```csharp +using System; +using Aspose.Cells; + +namespace AsposeTableDemo +{ + class Program + { + static void Main() + { + // 1️⃣ Create a new workbook. + Workbook workbook = new Workbook(); + Worksheet worksheet = workbook.Worksheets[0]; + + // 2️⃣ Add data to cells – this is the “add data to cells” part. + worksheet.Cells["A1"].PutValue("Name"); + worksheet.Cells["B1"].PutValue("Score"); + worksheet.Cells["A2"].PutValue("Alice"); + worksheet.Cells["B2"].PutValue(85); + worksheet.Cells["A3"].PutValue("Bob"); + worksheet.Cells["B3"].PutValue(92); + + // 3️⃣ Convert the range into a ListObject (i.e., create table from range). + int startRow = 0, startColumn = 0, rowCount = 3, columnCount = 2; + int listIdx = worksheet.ListObjects.Add(startRow, startColumn, rowCount, columnCount); + ListObject table = worksheet.ListObjects[listIdx]; + table.ShowAutoFilter = true; // optional UI filter + + // 4️⃣ Remove the AutoFilter UI – “save excel without filter”. + table.AutoFilter = null; + table.ShowAutoFilter = false; + + // 5️⃣ Save the workbook. + string filePath = @"C:\Temp\NoAutoFilter.xlsx"; + workbook.Save(filePath); + + Console.WriteLine($"Workbook saved to {filePath}"); + } + } +} +``` + +Chạy chương trình, sau đó mở `C:\Temp\NoAutoFilter.xlsx`. Bạn sẽ thấy một bảng được định dạng đẹp, không có mũi tên filter, và dữ liệu chúng ta đã nhập. Đó là toàn bộ quy trình **create excel workbook c#** trong chưa tới 60 dòng mã. + +--- + +## Câu Hỏi Thường Gặp & Các Trường Hợp Cạnh + +**H: Nếu dải dữ liệu của tôi không liên tiếp thì sao?** +Đ: Aspose.Cells yêu cầu một dải hình chữ nhật cho `ListObjects.Add`. Nếu dữ liệu không liên tục, hãy tạo một dải tạm thời trước (ví dụ, sao chép các phần vào một worksheet mới) rồi mới chuyển dải đó thành bảng. + +**H: Tôi có thể áp dụng style bảng tùy chỉnh không?** +Đ: Chắc chắn. Sau khi tạo `ListObject`, đặt `table.TableStyleType = TableStyleType.TableStyleMedium9;` (hoặc bất kỳ trong 65 style có sẵn). Đây là cách tốt để bảng phù hợp với bộ nhận diện công ty. + +**H: Làm sao giữ filter nhưng ẩn mũi tên?** +Đ: Logic filter nằm trong `table.AutoFilter`. Đặt `ShowAutoFilter = false` chỉ ẩn giao diện; filter ngầm vẫn tồn tại. Vì vậy bạn vẫn có thể lọc dòng bằng mã sau này. + +**H: Còn với bộ dữ liệu lớn (hơn 10k dòng) thì sao?** +Đ: API vẫn hoạt động, nhưng nên tắt tính toán tự động (`workbook.CalcEngine = false`) trước khi chèn dữ liệu hàng loạt để tăng hiệu năng, sau đó bật lại. + +--- + +## Kết Luận + +Chúng ta vừa hoàn thành cách **tạo bảng từ dải ô** trong C# bằng Aspose.Cells, từng bước – từ **create excel workbook c#**, qua **add data to cells**, tới **convert range to ListObject**, và cuối cùng là **save excel without filter**. Mã nguồn đã đầy đủ, có thể chạy ngay và sẵn sàng cho môi trường production. + +Tiếp theo, bạn có thể khám phá: + +- Thêm conditional formatting để làm nổi bật các điểm cao. +- Xuất workbook sang PDF bằng `workbook.Save("Report.pdf", SaveFormat.Pdf);`. +- Sử dụng `table.Columns["Score"].DataBodyRange.Sort` để sắp xếp bảng bằng mã. + +Hãy thử nghiệm với các bộ dữ liệu, style bảng, hoặc thậm chí nhiều worksheet. API đủ linh hoạt để xử lý mọi thứ từ bảng điểm nhỏ tới sổ cái tài chính khổng lồ. + +Có câu hỏi hoặc gặp khó khăn? Để lại bình luận bên dưới hoặc nhắn tin cho tôi trên GitHub. Chúc bạn lập trình vui vẻ và tận hưởng việc biến các dải dữ liệu thô thành các bảng Excel chuyên nghiệp! + +{{< /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